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