Josef.Eisele wrote:
>
> Hi,
>
> we implemented a webservice under Geronimo using CXF. We transmit almost
> identical data e.g. 4 times. 3 times everything works fine, but in one
> case we get the following error:
>
> com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to get header stream
> in saveChanges
> (full stack trace further down)
>
> When we uncomment the( WS-Security-Stuff) following client code:
>
> // org.apache.cxf.endpoint.Endpoint cxfEndpoint =
> client.getEndpoint();
> // Map<String,Object> outProps = new
> HashMap<String,Object>();
> // outProps.put(WSHandlerConstants.ACTION,
> WSHandlerConstants.USERNAME_TOKEN
> // + " " + WSHandlerConstants.SIGNATURE);
>
> // outProps.put(WSHandlerConstants.USER, "system");
> // outProps.put(WSHandlerConstants.PASSWORD_TYPE,
> WSConstants.PW_DIGEST);
> // outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS,
> ClientPasswordCallback.class.getName());
> // outProps.put(WSHandlerConstants.SIG_PROP_FILE,
> "client_sign.properties");
> //
> //
> // WSS4JOutInterceptor wssOut = new
> WSS4JOutInterceptor(outProps);
> // cxfEndpoint.getOutInterceptors().add(wssOut);
> // cxfEndpoint.getOutInterceptors().add(new
> SAAJOutInterceptor()); // 2.0.x only; not needed in 2.1+
>
> everything works fine. We tried more than 3000 calls without any error.
>
> Any ideas ??
>
>
> ------Geworfene Exception(s): javax.xml.ws.soap.SOAPFaultException:
> SOAPEXCEPTION
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:175)
> $Proxy292.getData(Unknown Source)
> mypath.ws.SourceReadWSClientImpl.callWebservice(SourceReadWSClientImpl.java:360)
> mypath.ws.SourceReadWSClientImpl.leseDatenbestand(SourceReadWSClientImpl.java:144)
> mypath.schedule.SourceReadWSQuartzJob.execute(SourceReadWSQuartzJob.java:36)
> org.quartz.core.JobRunShell.run(JobRunShell.java:202)
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:531)
> ------Geworfene Exception(s): org.apache.cxf.binding.soap.SoapFault:
> SOAPEXCEPTION
> mypackage.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:122)
> mypackage.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:103)
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> $Proxy292.getData(Unknown Source)
> mypath.ws.SourceReadWSClientImpl.callWebservice(SourceReadWSClientImpl.java:360)
> mypath.ws.SourceReadWSClientImpl.leseDatenbestand(SourceReadWSClientImpl.java:144)
> mypath.schedule.SourceReadWSQuartzJob.execute(SourceReadWSQuartzJob.java:36)
> org.quartz.core.JobRunShell.run(JobRunShell.java:202)
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:531)
> ------Geworfene Exception(s):
> com.sun.xml.messaging.saaj.SOAPExceptionImpl: Error during saving a
> multipart message
> com.sun.xml.messaging.saaj.soap.MessageImpl.saveChanges(MessageImpl.java:1126)
> com.sun.xml.messaging.saaj.soap.MessageImpl.writeTo(MessageImpl.java:1218)
> mypackage.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:116)
> mypackage.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:103)
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> $Proxy292.getData(Unknown Source)
> mypath.ws.SourceReadWSClientImpl.callWebservice(SourceReadWSClientImpl.java:360)
> mypath.ws.SourceReadWSClientImpl.leseDatenbestand(SourceReadWSClientImpl.java:144)
> mypath.schedule.SourceReadWSQuartzJob.execute(SourceReadWSQuartzJob.java:36)
> org.quartz.core.JobRunShell.run(JobRunShell.java:202)
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:531)
> ------Geworfene Exception(s):
> com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to get header stream
> in saveChanges:
> com.sun.xml.messaging.saaj.soap.MessageImpl.saveChanges(MessageImpl.java:1096)
> com.sun.xml.messaging.saaj.soap.MessageImpl.writeTo(MessageImpl.java:1218)
> mypackage.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:116)
> mypackage.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:103)
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> $Proxy292.getData(Unknown Source)
> mypath.ws.SourceReadWSClientImpl.callWebservice(SourceReadWSClientImpl.java:360)
> mypath.ws.SourceReadWSClientImpl.leseDatenbestand(SourceReadWSClientImpl.java:144)
> mypath.schedule.SourceReadWSQuartzJob.execute(SourceReadWSQuartzJob.java:36)
> org.quartz.core.JobRunShell.run(JobRunShell.java:202)
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:531)
> ------Geworfene Exception(s): java.io.IOException:
> org.apache.xml.serializer.ToXMLSAXHandler
> com.sun.xml.messaging.saaj.soap.impl.EnvelopeImpl.output(EnvelopeImpl.java:298)
> com.sun.xml.messaging.saaj.soap.impl.EnvelopeImpl.output(EnvelopeImpl.java:309)
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getContentAsStream(SOAPPartImpl.java:305)
> com.sun.xml.messaging.saaj.soap.MessageImpl.getHeaderBytes(MessageImpl.java:942)
> com.sun.xml.messaging.saaj.soap.MessageImpl.saveChanges(MessageImpl.java:1093)
> com.sun.xml.messaging.saaj.soap.MessageImpl.writeTo(MessageImpl.java:1218)
> mypackage.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:116)
> mypackage.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:103)
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> $Proxy292.getData(Unknown Source)
> mypath.ws.SourceReadWSClientImpl.callWebservice(SourceReadWSClientImpl.java:360)
> mypath.ws.SourceReadWSClientImpl.leseDatenbestand(SourceReadWSClientImpl.java:144)
> mypath.schedule.SourceReadWSQuartzJob.execute(SourceReadWSQuartzJob.java:36)
> org.quartz.core.JobRunShell.run(JobRunShell.java:202)
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:531)
>
> - Josef
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG
>
>
>
>
> Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de
> Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
>
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
>
>
HI.
I have same problem.
I have web cxf web service under Geronimo.
I register some SOAP handlers, which check security data in SOAP headers.
All works fine until redeploy application. When i redeploy application - i
get same errors.
But when I restart Geronmo -- application work fine again until redeploy.
For current time I didn't find correct solution.
There were some ideas to use xalan 2.7 and xerces 2.8.1 but this didn't help
in my case.
May be it will be helpfully for you?!
Best Regards
Sergey Bykov
mail : [email protected]
--
View this message in context:
http://www.nabble.com/SOAPEXCEPTION-when-using-SAAJOutInterceptor-tp19916271p22333376.html
Sent from the cxf-user mailing list archive at Nabble.com.