Christoph,
How is the attachment constructed? Is this something that is a byte[]
in the jaxb beans or is it an Image or a DataHandler or what? That may
help narrow down that cause a bit.
All we do is iterator over the attachments, write out the mime headers,
then call:
att.getDataHandler().writeTo(out);
Also, what version of activation are you using?
Assuming the latest geronimo-specs activation jar, from that stack trace,
line 90 is:
is.close()
Thus, an NPE would occur there if getInputStream() returns null which
would occur if:
ds.getInputStream();
returns null. Thus, I guess I'd need to know what the DataSource is.
Dan
On Friday 11 April 2008, [EMAIL PROTECTED] wrote:
> Hi List,
>
> I'm relatively new to Apache CXF and managed to implement a Webservice
> using JAX-WS which returns MTOM attachments. My service connects to a
> Webserver and gets the content of the MTOM attachment by reading a
> Java HTTPConnection. Sometimes there seems to be no content in the
> HTTPConnection inputStream, so I implemented a check for this case
> which throws an exception.
>
> At a first glance everything is ok but when I do some load test with
> SoapUI I get this exception in the tomcat log:
>
> java.lang.NullPointerException
> at javax.activation.DataHandler.writeTo(DataHandler.java:90)
> at
> org.apache.cxf.attachment.AttachmentSerializer.writeAttachments(Attach
>mentSerializer.java:129) at
> org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndin
>gInterceptor.handleMessage(AttachmentOutInterceptor.java:77) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:220) at
> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Outg
>oingChainInterceptor.java:74) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:220) at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitia
>tionObserver.java:77) at
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDest
>ination.java:92) at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(S
>ervletController.java:213) at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletContr
>oller.java:150) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXF
>Servlet.java:170) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXF
>Servlet.java:148) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli
>cationFilterChain.java:269) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi
>lterChain.java:188) at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVa
>lve.java:213) at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextVa
>lve.java:174) at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticat
>orBase.java:525) at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.ja
>va:127) at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.ja
>va:117) at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValv
>e.java:108) at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java
>:174) at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
>874) at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.pr
>ocessConnection(Http11BaseProtocol.java:665) at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoi
>nt.java:528) at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFoll
>owerWorkerThread.java:81) at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPo
>ol.java:689) at java.lang.Thread.run(Thread.java:595)
> 11.04.2008 16:18:33 org.apache.cxf.phase.PhaseInterceptorChain
> doIntercept INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Error writing to XMLStreamWriter.
> at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor.hand
>leMessage(Soap11FaultOutInterceptor.java:140) at
> org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor.hand
>leMessage(Soap11FaultOutInterceptor.java:43) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:220) at
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessa
>ge(AbstractFaultChainInitiatorObserver.java:96) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:254) at
> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Outg
>oingChainInterceptor.java:74) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:220) at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitia
>tionObserver.java:77)