2.9. RESTEasy/Jakarta Enterprise Beans の統合
RESTEasy を Jakarta Enterprise Beans と統合するには、Jakarta RESTful Web Services アノテーションを Jakarta RESTful Web Services エンドポイントとして公開する Jakarta Enterprise Beans クラスに追加します。また、Bean のビジネスインターフェイスにアノテーションを適用することもできます。Bean をエンドポイントとしてアクティブ化するには、以下の 2 つの方法があります。
-
web.xml
ファイルの使用。 -
javax.ws.rs.core.Application
の使用
Jakarta Enterprise Beans を Jakarta RESTful Web Services リソースとして機能させるには、ステートレスセッション Bean の @Remote
または @Local
インターフェイスに Jakarta RESTful Web Services アノテーションを付けます。
@Local @Path("/Library") public interface Library { @GET @Path("/books/{isbn}") public String getBook(@PathParam("isbn") String isbn); } @Stateless public class LibraryBean implements Library { ... }
Library
インターフェイスは完全修飾名で参照され、LibraryBean
は単純なクラス名でのみ参照されることに注意してください。
次に、RESTEasy web.xml
ファイルで resteasy.jndi.resources
コンテキストパラメーターを使用して、Jakarta Enterprise Beans を RESTEasy で手動で登録します。
<web-app> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>resteasy.jndi.resources</param-name> <param-value>java:module/LibraryBean!org.app.Library</param-value> </context-param> <listener> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> </listener> <servlet> <servlet-name>Resteasy</servlet-name> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> </servlet> <servlet-mapping> <servlet-name>Resteasy</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
resteasy.jndi.resources
コンテキストパラメーターに対して、複数の Jakarta Enterprise Bean 名をコンマで区切り、複数の Java Naming and Directory Interface 名を指定することもできます。
Jakarta Enterprise Beans を RESTEasy エンドポイントとしてアクティベートする代替の Jakarta EE-standard 方法は、javax.ws.rs.core.Application
を使用することです。これには、Jakarta Enterprise Beans 実装クラスをアプリケーションの getClasses()
メソッドによって返されるセットに追加します。このアプローチでは、web.xml
ファイルで指定する必要はありません。
RESTEasy と Jakarta Enterprise Beans の統合を示す実例については、JBoss EAP に同梱される kitchensink
、helloworld-html5
、managed-executor-service
クイックスタートを参照してください。