2016-04-04 23 views
1

camel-jettyコンポーネントを使用して画像ファイルアップローダを作成しています。画像は複数の部分から成るフォームデータとして要求本体に添付され、S3にアップロードする必要があります。camel-jettyコンポーネントを使用して画像をアップロードするには

これは私のルートです: from( "jetty:http://localhost:8889/imageservice?enableMultipartFilter=true").process(processor);

しかし、要求がプロセッサに到達する前に、以下の例外がスローされます。私はgoogleで検索しましたが、どこにもいません。この問題を解決するのを手伝ってください。

org.apache.camel.RuntimeCamelException: Cannot populate attachments 
    at org.apache.camel.component.jetty9.AttachmentHttpBinding.populateAttachments(AttachmentHttpBinding.java:56) 
    at org.apache.camel.http.common.DefaultHttpBinding.readRequest(DefaultHttpBinding.java:175) 
    at org.apache.camel.http.common.HttpMessage.<init>(HttpMessage.java:52) 
    at org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:134) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) 
    at org.eclipse.jetty.servlets.MultiPartFilter.doFilter(MultiPartFilter.java:200) 
    at org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:43) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
    at org.eclipse.jetty.server.Server.handle(Server.java:499) 
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) 
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) 
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 
    at java.lang.Thread.run(Thread.java:745) 

Caused by: java.lang.NullPointerException 
    at org.apache.camel.component.jetty9.AttachmentHttpBinding.populateAttachments(AttachmentHttpBinding.java:48) 
    ... 22 more 
+0

なぜ、S3 Camelコンポーネントを使用しないのですか? –

答えて

2

org.eclipse.jetty.util.MultiPartInputStreamParser部品に要求を解析するとき、これらの部品のいずれかがnullの場合、NullPointerExceptionが...のスタックトレースに従ってください。これは、リクエストの形式に問題があることを示しています。

jetty urlプロパティdisableStreamCacheをtrueに設定してみてください。 "http://camel.apache.org/jetty"、 "デフォルトでCamelは、Camelがストリームからすべてのデータを確実に取得できるように、Jetty入力ストリームを複数回読み込むことをサポートするようにキャッシュしますが、たとえば、ファイルやその他の永続的なストアに直接ストリーミングするなどの方法があります。

関連する問題