サーブレットにHttpServletRequestオブジェクトがあり、そこに投稿されたXMLドキュメントを取得します。JAXPを使用したいと思います(私の特定のユースケースではディスク容量を使いすぎるため、JAXBではありません)。ドキュメントを解析して、処理されるメモリ内のDOMオブジェクトにする必要があります。リクエストオブジェクトからPOSTXMLを解析する方法について何か考えはありますか?
ありがとう、
ジョン・ゴッシュ
それは、クライアントがそれをどのように送信したかによって異なります。
HTTPmultipart/form-data
標準に準拠している場合(HTMLと一緒に使用される場合など<input type="file">
)、Apache CommonsFileUploadまたはServlet3.0を使用HttpServletRequest#getParts()
して、マルチパートリクエストから目的のパートを抽出します。ここにいくつかの具体的な例があります:JSP /サーブレットを使用してサーバーにファイルをアップロードする方法は?最終的には。になりたいと思いますInputStream
。
それが生のリクエスト本文である場合(つまり、リクエスト本文全体が実際にはXMLファイル全体である場合、ファイル転送にHTTPプロトコルを悪用している自家製の低レベルアプリケーションでよく見られます)、それをInputStream
byとして取得できますHttpServletRequest#getInputStream()
。
どのように使用/選択する場合でも、どういうわけかInputStream
XMLファイルを参照することになることを確認する必要があります。このようにして、通常の方法でJAXP APIにフィードできます。この方法では、メソッドがInputStream
。