web stats
Mirth Community - View Single Post - Receiving SOAP Envelope in Custom Web Service
View Single Post
  #1  
Old 01-29-2013, 04:06 AM
mlizana mlizana is offline
Mirth Newb
 
Join Date: Jun 2011
Location: Mataró (Barcelona)
Posts: 24
mlizana is on a distinguished road
Unhappy Receiving SOAP Envelope in Custom Web Service

Hi, I have a WebService Listener, that uses a customized Web Service, using my own WSDL, referenced with JAX annotations in the Java class that extends AcceptMessage class from Mirth.

The Web Service is published correctly, I send a message using another channel, that gets the soap envelope using the WSDL definition obtained using the "Generate Envelope" options in the Web Service Sender connector, so the message is generated correctly.

But when I receive the message in the Web Service Listener, I receive a "null" value, and it crashes with this error:

Code:
[2013-01-29 13:56:53,017]  ERROR (com.mirth.connect.connectors.ws.WebServiceMessageReceiver:168): Error processing message in web service.  Channel: 9e980970-abf7-4a09-b343-59596caa2351
java.lang.NullPointerException
	at org.mule.umo.MessagingException.<init>(MessagingException.java:65)
	at org.mule.providers.AbstractServiceEnabledConnector.getMessageAdapter(AbstractServiceEnabledConnector.java:151)
	at com.mirth.connect.connectors.ws.WebServiceMessageReceiver.processData(WebServiceMessageReceiver.java:150)
	at com.mirth.connect.connectors.ws.S044Service.S044(S044Service.java:29)
I cannot know what happens before, because I don't know what SOAP envelope arrives with the message. I'm understanding that is some kind of namespace problem, or maybe Mirth is only capable of receiving message with the attribute "arg0"?

My Web Service class is developed as follows:

Code:
@WebService(wsdlLocation = "WEB-INF/wsdl/MA44.wsdl",
			targetNamespace = "http://CCI.Servicios/",
			serviceName = "MA44Service",
			name = "MA44Service", 
			portName = "MA44ServiceSoap")
public class MA44Service extends AcceptMessage {

	public MA44Service(WebServiceMessageReceiver webServiceMessageReceiver) {
		super(webServiceMessageReceiver);
	}

	@WebMethod(operationName = "MA44")
	@WebResult(name = "MA44Response")
	public String MA44(@WebParam(name="MensEntrada") String message) {
		return webServiceMessageReceiver.processData(message);
	}
}
I tried using also Request and Response Wrapper JAX annotations, but I don't know how really works.

Please, anyone have an idea?

Last edited by mlizana; 01-30-2013 at 02:23 AM.
Reply With Quote