[解決済み] アノテーションのみ(web.xmlなし)を使用してJAX-RSアプリケーションをセットアップする方法は?
2023-07-19 02:42:55
質問
アノテーションだけでJAX-RSアプリケーションを構築することは可能でしょうか?(サーブレット3.0とJAX-RSジャージー1.1.0を使用しています)。
私は試してみましたが、うまくいきませんでした。いくつかの
web.xml
が必要なようです。
設定A (動作しているが、web.xmlの設定がある)
web.xml
...
<servlet>
<servlet-name>org.foo.rest.MyApplication</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>org.foo.rest.MyApplication</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
...
Java
@ApplicationPath("/")
public class MyApplication extends Application {
...
}
設定B (動作せず、例外が発生)
@ApplicationPath("/")
@WebServlet("/*") // <--
public class MyApplication extends Application {
...
}
後者は、ApplicationがServletのサブクラスであることを主張しているようです(例外は推測の域を出ません)。
java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet
質問
-
web.xmlの定義はうまくいったのに、アノテーションはうまくいかなかったのはなぜですか?何が違うのでしょうか?
-
web.xmlがないJAX-RSアプリケーションを持つなど、うまくいく方法はありますか?
どのように解決するのですか?
必要なのはこれだけだったようです(Servlet 3.0以上)。
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/*")
public class MyApplication extends Application {
...
}
また、web.xmlの設定は不要だったようです(Tomcat 7で試しました)。
関連
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
無効な文字定数
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
Java の double データ型における 0.0 と -0.0 の問題
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] JAX-RSとJerseyでRESTトークンベースの認証を実装する方法
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
強制型変換について
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
配列定数は初期化子でのみ使用可能です。
-
Javaがテキストファイルを読み込む
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
Java Runtime Environmentを継続するためのメモリが不足しています。
-
Java基礎 - マッピングとQ/A