使用Spring 4.1.1和骆驼2.14.0无法上传多个图像

问题描述

我有一个像下面这样的现有代码,可以上传一张图片

public class ImageRoute extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        getContext().setTracing(true);
        getContext().setStreamCaching(true);

        from("servlet:///PushImage?servletName=CamelServlet")
        .to("direct:doImageUploadJob")
                .marshal().json(JsonLibrary.Jackson);
    
        from("direct:doImageUploadJob")
        .process(new Processor() {
            
            @Override
            public void process(Exchange exchange) throws Exception {

                Message in = exchange.getIn();
                Set<String> names = in.getAttachmentNames();
                Object[] arrayNames = names.toArray();
                System.out.println("image array size::"+ arrayNames.length);
                
                Map<String,DataHandler> attchmentMaps = in.getAttachments();
                System.out.println("image map size::"+ attchmentMaps.size());
            }
        });
    }
}

,并在web.xml中具有以下配置。

    <!-- Camel servlet -->
    <servlet>
        <servlet-name>CamelServlet</servlet-name>
        <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- Camel servlet mapping -->
    <servlet-mapping>
        <servlet-name>CamelServlet</servlet-name>
        <url-pattern>/exmpattrn/*</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>MultipartFilter</filter-name>
        <filter-class>org.eclipse.jetty.servlets.MultiPartFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>MultipartFilter</filter-name>
        <servlet-name>CamelServlet</servlet-name>
    </filter-mapping>

但是,如果我尝试通过邮递员调用此API来上传多个图像,则该图像只会上传最后选择的图像。 我尝试打印附件尺寸,但始终打印为1。 我不知道为什么 有人可以帮我吗?

我正在将Spring 4.1.1与Java 7结合使用。 我正在使用骆驼Apache Camel 2.14.0 restlet来形成API。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)