Title: ResponseContext Problem Using SOAP 2.3.1

Hi Folks,

I've got a problem in the code below and I can't really work out what is
going on anymore, So I've got a SOAP Messaging Server trying to send back a
Successful Response SOAP XML Message to the calling client using the code
below but everytime I execute the client/server pair. I get an exception See
Below after the code snippet.

My question is what are my doing wrong here

Ok, I don't want to add a string by setting Return Value like :-


soapResponse.setReturnValue(new Parameter("Success",
String.class, Success, null));
Even adding this doesn't work. Any ideas please.


Regards

Michael

public void ReceiveMessageWithAttachments(Envelope requestEnvelope,
SOAPContext requestContext,
SOAPContext responseContext)
throws
IOException, MessagingException, InvalidInputException,
InvalidServerDataException {.............................
................................................extract message and do stuff
code here........................

try {
//We need to create a Return Message to Send Back if it was
Successful.
if (CreateStatus == true) {
SOAPCreationSuccess SuccessMessage = new SOAPCreationSuccess(
HttpMappingConstants.ROOMCREATED, "OPEN ",
MySession.getCurrentUser().getUserID(),
ConfigSetting.getHostUrl() + "/" + Customer +
invoiceNumber);
StringWriter Writer = new StringWriter();
logger.debug("<We've Created the Envelope and the Writer>");

requestEnvelope.setHeader(SuccessMessage.buildMessageHeader());
requestEnvelope.setBody(SuccessMessage.buildMessageDetails(
SuccessMessage));
logger.debug("<We've Set the Envelope Entries>");
Response soapResponse = Response.extractFromEnvelope(
requestEnvelope,
SOAPMappingRegistry.getBaseRegistry(""),
requestContext);
requestEnvelope = soapResponse.buildEnvelope();

}
}
catch (Exception e) {
throw new InvalidServerDataException(HttpMappingConstants.
CREATIONFAILEDRESPONSE + e);
}
}
}
catch (Exception e) {
}
try {
if (CreateStatus == true) {
requestEnvelope.marshall(Writer,
SOAPMappingRegistry.getBaseRegistry(""),
responseContext);
responseContext.setRootPart(Writer.toString(), "text/xml");
}
=====================================================

Exception
====================================================
003-06-13 09:42:32 - Ctx( /soapmsg ): Exception in: R( /soapmsg +
/servlet/messagerouter + null) - javax.servlet.ServletException: Error
building response envelope: java.io.IOException: Message is empty!
at
org.apache.soap.server.http.MessageRouterServlet.doPost(MessageRouterServlet
.java:375)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:81
4)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:760)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:210)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:479)

Reply via email to