0

すべての ReST リクエストを実際の ReST サービス プロバイダー (Tomcat) にプロキシする次のルートを SMX にデプロイしました。SMX へのすべての ReST 呼び出しは正常にルーティングされますが、PDF ファイルをアップロードする saveDocument サービスは失敗します。

public void configure() throws Exception {
from("jetty:http://{{smx.host}}:{{smx.rest-proxy-port}}/{{smx.context}}matchOnUriPrefix=true")
.log("ReST call received (Java DSL)")
.to("jetty:http://{{real-server-address}}:{{real-ws-port}}/{{context}}?bridgeEndpoint=true&throwExceptionOnFailure=false")
.log("Rest call proxied (Java DSL)");
}

次の例外が servicemix.log に記録されます。

19:53:57,065 | 警告 | HttpClient-137 | HttpExchange | 111 - org.eclipse.jetty.util - 7.5.4.v20111024 | EXCEPTION JettyContentExchange@188af650=POST//実サーバーアドレス...:8080/contextpath.../saveDocument#SENDING(3ms)-> EXCEPTED(0ms)sent=3ms java.lang.IndexOutOfBoundsException

呼び出しを実際の ReST サービスにリダイレクトする前に、base64 で追加の処理を実行する必要がありますか?

私の以前の投稿の更新。これは、txt ファイルを使用すると機能するように見えますが、pdf または doc では失敗します。

更新 2: txt のサイズが 7KB を超えると失敗します。

大きなサイズのファイルを受け入れるようにキャメル桟橋を設定することは可能ですか?

4

1 に答える 1

0

マルチパート WS を使用すると、これを解決できます。マルチパート WS の場合にルートをテストするために、マルチパート CXF ReST ファイル アップロード サービスを実装しました。

The following route works OK for multipart:
from("jetty:http://.../?matchOnUriPrefix=true&enableMultipartFilter=false")
        .noStreamCaching()
        .log("Service Proxied")
        .to("jetty:http://...:../?bridgeEndpoint=true&throwExceptionOnFailure=false");

最初の WS で何が問題なのかまだわかりません。

問題はここでも追跡されます。

于 2013-11-08T12:37:58.337 に答える