Hi all,
i deploy a message level service that receive a SOAPMessage and works fine
until i send a message with attachment:
18:37:13,026 ERROR [STDERR] 15-ott-2007 18.37.13
com.sun.xml.messaging.saaj.soap.EnvelopeFactory createEnvelope
GRAVE: SAAJ0511: Unable to create envelope from given source
18:37:13,028 ERROR [STDERR] 15-ott-2007 18.37.13
org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unable to create envelope from given
source:
at
org.apache.cxf.jaxws.interceptors.DispatchInDatabindingInterceptor$PostDispatchSOAPHandlerInterceptor.handleMessage(DispatchInDatabindingInterceptor.java:191)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:73)
at
org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:79)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:235)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:140)
at
org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:278)
at
org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:256)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to create
envelope from given source:
at
com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:114)
at
com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:71)
at
com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:125)
at
org.apache.cxf.jaxws.interceptors.DispatchInDatabindingInterceptor$PostDispatchSOAPHandlerInterceptor.handleMessage(DispatchInDatabindingInterceptor.java:189)
... 28 more
Caused by: javax.xml.transform.TransformerException:
org.xml.sax.SAXParseException: Content is not allowed in prolog.
at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:501)
at
com.sun.xml.messaging.saaj.util.transform.EfficientStreamingTransformer.transform(EfficientStreamingTransformer.java:390)
at
com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:102)
... 31 more
Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1269)
at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
this is the client:
package org.openspcoop.test.client;
import java.net.URL;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.AttachmentPart;
public class Attachment {
public static void main(String[] args){
try{
SOAPFactory soapFac = SOAPFactory.newInstance();
MessageFactory msgFac = MessageFactory.newInstance();
SOAPConnectionFactory conFac =
SOAPConnectionFactory.newInstance();
SOAPMessage msg = msgFac.createMessage();
msg.getSOAPBody().addChildElement(soapFac.createElement("Test"));
AttachmentPart ap1 = msg.createAttachmentPart();
ap1.setContent("Attachment content", "text/plain");
msg.addAttachmentPart(ap1);
msg.writeTo(System.out);
SOAPConnection con = conFac.createConnection();
URL endpoint = new URL("http://localhost:8080/CFX/PD");
SOAPMessage response = con.call(msg, endpoint);
response.writeTo(System.out);
}
catch(Exception e){
System.out.println("Ouch!!!! "+e.toString());
}
}
}
This is the service:
package org.openspcoop.pdd.services;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
import javax.annotation.Resource;
import javax.xml.soap.MimeHeader;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.Provider;
import javax.xml.ws.ServiceMode;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.WebServiceProvider;
import javax.xml.ws.Service.Mode;
@Resource
@ServiceMode(value=Mode.MESSAGE)
@WebServiceProvider
public class RicezioneContenutiApplicativiWS implements
Provider<SOAPMessage>{
WebServiceContext wsContext;
public SOAPMessage invoke(SOAPMessage request){
try{
System.out.println("Test write resume");
System.out.println("SOAPMessage class : " +
request.getClass().getName());
File file = new File("/home/cencio/SOAPMessage.msg");
FileOutputStream fos = new FileOutputStream(file);
request.writeTo(fos);
fos.close();
Iterator it = request.getMimeHeaders().getAllHeaders();
while(it.hasNext()){
MimeHeader mh = (MimeHeader) it.next();
System.out.println("Header >> " + mh.getName()
+ " : " + mh.getValue());
}
}
catch(Exception e){
System.out.println("Qualcosa รจ andato storto!! : " +
e.toString());
}
return request;
}
}
I really need some help -.-
Thx!
--
View this message in context:
http://www.nabble.com/SOAPMessage-with-Attachment-service-problems-tf4628726.html#a13216625
Sent from the cxf-user mailing list archive at Nabble.com.