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 に同梱される kitchensinkhelloworld-html5managed-executor-service クイックスタートを参照してください。