1

高負荷の REST Web サービスを再設計するにはどうすればよいですか?

XML ファイルを文字列として受け取る既存の Java ベースの REST Web サービスがあります。このサービスに XML ファイルを送信しているクライアントがいくつかあります。大きな XML ファイル (>100 MB) がこのサービスに文字列として送信されると、Web サービスの速度が低下し、フリーズし、クラッシュします (OutOfMemory)。

既存のクライアントに影響を与えずに、大きな XML データを受信して​​処理するように Web サービスを変更するにはどうすればよいですか?

これは、既存の Web サービス シグネチャです。

@POST
@Path("/acceptMessage")
public String acceptMessage(String request) throws Exception;

「文字列リクエスト」が負荷/パフォーマンスの問題を引き起こしています。Web サービスの署名に加えた変更は、既存の Web サービス クライアントには影響しません。

私のオプションは何ですか?

4

1 に答える 1

1

String requestパラメータを に変更しますReader request。JAX-RS 仕様のセクション 4.2.4 によると、File request. また、役に立つかもしれないし、役に立たないかもしれない他の多くの有効な型があります:

  • javax.activation.DataSourceすべてのメディア タイプ ( / )。
  • javax.xml.transform.SourceXML タイプ (text/xml、application/xml、application/*+xml)。
  • javax.xml.bind.JAXBElementおよびアプリケーション提供の JAXB クラス XML メディア タイプ (text/xml、application/xml、および application/*+xml)。
于 2013-09-30T10:33:46.963 に答える