Hi,
I am trying to upload a file to the server from client using
multipart/form-data. The server endpoint is a camel-servlet endpoint. I am
able to get the httprequestbody from the call using (in.headers), to parse
the form data and uploaded file data i'm using commons-fileupload( streaming
api <http://commons.apache.org/proper/commons-fileupload/streaming.html> )
library. Though the request is a multipart, I am unable to get the fileitems
from the function call. Here is the codesnippet used to get the item
(iter.hasNext() always returns false).
HttpServletRequest request = (HttpServletRequest)
headers.get(Exchange.HTTP_SERVLET_REQUEST);
// Check if the request is actually a multipart/form-data request.
LOG.info("IS Mulipart: " + ServletFileUpload.isMultipartContent(request));
if (!ServletFileUpload.isMultipartContent(request))
{
return "No Data found";
}
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter = upload.getItemIterator(request);
LOG.info("iter has next: " + iter.hasNext());
My Camel route looks like below:
from("servlet:///addContent").streamCaching()
.to("log:servlet").beanRef("sampleProcessor");
My camel Servlet component definition goes as below:
<service ref="camelServlet">
<interfaces>
<value>javax.servlet.Servlet</value>
<value>org.apache.camel.component.http.CamelServlet</value>
</interfaces>
<service-properties>
<entry key="alias" value="/camel/services" />
<entry key="matchOnUriPrefix" value="true" />
<entry key="servlet-name" value="CamelServlet"/>
</service-properties>
</service>
<osgi:reference id="servletref"
interface="org.apache.camel.component.http.CamelServlet">
<osgi:listener bind-method="register" unbind-method="unregister">
<ref bean="httpRegistry" />
</osgi:listener>
</osgi:reference>
<bean id="httpRegistry"
class="org.apache.camel.component.servlet.DefaultHttpRegistry">
</bean>
<bean id="servlet"
class="org.apache.camel.component.servlet.ServletComponent">
<property name="httpRegistry" ref="httpRegistry" />
</bean>
This project is run in fuse-esb-7.1.0.fuse-047 using camel version: 2.9.
JDK: 1.6.
Could anyone guide me to separate the form parameters and file data using
servlet endpoint?
Thanks in Advance!
--
View this message in context:
http://camel.465427.n5.nabble.com/Using-camel-servlet-with-Multipart-unable-to-fetch-the-file-tp5732204.html
Sent from the Camel - Users mailing list archive at Nabble.com.