Currently, only multipart/related mime type (RFC2387) is supported.
Other multipart contents are not supported :(
This includes
 * multipart/mixed (RFC1521)
 * multipart/formdata (RFC1867)

I'm trying to see if it is possible to support them.

Cheers,
Guillaume Nodet

On 3/22/06, Stefan Klinger <[EMAIL PROTECTED]> wrote:
> Thanks Guillaume,
>
> I have tried using the HttpComponent, but it threw an exception in the
> DeliveryChannel and ReceiverComponent. My client code is the following:
>
>       File f = new File("some_file.txt");
>       PostMethod filePost = new
> PostMethod("http://localhost:8192/Service/";);
>       Part[] parts = { new StringPart("param_name", "value"),
>           new FilePart(f.getName(), f) };
>       filePost.setRequestEntity(
>           new MultipartRequestEntity(parts, filePost.getParams()) );
>       HttpClient client = new HttpClient();
>       int status = client.executeMethod(filePost);
>       filePost.releaseConnection();
>
> and my XmlBeans configuration file is the following
>
>       <sm:activationSpec>
>           <sm:component>
>             <http:component>
>                 <http:endpoints>
>                     <http:endpoint service="test:MyConsumerService"
>                                                endpoint="myConsumer"
>                                    role="consumer"
>
> locationURI="http://localhost:8192/Service/";
>
> defaultMep="http://www.w3.org/2004/08/wsdl/in-only"; />
>                 </http:endpoints>
>             </http:component>
>         </sm:component>
>       </sm:activationSpec>
>
>       <sm:activationSpec service="test:MyConsumerService"
> endpoint="myConsumer">
>         <sm:component>
>           <bean class="org.apache.servicemix.tck.ReceiverComponent" />
>         </sm:component>
>       </sm:activationSpec>
>
> and I get the following exceptions
>
> [edThreadPool0-1] DEBUG DeliveryChannel                - Unable to
> display message
> org.xml.sax.SAXParseException: Content is not allowed in prolog.
>     at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
>     at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
>     at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:123)
>     at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSourceFromStream(SourceTransformer.java:221)
>     at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSource(SourceTransformer.java:136)
>     at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMNode(SourceTransformer.java:275)
>     at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.traceMessageExchange(DeliveryChannelImpl.java:297)
>     at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:388)
>     at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:490)
>     at
> org.apache.servicemix.common.BaseLifeCycle.sendConsumerExchange(BaseLifeCycle.java:389)
>     at
> org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:131)
>     at
> org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:70)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>
> SEVERE: [EMAIL PROTECTED] got
> error processing [EMAIL PROTECTED]
> javax.jbi.messaging.MessagingException: org.xml.sax.SAXParseException:
> Content is not allowed in prolog.
>     at
> org.apache.servicemix.components.util.CopyTransformer.transform(CopyTransformer.java:80)
>     at
> org.apache.servicemix.tck.ReceiverComponent.onMessageExchange(ReceiverComponent.java:47)
>     at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:636)
>     at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:171)
>     at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:221)
>     at
> org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
>     at
> EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
>     at java.lang.Thread.run(Thread.java:595)
> Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
>     at
> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:264)
>     at
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
>     at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:123)
>     at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSourceFromStream(SourceTransformer.java:221)
>     at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSource(SourceTransformer.java:136)
>     at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMNode(SourceTransformer.java:275)
>     at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMNode(SourceTransformer.java:302)
>     at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSource(SourceTransformer.java:144)
>     at
> org.apache.servicemix.components.util.CopyTransformer.transform(CopyTransformer.java:68)
>     ... 7 more
>
> Thanks,
> Stefan
>
> Guillaume Nodet wrote:
>
> >The servicemix-http component handles MIME attachments.
> >You should give it a try.
> >
> >Cheers,
> >Guillaume Nodet
> >
> >On 3/22/06, Stefan Klinger <[EMAIL PROTECTED]> wrote:
> >
> >
> >>Hello all,
> >>
> >>I am trying to include a file upload facility using http within my
> >>project. Unfortunately, my file is not an xml document, so it should be
> >>treated as an attachment. If I am correct, the HttpMarshaler only
> >>accepts xml documents which are set to the message content. Would there
> >>be a way to accept non-xml files and set them as message attachments
> >>(similar to the SaajMarshaler)? Or is there another, more elegant way of
> >>doing this?
> >>
> >>Thanks,
> >>Stefan
> >>
> >>
> >>
>
>

Reply via email to