Hi there,

I created a web service that returns DataHandler created by
ByteArrayDataSource.  The DataSource has PipedInputStream as its member
field. I fill in the stream in a different thread.  The main thread
returns as soon as the new thread is created.   The stream is closed after
it is filled.
I am getting the following exception in Tomcat console and the client
only gets SOAP envelope without the attachment (i.e: DataHandler).
I tried to not close the pipe, but that made the server just waits and
does not get back to the client.

I am using Tomcat 4.0.3 and Axis beta 3.

Does anyone know why this is happening?  I am pretty sure this happens
when Axis tries to send DataHandler back to client.  I have tested the service
itself (without connecting to Axis) and it worked fine.

Any suggestions would be very appreciated.

Sincerely,

Ignatia

- java.io.IOException:
java.io.IOException: Pipe closed
        at java.io.PipedInputStream.read(PipedInputStream.java:210)
        at java.io.PipedInputStream.read(PipedInputStream.java:274)
        at java.io.InputStream.read(InputStream.java:88)
        at javax.activation.DataHandler.writeTo(DataHandler.java:299)
        at
javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1089)
        at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:635)
        at
javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:233)
        at
com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:68
)
        at
javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:84
9)
        at javax.activation.DataHandler.writeTo(DataHandler.java:305)
        at
javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1089)
        at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1527)
        at
org.apache.axis.attachments.MimeUtils.writeToMultiPartStream(MimeUtil
s.java:202)
        at
org.apache.axis.attachments.AttachmentsImpl.writeContentToStream(Atta
chmentsImpl.java:319)
        at org.apache.axis.Message.writeContentToStream(Message.java:352)
        at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:62
9)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:243)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:190)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
.java:246)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2347)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:180)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
468)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:174)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
r.java:1027)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
va:1125)
        at java.lang.Thread.run(Thread.java:536)

Reply via email to