別のサーブレットからサーブレットPOSTメソッドを呼び出し、サーブレットパラメータにblobを渡す必要があります。これが可能かどうか、それはどうやって実現できるのでしょうか? PS:Apache HTTPクライアントを使用できない別のサーブレットからサーブレットポストを呼び出す
答えて
HTTPリクエストを自分で作成して送信する必要があります。メソッドをGETからPOSTに変更し、multipart/form-data
リクエストを送信したいので、forward/redirect/includeを使用することはできません。
HttpClient(およびその他のサードパーティのライブラリ?)は明らかにオプションではないため、java.net.URLConnection
の標準Java SE APIを使用することをお勧めします。長い話短い:Using java.net.URLConnection to fire and handle HTTP requests下部にmultipart/form-data
の例があります。
この問題は、サーブレットに固有の問題ではないことに注意してください。つまり、main()
メソッドを持つプレーンなバニラJavaアプリケーションでこのコードを実行できる必要があります。これにより、テストと微調整が容易になります。いったん動作させると、サーブレットは同じコードを実行させます。問題の無関係
、私は両方のサーブレットが同じwebアプリケーションのコンテキストで実行確かならば、どこかの主要な設計ミスがあることを印象を持っています。 POSTリクエストを送信したい他のサーブレットは、明らかに緊密に結合されているため、リファクタリングする必要があります。
あなたのアプリケーションから別のWebサービスに電話することを意味しますか?もしそうなら、HttpClientのようなものがあなたの望むものです。アプリで別のサーブレットをプログラムで呼び出す場合は、forward to itまたはinclude itのいずれかを探していることを意味します。
私のアプリ内で別のサーブレットを呼びそそうとしていますが、POSTメソッドでなければなりません。私が通常やっているのはresponse.redirect(...)ですが、これはGETメソッドを呼び出します...どうすればPOSTを呼び出せますか? – fernandohur
私が言ったこと:あなたがしようとしていることに応じて、フォワードまたはインクルード。詳細は、JEEチュートリアルの[他のWebリソースの呼び出し](http://download.oracle.com/javaee/6/tutorial/doc/bnagi.html)を参照してください。 –
ディスパッチャをアプリケーション内の別のサーブレットに取得し、それを転送するか、@ Ryanが示唆するようにインクルードすることができます。コードは、最初のサーブレットの内部で次のようにする必要があります。
ServletContext context = this.getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/otherurltoservlet");
// change your request and response accordingly
dispatcher.forward(request, response);
私の必要なのは、アプリケーションの別のサーブレットでPOSTメソッドを呼び出すことです。それは "otherurltoservlet"のPOSTメソッドを呼び出しますか? – fernandohur
私は、最初のサーブレットがpost経由で呼び出された場合、2番目のサーブレットはdispatcher.forwardチェーンのpost経由で呼び出されると考えています。 – rmarimon
ここからPOSTへのGETについての質問をご覧くださいhttp://stackoverflow.com/questions/4374548/does-jspforward-or-requestdispatcher-forward-use-get-or-post – rmarimon
- 1. 別のサーブレットからサーブレットのサービスを呼び出す
- 2. 別のサーブレットからサーブレットを呼び出す
- 3. HTMLフォームからサーブレットを呼び出すがサーブレットは呼び出されない
- 4. サーブレットをAjaxから呼び出す
- 5. HTMLからサーブレットを呼び出す
- 6. サーブレットからgoogle apiを呼び出す
- 7. サーブレットからネイティブプログラムを呼び出す
- 8. JSPページからサーブレットを呼び出す
- 9. サーブレット内の別のサーブレットを呼び出す方法は?
- 10. サーブレットへのjsp呼び出しで別々のajax呼び出しを持つ
- 11. サーブレットからサーブレットを呼び出し、1つのアプリケーション内でJSP(woフォーム)を呼び出す
- 12. htmlからサーブレットを呼び出す方法とサーブレットがjspを呼び出す方法は?
- 13. HTMLフォームから呼び出すサーブレット、ないサーブレットからの応答
- 14. サーブレットが別のサーバのクラスのメソッドを呼び出す
- 15. GWTのviewImplクラスからサーブレットを呼び出す方法は?
- 16. また、フォルダ内のサーブレットからJSPを呼び出す方法
- 17. サーブレット呼び出しwindow.showModalDialog(...)
- 18. org.apache.catalina.core.StandardWrapperValveを呼び出すSEVERE:サーブレットのServlet.service()
- 19. 別のクラスから呼び出すメソッド
- 20. javascript ajax postメソッドからJavaサーブレットを呼び出す
- 21. jspからサーブレットでdoDeleteを呼び出す方法は?
- 22. 外部アプリケーションからGwtServiceImplサーブレットを呼び出す方法は?
- 23. swtからサーブレットを呼び出す方法は?
- 24. Faceletからサーブレットを適切に呼び出す方法は?
- 25. jspページからサーブレットを呼び出す方法
- 26. サーブレットからスタンドアロンJavaプログラムを呼び出す
- 27. サーブレットからjsにパラメータを呼び出す方法
- 28. Javaサーブレットの呼び出しがサーブレットに届かない
- 29. 問題を呼び出すサーブレット
- 30. jspでサーブレットを呼び出すフォーム
Apache HttpClientはオープンソースです...コピーして貼り付けますか? –
Google App Engineを使用しているため、使用できるクラスに制限があります。 – fernandohur