¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Solución de error al pasar parámetros a un servicio web en JSPDynpage

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

Hi Experts,

Estoy intentando usar un servicio web en mi JSPDynpage. Cuando intento pasar parámetros al método, falla en la línea siguiente:


myService.opDSJob_ValidAcctCode(params);

El método es:


public void communicate(){

OpDSJob_ValidAcctCode params = new OpDSJob_ValidAcctCode(); 
System.err.println("printing object params  "  + params);
    	
params.setCompcode("9500");
params.setGlacct("0000400170");

// Código abreviado por claridad

El método en el servicio del portal es el siguiente, generado a partir del archivo WSDL por el asistente de creación de servicios del portal.


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

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

4 Respuestas

0
Cargando...

Hola,

Parece que estás teniendo problemas con tu Acción SOAP;

java.lang.IllegalArgumentException: La Acción SOAP "" incluida en la solicitud SOAP no corresponde al método del servicio del Portal.

Veo en tu código que estás configurando el encabezado SOAP con un valor vacío:

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

Esto parece ser el problema. Intenta establecer algo válido aquí.

También revisé la especificación SOAP (ver http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528)

y parece que una Acción SOAP vacía está permitida. La especificación dice:

Extracto del capítulo 6.1.1 de la ESPECIFICACIÓN SOAP

El campo de encabezado de solicitud HTTP SOAPAction puede usarse para indicar la intención de la solicitud HTTP SOAP. El valor es un URI que identifica la intención. SOAP no impone restricciones sobre el formato o la especificidad del URI o que sea resoluble. Un cliente HTTP debe usar este campo de encabezado al emitir una Solicitud HTTP SOAP.

soapaction    = "SOAPAction" ":" [ <"> URI-reference <"> ]
URI-reference = <como se define en RFC 2396 [4]>

La presencia y contenido del campo de encabezado SOAPAction puede ser utilizado por servidores como firewalls para filtrar adecuadamente mensajes de solicitud SOAP en HTTP. El valor del campo de encabezado de cadena vacía ("") significa que la intención del mensaje SOAP se proporciona mediante la URI de la Solicitud HTTP. Ningún valor significa que no hay indicación de la intención del mensaje.

Ejemplos:

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

Sin embargo, la excepción indica un problema relacionado con el encabezado, así que intenta definir una intención de tu mensaje como se describe en la especificación.

Saludos

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

Lokesh,

Aquí está cómo lo arreglé, espero que también solucione tu problema. Si no, entonces pega el rastro del error aquí:

En tu Servicio de Portal (La CLASE que es generada por NWDS, y la que usas 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...

¡Hola SB!

¿Encontraste la solución para este problema?

.

Si es así, por favor hazme saber la solución.

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...

¡Hola!

Gracias por tu ayuda.

Mi problema ha sido resuelto y ahora está funcionando bien.

En este sentido, por favor envía desde tu cuenta y te daré acceso.

Gracias y saludos,

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?