Thanks for the reply Guillaume.
It would be great (for me) if the other multipart contents were
supported as part of SM as well.
Thanks again and keep up the good work!
Stefan
Guillaume Nodet wrote:
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