Eclipse では、Web アプリケーションからサーブレットを選択し、コンテキスト メニューから [Run As -> Run on Server] を選択できます。マイナーな問題の 1 つは、ブラウザーが間違った URL で開かれることです。たとえば、次のようなサーブレットを作成しました。
package mypackage;
@WebServlet("/append")
public class AppendTest extends HttpServlet {
@Override public void doGet(HttpServletRequest request, HttpServletResponse response) ...
...
}
次に、次のような URL を使用してブラウザーでテストできます: http://127.0.0.1:8080/mywebapp/append
しかし、上記で説明したようにサーブレットを実行することを選択すると、ブラウザーは次のように指示されます。
http://127.0.0.1:8080/mywebapp/servlet/mypackage/AppendTest
これはアプリケーションをテストするための小さな問題ですが、実際にはこの問題によってデバッグすることはできません。[Debug As] -> [Debug on Server] を選択すると、同じ問題が発生し、404 http ステータスの後にデバッガが停止するためです。回答 (404 ステータスの後に URL を修正すると、デバッガーはアクティブではなくなります)。
私が使用しているサーブレット コンテナは JBoss です。
助けてくれてありがとう。
アップデート:
サーバーがEclipseで正しく構成されていなかったため、デバッグできませんでした(Eclipseではなく外部で管理されるように構成されています。ヒント@CarlosGavidiaに感謝します)。
これにより、最大の問題が明らかに解決されます。サーブレットを実行/デバッグするたびに煩わしくURLを修正するのではなく、サーブレットの正しいURLをすぐに開くようにEclipseを作成する方法を誰かが知っていれば、感謝します。
これはEclipseのバグだと思い始めています。web.xml で URL パターンを明示的に宣言すると、Eclipse は正しい URL を使用します。つまりWebServlet
、サーブレット クラスを記述するときの URL を示すアノテーションの値は、アプリケーションの実行/デバッグ時に Eclipse によって無視されるだけです:(