¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Solução de erro ao passar parâmetros para um serviço web em JSPDynpage

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Olá especialistas,

Estou tentando usar um serviço da web na minha JSPDynpage. Quando tento passar parâmetros para o método, falha na linha seguinte:


myService.opDSJob_ValidAcctCode(params);

O método é:


public void communicate(){

OpDSJob_ValidAcctCode params = new OpDSJob_ValidAcctCode(); 
System.err.println("impressão de objeto params  "  + params);
    	
params.setCompcode("9500");
params.setGlacct("0000400170");

// Código abreviado para clareza

O método no serviço do portal é o seguinte, gerado a partir do arquivo WSDL pelo assistente de criação de serviços do portal.


public com.abc.ws.OpDSJob_ValidAcctCodeResponse opDSJob_ValidAcctCode ( 
		com.abc.ws.OpDSJob_ValidAcctCode parameters ) {
		try {
		    HashMap httpheaders = new HashMap();
		    // Código abreviado para clareza

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá,

Parece que você está tendo problemas com sua Ação SOAP;

java.lang.IllegalArgumentException: A Ação SOAP "" incluída na solicitação SOAP não corresponde ao método do serviço do Portal.

Vejo em seu código que está configurando o cabeçalho SOAP com um valor vazio:

httpheaders.put("soapaction","\"\"");

Isso parece ser o problema. Tente definir algo válido aqui.

Também revisei a especificação SOAP (ver http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528)

e parece que uma Ação SOAP vazia é permitida. A especificação diz:

Trecho do capítulo 6.1.1 da ESPECIFICAÇÃO SOAP

O campo de cabeçalho da solicitação HTTP SOAPAction pode ser usado para indicar a intenção da solicitação HTTP SOAP. O valor é um URI que identifica a intenção. SOAP não impõe restrições sobre o formato ou especificidade do URI ou se ele é resolúvel. Um cliente HTTP deve usar este campo de cabeçalho ao enviar uma Solicitação HTTP SOAP.

soapaction    = "SOAPAction" ":" [ <"> URI-reference <"> ]
URI-reference = <como definido em RFC 2396 [4]>

A presença e conteúdo do campo de cabeçalho SOAPAction podem ser usados por servidores como firewalls para filtrar adequadamente mensagens de solicitação SOAP em HTTP. O valor do campo de cabeçalho de string vazia ("") significa que a intenção da mensagem SOAP é fornecida pelo URI da Solicitação HTTP. Nenhum valor significa que não há indicação da intenção da mensagem.

Exemplos:

SOAPAction: "http://electrocommerce.org/abc#MyMessage"
SOAPAction: "myapp.sdl"
SOAPAction: ""
SOAPAction:

No entanto, a exceção indica um problema relacionado ao cabeçalho, então tente definir a intenção de sua mensagem conforme descrito na especificação.

Saudações

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Lokesh,

Aqui está como se corrige, espero que también resuelva tu problema. Si no, entonces pega la traza del error aquí:

En tu Servicio de Portal (LA CLASE que es generada por NWDS, y la que utilizas para comunicarte con el servicio web) encontrarás un método que recibe una entrada y devuelve una salida a tu componente de Portal.

En ese método, busca:

HashMap httpheaders = new HashMap();

y reemplaza:

		  httpheaders.put("soapaction","\"\""); 

por

		  httpheaders.put("soapaction",""); 

La razón es que los parámetros de httpheader no se están pasando como se requiere.

Además, ¿en qué versión y nivel de SP de Portal te encuentras? Por encima de SP 13 (supongo), los Servicios de Portal ya no son compatibles, tendrás que usar Proxies JAVA. Es posible que tengas que actualizar tu NWDS a un nivel de SP compatible con el nivel de SP de tu Servidor de Portal si estás en NW2004s y SP 14 y/o superior,

Avísame cómo te va.

SB

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá SB!

Encontraste la solución para este problema?

Si es así, por favor házmelo saber.

Para que también pueda resolver mi problema.

Esperando tu respuesta.

Gracias y saludos,

Lokesh

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá!

Obrigado pela sua ajuda.

Meu problema foi resolvido e agora está funcionando bem.

Nesse sentido, por favor envie a partir da sua conta e eu te darei acesso.

Obrigado e cumprimentos,

Lokesh

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?