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
