16.4. JAX-WS Web サービスエンドポイント
16.4.1. JAX-WS Web サービスエンドポイント
- WSDL 記述子は手動で記述できます。
- WSDL 記述子を自動的に作成する JAX-WS アノテーションを使用できます。これは、WSDL 記述子を作成するための最も一般的な方法です。
開発要件
Web サービスは、JAX-WS API および JSR 181: Web Services Metadata for the Java Platform 仕様の要件を満たす必要があります。有効な実装は、以下の要件を満たしている必要があります。
- それは含まれています
javax.jws.WebService
注釈。 - すべてのメソッドパラメーターとリターンタイプは、JAXB2.0 仕様の JSR-222 と互換性があります。詳細は、http://www.jcp.org/en/jsr/summary?id=222 を参照してください。
例16.10 例: POJO エンドポイント
@WebService @SOAPBinding(style = SOAPBinding.Style.RPC) public class JSEBean01 { @WebMethod public String echo(String input) { ... } }
例16.11 例: Web サービスエンドポイント
<web-app ...> <servlet> <servlet-name>TestService</servlet-name> <servlet-class>org.jboss.test.ws.jaxws.samples.jsr181pojo.JSEBean01</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestService</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
例16.12 EJB でのエンドポイントの公開
@Stateless @Remote(EJB3RemoteInterface.class) @RemoteBinding(jndiBinding = "/ejb3/EJB3EndpointInterface") @WebService @SOAPBinding(style = SOAPBinding.Style.RPC) public class EJB3Bean01 implements EJB3RemoteInterface { @WebMethod public String echo(String input) { ... } }
エンドポイントプロバイダー
JAX-WS サービスは通常 Java サービスエンドポイントインターフェース (SEI) を実装します。これは、WSDL ポートタイプから、直接またはアノテーションを使用してマッピングされる可能性があります。この SEI は、Java オブジェクトとその XML 表現の詳細を隠す高度な抽象化を提供します。ただし、サービスは XML メッセージレベルで動作する必要があることがあります。エンドポイントProvider
インターフェイスは、この機能を実装する Web サービスに提供します。
エンドポイントの使用およびアクセス
Web サービスをデプロイしたら、WSDL を消費してアプリケーションの基盤となるコンポーネントのスタブを作成できます。その後、アプリケーションはエンドポイントにアクセスしてその作業を実行できます。
実例
JBoss EAP クイックスタートには、完全に機能する JAX-WSWeb サービスアプリケーションがいくつか含まれています。これらの例は次のとおりです。
- wsat-simple
- wsba-coordinator-completion-simple
- wsba-participant-completion-simple