Java EE 6 コンテナー (より具体的には Servlet 3.0 実装) にデプロイするには、いくつかのオプションがあります。
最も簡単なのは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd" version="3.0">
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
次に、Web アプリケーションで見つかったすべての@Path
および@Provider
クラスは、サーブレット URL パターン"/rest/*"
.
を拡張するクラスが 1 つ以上ある場合はjavax.ws.rs.core.Application
、次のように指定できます。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd" version="3.0">
<servlet>
<servlet-name>com.example.jaxrs.MyApplication</servlet-name>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>com.example.jaxrs.MyApplication</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
@Path
特定の/クラスのセットのみを URL に返したい場合は、上記を実行することをお勧めし@Provider
ます (そのため、上記の別の URL パターンを持つ 2 番目の MyApplication2 を作成できます)。
全体を完全にスキップして、URL パターンとして機能するクラスweb.xml
に注釈を付けることもできます。いずれにしても、Web アプリケーションに関する他の情報をそこに追加する必要がある可能性があるため、.MyApplication
@ApplicationPath
web.xml
がどこからservlet-class
来たのか疑問に思っている場合は、環境によって自動的に追加されます。Servlet 3.0 を見ると、アイデアが得られますServletContext
。