0

PLSQL から http リクエストを送信しようとしています。それは正常に動作します。

HttpRequest := UTL_HTTP.BEGIN_REQUEST (url => v_http_url, METHOD => 'POST');
utl_http.set_header(HttpRequest, 'Content-Type', 'text/xml; charset=utf-8' );
utl_http.set_header(HttpRequest, 'Content-Length', 64);
utl_http.write_line(HttpRequest, 'some string');
Httpresp := utl_http.get_response(HttpRequest);
utl_http.end_request(HttpRequest);
utl_http.end_response(Httpresp);

Spring Integration 側:

<int:channel id="inputChannel" />
<int:channel id="outputChannel" />

<int-http:inbound-gateway request-channel="inputChannel"
    reply-channel="outputChannel" supported-methods="POST" name="/req"
    message-converters="MyRequestConverter"
    request-payload-type="MyRequest">
</int-http:inbound-gateway>

<int:service-activator input-channel="inputChannel"
    method="getMessage" ref="dbmock"></int:service-activator>

メソッドを使用して MyRequestConverter を作成しました。

MyRequest readInternal(Class<? extends MyRequest > _class, HttpInputMessage message) throws IOException
void writeInternal(MyRequest request, HttpOutputMessage message)

私のサービスメソッドは次のようになります。

public Object getMessage(@Headers Map<String, Object> headers, @Payload MyRequest payload)

問題は、PLSQL サイトが応答を取得しないことです。延々と待機します。コメントしたら

Httpresp := utl_http.get_response(HttpRequest)

PLSQL プロシージャが正常に実行されます。さらに、java.lang.String のコンバーターがないという例外が発生します。

MyRequestConverter を逆方向に使用する方法はありますか?

助けてくれてありがとう!

4

1 に答える 1

2

content-lengthを64に設定していますが、送信するのは11バイトのみです。サーバーは追加のデータを待機しています。

于 2012-07-12T12:01:09.210 に答える