3 JWSアノテーション・リファレンス

WebLogic Webサービスのプログラミング・モデルは、JSR-175で指定されているJDK メタデータ・アノテーション機能を使用します。JSR-175は、JavaTMプログラミング言語のメタデータ機能で、WebLogic固有のJWSアノテーションを提供します。

この章の内容は以下のとおりです。

JWSアノテーション・タグの概要

メタデータ・アノテーション・プログラミング・モデルでは、アノテーション付きのJavaファイルを作成し、Antタスクを使用してそのファイルをJavaソース・コードにコンパイルし、関連するアーティファクトをすべて生成します。

アノテーション付きのJava Webサービス(JWS)ファイルは、Webサービスの中核部分です。このファイルにはWebサービスの動作を決定するJavaコードが含まれています。JWSファイルは、アノテーションを使用してWebサービスの形式や特性を指定した、通常のJavaクラス・ファイルです。

サポートされているJWSアノテーションは、Webサービスによって異なります。JAX-WSのWebサービスのアノテーション・サポートは次のとおりです:

JWSアノテーションは、JWSファイルのクラス、メソッド、またはパラメータのいずれかのレベルでターゲット指定できます。アノテーションの中には、複数のレベルでターゲット指定できるものもあります。たとえば、@SecurityRolesは、クラスとメソッドの両方のレベルでターゲット指定できます。

次に、標準JSR-181(boldで表示)を使用した簡単なJWSファイルの例を挙げます。

package examples.webservices.complex;
// Import the standard JWS annotation interfaces
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
// Import the BasicStruct JavaBean
import examples.webservices.complex.BasicStruct;
// Standard JWS annotation that specifies that the portType name of the Web
// Service is "ComplexPortType", its public service name is "ComplexService",
// and the targetNamespace used in the generated WSDL is "http://example.org"
@WebService(serviceName="ComplexService", name="ComplexPortType",
            targetNamespace="http://example.org")
// Standard JWS annotation that specifies this is a document-literal-wrapped
// Web Service
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,
             use=SOAPBinding.Use.LITERAL,
             parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
/**
 * This JWS file forms the basis of a WebLogic Web Service.  The Web Services
 * has two public operations:
 *
 *  - echoInt(int)
 *  - echoComplexType(BasicStruct)
 *
 * The Web Service is defined as a "document-literal" service, which means
 * that the SOAP messages have a single part referencing an XML Schema element
 * that defines the entire body.
 *
*/
public class ComplexImpl {
  // Standard JWS annotation that specifies that the method should be exposed
  // as a public operation.  Because the annotation does not include the
  // member-value "operationName", the public name of the operation is the
  // same as the method name: echoInt.
  //
  // The WebResult annotation specifies that the name of the result of the
  // operation in the generated WSDL is "IntegerOutput", rather than the
  // default name "return".   The WebParam annotation specifies that the input
  // parameter name in the WSDL file is "IntegerInput" rather than the Java
  // name of the parameter, "input".
  @WebMethod()
  @WebResult(name="IntegerOutput",
             targetNamespace="http://example.org/complex")
  public int echoInt(
      @WebParam(name="IntegerInput",
                targetNamespace="http://example.org/complex")
      int input)
  {
    System.out.println("echoInt '" + input + "' to you too!");
    return input;
  }
  // Standard JWS annotation to expose method "echoStruct" as a public operation
  // called "echoComplexType"
  // The WebResult annotation specifies that the name of the result of the
  // operation in the generated WSDL is "EchoStructReturnMessage",
  // rather than the default name "return".
  @WebMethod(operationName="echoComplexType")
  @WebResult(name="EchoStructReturnMessage",
             targetNamespace="http://example.org/complex")
  public BasicStruct echoStruct(BasicStruct struct)
  {
    System.out.println("echoComplexType called");
    return struct;
  }
}

次の項では、サポートされるJWSアノテーションについて説明します。

Webサービス・メタデータ・アノテーション(JSR-181)

Webサービスの形態と動作を指定するためにJWSファイルで使用できる標準JSR-181アノテーションについて理解します。

次の表に、これらのアノテーションを示します。これらはjavax.jws (https://jakarta.ee/specifications/web-services-metadata/2.1/apidocs/javax/jws/package-summary)またはjavax.jws.soapパッケージ(https://jakarta.ee/specifications/web-services-metadata/2.1/apidocs/javax/jws/soap/package-summary)で使用できます。詳細は、Jakarta Webサービス・メタデータ(JSR-181)仕様(http://www.jcp.org/en/jsr/detail?id=181)を参照してください。

表3-1 標準JSR-181 JWSアノテーション

このアノテーションは... 次を指定します

javax.jws.WebService

クラス・レベルで、JWSファイルがWebサービスを実装すること。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの開発』の「JWSファイルがWebサービスを実装することの指定(@WebServiceアノテーション)」を参照してください。

javax.jws.WebMethod

JWSファイルのメソッドをWebサービスのパブリック操作として公開する必要があること。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの開発』の「JWSメソッドをパブリック操作として公開することの指定(@WebMethodおよび@OneWayアノテーション)」を参照してください。

javax.jws.OneWay

操作が呼出し側アプリケーションに値を戻さないこと。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの開発』の「JWSメソッドをパブリック操作として公開することの指定(@WebMethodおよび@OneWayアノテーション)」を参照してください。

javax.jws.WebParam

Webサービス操作の入力パラメータと生成されたWSDLファイルの要素のマッピング、およびパラメータの動作。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの開発』の「操作のパラメータとWSDL要素のマッピングのカスタマイズ(@WebParamアノテーション)」を参照してください。

javax.jws.WebResult

Webサービス操作の戻り値と生成されたWSDLファイルの対応する要素のマッピング。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの開発』の「操作の戻り値とWSDL要素のマッピングのカスタマイズ(@WebResultアノテーション)」を参照してください。

javax.jws.HandlerChain

外部ハンドラ・チェーン。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの開発』の「SOAPメッセージ・ハンドラの作成と使用」を参照してください。

javax.jws.SOAPBinding

クラス・レベルでWebサービスのSOAPバインディング(document-encodeddocument-literal-wrappedなど)。詳細は、『Oracle WebLogic Server JAX-WS Webサービスの開発』の「WebサービスとSOAPメッセージ・プロトコルのマッピングの指定(@SOAPBindingアノテーション)」を参照してください。

JAX-WSアノテーション(JSR-224)

Webサービスの形態と動作を指定するためにJWSファイルで使用できるJAX-WS (JSR-224)アノテーションについて理解します。次の表に、これらのJAX-WSアノテーションをまとめます。これらはjavax.xml.wsパッケージ(https://javaee.github.io/metro-jax-ws/)で使用できます。詳細は、JSR 224 (JAX-WS)アノテーション(https://javaee.github.io/metro-jax-ws/doc/user-guide/ch03.html#jsr-224-jax-ws-annotations-outline)を参照してください。

ノート:

JAX-WS JWSアノテーションは、JAX-WS Webサービスにのみ関連します。

表3-2 JAX-WS (JSR-224)アノテーション

このアノテーションは... 次を指定します

javax.xml.ws.Action

WS-Addressing Actionメッセージ・アドレッシング・プロパティと、マップされたWSDL操作のinputoutput、およびfaultメッセージの明示的な関連付けを許可するかどうか。

javax.xml.ws.BindingType

Webサービスの実装クラスに使用するバインディング。『Oracle WebLogic Server JAX-WS Webサービスの開発』エンドポイントに使用するバインディング・タイプの指定(@BindingTypeアノテーション)に関する項を参照してください。

javax.xml.ws.FaultAction

WS-Addressing Actionメッセージ・アドレッシング・プロパティと、例外クラスからマップされたWSDL操作のフォールト・メッセージの明示的な関連付けを許可するかどうか。@FaultActionアノテーションは、@Actionアノテーションの内部で使用されます。

javax.xml.ws.RequestWrapper

実行時にエンドポイント・インタフェースのメソッドに使用されるリクエスト・ラッパーBean。

javax.xml.ws.ResponseWrapper

実行時にエンドポイント・インタフェースのメソッドに使用されるレスポンス・ラッパーBean。

javax.xml.ws.ServiceMode

プロバイダ実装がプロトコル・メッセージ全体を対象とするのか、ペイロードのみを対象にするのか。

javax.xml.ws.WebEndpoint

生成されたサービス・インタフェースのgetPortName()メソッド。

javax.xml.ws.WebFault

フォールト要素のローカルおよびネームスペース名、フォールトBeanの名前をそれぞれカスタマイズするためのサーバー固有の例外クラス。

javax.xml.ws.WebServiceClient

生成されたサービス・インタフェース。

javax.xml.ws.WebServiceProvider

プロバイダ実装クラス。

javax.xml.ws.WebServiceRef

Webサービスへの参照。『Oracle WebLogic Server JAX-WS Webサービスの開発』@WebServiceRefアノテーションを使用したWebサービス参照の定義に関する項を参照してください。

JAXBアノテーション(JSR-222)

Webサービスの形態と動作を指定するためにJWSファイルで使用できるJAXB (JSR-222)アノテーションについて理解します。

次の表に、これらのJAXBアノテーションをまとめます。これらはjavax.xml.bind.annotationパッケージ(https://jakarta.ee/specifications/xml-binding/3.0/apidocs/jakarta.xml.bind/jakarta/xml/bind/annotation/package-summary)で使用できます。詳細な説明は、『Oracle WebLogic Server JAX-WS Webサービスの開発』JAXBアノテーションを使用したJava-to-XMLスキーマ・マッピングのカスタマイズに関する項またはJAXB (JSR-222)仕様(http://jcp.org/en/jsr/detail?id=222)を参照してください。

ノート:

JAXB JWSアノテーションは、JAX-WS Webサービスにのみ関連します。

表3-3 JAXBマッピング・アノテーション(JSR-222)

このアノテーションは... 次を指定します

javax.xml.bind.annotation.XmlAccessorType

デフォルトでフィールドまたはプロパティをシリアライズするかどうか。『Oracle WebLogic Server JAX-WS Webサービスの開発』フィールドおよびプロパティのデフォルト・シリアライゼーションの指定(@XmlAccessorType)に関する項を参照してください。

javax.xml.bind.annotation.XmlElement

クラスに格納されているプロパティを、格納しているクラスがマップされているXMLスキーマの複合型のローカル要素へマップすること。『Oracle WebLogic Server JAX-WS Webサービスの開発』プロパティとローカル要素とのマッピング(@XmlElement)に関する項を参照してください。

javax.xml.bind.annotation.XmlRootElement

WebサービスのWSDLによって使用されるXMLスキーマのグローバル要素に最上位クラスをマップすること。『Oracle WebLogic Server JAX-WS Webサービスの開発』最上位クラスとグローバル要素のマッピング(@XmlRootElement)に関する項を参照してください。

javax.xml.bind.annotation.XmlSeeAlso

現在のクラスをバインドするときにバインドする他のクラス。『Oracle WebLogic Server JAX-WS Webサービスの開発』複数のクラスのバインディング(@XmlSeeAlso)に関する項を参照してください。

javax.xml.bind.annotation.XmlType

クラス型または列挙型をXMLスキーマ型にマップすること。『Oracle WebLogic Server JAX-WS Webサービスの開発』値クラスとスキーマ型のマッピング(@XmlType)に関する項を参照してください。

Jakartaアノテーション(JSR-250)

Webサービスの形態と動作を指定するためにJWSファイルで使用できるJavaプラットフォーム向けJakartaアノテーション(JSR-250)について理解します。 これらの各アノテーションは、javax.annotationパッケージ(https://jakarta.ee/specifications/annotations/1.3/apidocs/)で使用できます。詳細は、Javaプラットフォーム向けJakartaアノテーション(JSR-250)仕様(http://jcp.org/en/jsr/detail?id=250)を参照してください。

表3-4 Jakartaアノテーション(JSR-250)

このアノテーションは... 次を指定します

javax.annotation.Resource

アプリケーションが必要とするリソース。アノテーションは、アプリケーション・コンポーネント・クラス、コンポーネント・クラスのフィールドまたはメソッドに適用できます。

javax.annotation.PostConstruct

依存関係インジェクションが完了した後に、初期化を実行するために呼び出す必要のあるメソッド。

javax.annotation.PreDestroy

コンテナがインスタンスを削除しようとしていることを知らせるコールバック通知を受信するメソッド。

WebLogic固有のアノテーション

WebLogic Webサービスでは、JSR-181の標準JWSアノテーションに加え、さらに動作と機能を指定するのに使用できるJWSアノテーションのセットが定義されます。 次の表に、JAX-WSでサポートされているWebLogic固有のアノテーションをまとめています。各アノテーションの詳細については、後の節で説明します。

表3-5 WebLogic固有のアノテーション

このアノテーションは... 指定内容

com.oracle.webservices.api.jms.JMSTransportClient

Webサービス・クライアントがSOAP over JMSトランスポート接続プロトコルをサポートすること。

com.oracle.webservices.api.jms.JMSTransportService

WebサービスがSOAP over JMSトランスポート接続プロトコルをサポートすること。

weblogic.jws.Policies

@weblogic.jws.Policyアノテーションの配列。

weblogic.jws.Policy

デジタル署名、暗号化、またはWebサービスの信頼性のあるメッセージングに関する情報を格納しているWS-PolicyファイルをリクエストまたはレスポンスSOAPメッセージに適用するように指定します。

weblogic.jws.security.WssConfiguration

Webサービスで使用するWebサービス・セキュリティ構成の名前。

weblogic.wsee.jws.jaxws.owsm.Property

ポリシー構成プロパティのオーバーライド。

このアノテーションをweblogic.wsee.jws.jaxws.owsm.SecurityPolicyアノテーションとともに使用すると、ポリシーをWebサービス・クライアントにアタッチするときに構成プロパティをオーバーライドできます。

weblogic.wsee.jws.jaxws.owsm.SecurityPolicies

@weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesアノテーションの配列。

weblogic.wsee.jws.jaxws.owsm.SecurityPolicy

Oracle Web Services Manager (OWSM)のセキュリティ・ポリシーがWebサービスまたはクライアントにアタッチされること。

weblogic.wsee.jws.jaxws.owsm.SecurityPolicies

@weblogic.jws.SecurityPolicyアノテーションの配列。

weblogic.wsee.jws.jaxws.owsm.SecurityPolicy

デジタル署名または暗号化に関する情報を格納しているOracle Web Services Manager (Oracle WSM) WS-PolicyファイルをリクエストまたはレスポンスSOAPメッセージに適用するように指定します。

weblogic.wsee.wstx.wsat.Transactional

アノテーション付きのクラスまたはメソッドをWebサービス原子性トランザクション内で実行するかどうか。

com.oracle.webservices.api.jms.JMSTransportClient

ターゲット: クラス

JAX-WS Webサービス・クライアントについて、SOAP over JMSトランスポートを有効化および構成します。

SOAP over JMSトランスポートを使用し、HTTP接続ではなくJMSの宛先によりWebサービスおよびクライアントが通信を行う場合、次のような利点があります。

  • 信頼性

  • スケーラビリティ

  • サービス品質

SOAP over JMSトランスポートの使用方法の詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発接続プロトコルとしてのSOAP Over JMSトランスポートの使用を参照してください。

属性

オプションで、@JMSTransportClientアノテーションを使用して、次のJMSトランスポート・プロパティを構成できます。プロパティの詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発JMSトランスポートのプロパティの構成を参照してください。

  • destinationName

  • destinationType

  • enabled

  • jmsHeaderProperty

  • jmsMessageProperty

  • jndiConnectionFactoryName

  • jndiContextParameters

  • jndiInitialContextFactory

  • jndiURL

  • messageType

  • priority

  • replyToName

  • targetService

  • timeToLive

ノート:

『Oracle WebLogic Server JAX-WS Webサービスの開発』で説明されているように、SOAP over JMSトランスポートをWebサービスの信頼できるメッセージングまたはストリーミングSOAPアタッチメントと一緒には使用できません。

次のサンプル・スニペットでは、クライアント・ファイル内で@JMSTransportClientアノテーションを使用してSOAP over JMSトランスポートを有効にする方法を示しています。

...
import javax.xml.ws.WebServiceClient;
import com.oracle.webservices.api.jms.JMSTransportClient;
...
@WebServiceClient(name = "WarehouseService", targetNamespace = "http://oracle.com/samples/", 
                  wsdlLocation="WarehouseService.wsdl")
@JMSTransportClient (
    destinationName="myQueue", 
    replyToName="myReplyToQueue",
    jndiURL="t3://localhost:7001",
    jndiInitialContextFactory="weblogic.jndi.WLInitialContextFactory" , 
    jndiConnectionFactoryName="weblogic.jms.ConnectionFactory" , 
    deliveryMode="PERSISTENT", timeToLive="1000", priority="1", 
    messageType="TEXT" 
)

public class WarehouseService  extends Service { ... }

com.oracle.webservices.api.jms.JMSTransportService

ターゲット: クラス

JAX-WS Webサービスについて、SOAP over JMSトランスポートを有効化および構成します。

SOAP over JMSトランスポートを使用し、HTTP接続ではなくJMSの宛先によりWebサービスおよびクライアントが通信を行う場合、次のような利点があります。

  • 信頼性

  • スケーラビリティ

  • サービス品質

SOAP over JMSトランスポートの使用方法の詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発接続プロトコルとしてのSOAP Over JMSトランスポートの使用を参照してください。

ノート:

SOAP over JMSトランスポートは、信頼性のあるメッセージングおよびHTTPトランスポート固有のセキュリティのWebサービス機能とは互換性がありません。

属性

オプションで、@JMSTransportServiceアノテーションを使用してJMSトランスポートのプロパティを構成できます。プロパティの詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発JMSトランスポートのプロパティの構成を参照してください。

次のサンプル・スニペットでは、JWSファイル内で@JMSTransportServiceアノテーションを使用してSOAP over JMSトランスポートを有効にする方法を示しています。@ActivationConfigPropertyは、サービス側のMDB構成プロパティの設定に使用されています。

import javax.jws.WebService;
import com.oracle.webservices.api.jms.JMSTransportService;
import com.sun.xml.ws.binding.SOAPBindingImpl;
import javax.ejb.ActivationConfigProperty;
@WebService(name="NotifyServicePortType", serviceName="NotifyService", 
   targetNamespace="http://examples.org/")
@JMSTransportService(destinationName="myQueue", 
   activationConfig = { 
      @ActivationConfigProperty(
         propertyName  = "destinationType", 
         propertyValue = "javax.jms.Topic"),
      @ActivationConfigProperty(
         propertyName  = "subscriptionDurability",
         propertyValue = "Durable"),
      @ActivationConfigProperty(propertyName  = "topicMessagesDistributionMode",
         propertyValue = "One-Copy-Per-Application")})
@BindingType(SOAPBindingImpl.SOAP11_JMS_BINDING)
public class NotifyServiceImpl {..}

weblogic.jws.Policies

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: クラス、メソッド

@weblogic.jws.Policyアノテーションの配列を指定します。

このアノテーションは、複数のWS-PolicyファイルをJWSファイルのクラスまたはメソッドにアタッチする場合に使用します。アタッチするWS-Policyファイルが1つだけの場合は、@weblogic.jws.Policyを単独で使用できます。

このJWSアノテーションには、属性はありません。

@Policies({
    @Policy(uri="policy:firstPolicy.xml"),
    @Policy(uri="policy:secondPolicy.xml")
  })

weblogic.jws.Policy

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: クラス、メソッド

デジタル署名、暗号化、またはWebサービスの信頼性のあるメッセージングに関する情報を格納しているWS-PolicyファイルをリクエストまたはレスポンスSOAPメッセージに適用するように指定します。

このアノテーションを単独で使用すると、単一のWS-Policyファイルをクラスまたはメソッドに適用できます。複数のWS-Policyファイルをクラスまたはメソッドに適用する場合は、@weblogic.jws.Policiesアノテーションを使用し、WS-Policyファイルをまとめて適用します。

このアノテーションをクラス・レベルで指定した場合、WS-Policyファイル(1つまたは複数)はWebサービスのあらゆるパブリック操作に適用されます。アノテーションをメソッド・レベルで指定した場合、WS-Policyファイルは、対応する操作にのみ適用されます。

デフォルトでは、WS-Policyファイルはリクエスト(インバウンド)とレスポンス(アウトバウンド)の両方のSOAPメッセージに適用されます。このデフォルトの動作は、direction属性を使用して変更できます。

デフォルトではまた、指定したWS-Policyファイルは、Webサービス用に生成されてパブリッシュされたWSDLファイルにアタッチされるので、コンシューマは、WebサービスのWS-Policyに関するすべての要件を確認できます。このデフォルトの動作を変更するには、attachToWsdl属性を使用します。

属性

表3-6 weblogic.jws.Policy JWSアノテーション・タグの属性

名前 説明 データ型 必須?

uri

WS-Policyファイルを検索する場所を指定します。

Web上のWS-PolicyファイルのURLを指定するには、http:接頭辞を使用します。

WS-PolicyファイルがWebLogic ServerのWebサービス・アーカイブ・ファイルまたは共有可能なJakarta EEライブラリにパッケージ化されていることを指定する場合は、次の例のようにpolicy:接頭辞を使用します:

@Policy(uri="policy:MyPolicyFile.xml")

Webサービス・アーカイブ形式でWS-Policyファイルをパブリッシュする場合は、EJB JARファイル(EJB実装のWebサービスの場合)のMETA-INF/policiesディレクトリまたはWARファイル(Java実装のWebサービスの場合)のWEB-INF/policiesディレクトリのどちらかにWS-Policy XMLファイルを格納する必要があります。

ライブラリ内のWS-Policyファイルのパブリッシュについては、『Oracle WebLogic Serverアプリケーションの開発』共有Jakarta EEライブラリおよびオプション・パッケージの作成を参照してください。

String

はい

direction

ポリシーをインバウンド・リクエストSOAPメッセージに対して適用するか、アウトバウンド・レスポンスSOAPメッセージに対して適用するか、またはその両方(デフォルト)に対して適用するかを指定します。

この属性の有効な値は次のとおりです:

  • Policy.Direction.both

  • Policy.Direction.inbound

  • Policy.Direction.outbound

デフォルト値はPolicy.Direction.bothです。

enum

いいえ

attachToWsdl

Webサービスを記述するWSDLにWS-Policyファイルをアタッチするかどうかを指定します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

ブール

いいえ

  @Policy(uri="policy:myPolicy.xml", 
          attachToWsdl=true, 
          direction=Policy.Direction.outbound)

weblogic.jws.security.WssConfiguration

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: クラス

Webサービスで使用するWebサービス・セキュリティ構成の名前を指定します。JWSファイルでこのアノテーションを指定しなかった場合、デフォルトのセキュリティ構成(default_wss)をドメインで作成済であれば、Webサービスは、そのセキュリティ構成に関連付けられます。

@WssConfigurationアノテーションは、Webサービスでメッセージ・レベルのセキュリティ(暗号化およびデジタル署名)が構成されている場合にのみ有効です。このアノテーションを使用してWebサービスに関連付けられたセキュリティ構成では、アイデンティティの認証にX.509証明書を使用するかどうか、パスワード・ダイジェストを使用するかどうか、暗号化やデジタル署名にキーストアを使用するかどうかなどを指定します。

WebLogic Webサービスは、必ずしもセキュリティ構成と関連付ける必要はありません。Webサービスのセキュリティ・ランタイムのデフォルトの動作が十分なものであれば、追加の構成は不要です。しかし、Webサービスでデフォルトとは異なる動作が必要とされる場合(アイデンティティの認証に、デフォルトのユーザー名/パスワードのトークンではなくX.509証明書を使用する場合など)は、Webサービスにセキュリティ構成を関連付ける必要があります。

メッセージ・レベルのセキュリティの概要は、Oracle WebLogic Server WebLogic Webサービスの保護メッセージ・レベルのセキュリティの構成を参照してください。

ノート:

@WssConfigurationアノテーションを使用する場合、単一のWebアプリケーションにパッケージ化されているすべてのWebLogic Webサービスは同じセキュリティ構成に関連付けられている必要があります。たとえば、特定のWebアプリケーションに含まれるWebサービスを実装するすべてのJWSファイルに@WssConfigurationアノテーションが存在している場合は、各@WssConfigurationvalue属性が同じでなければなりません。

jwsc Antタスクを使用してJWSファイルをWebサービスにコンパイルするときに複数のWebサービスが単一のWebアプリケーションに含まれていることを指定するには、単一の<module>要素で対応する<jws>要素をグループ化します。

属性

表3-7 weblogic.jws.security.WssConfiguration JWSアノテーション・タグの属性

名前 説明 データ型 必須?

value

このWebサービスに関連付けられたWebサービス・セキュリティ構成の名前を指定します。デフォルト構成名はdefault_wssです。

String

はい

以下の例では、Webサービスがmy_security_configurationセキュリティ構成に関連付けられるように指定する方法を示します。ここでは、関連するJavaコードのみを示します。

package examples.webservices.wss_configuration;
import javax.jws.WebService;
...
import weblogic.jws.security.WssConfiguration;
@WebService(...
...
@WssConfiguration(value="my_security_configuration")
public class WssConfigurationImpl {
...

weblogic.wsee.jws.jaxws.owsm.Property

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: クラス

ポリシー構成プロパティのオーバーライドを指定します。

このアノテーションをweblogic.wsee.jws.jaxws.owsm.SecurityPolicyアノテーションとともに使用すると、ポリシーをWebサービス・クライアントにアタッチするときに構成プロパティをオーバーライドできます。

ノート:

このアノテーションは、Webサービス・クライアント専用です。Webサービス(サーバー側)のポリシー・アタッチメントについては、サポートされていません。

このアノテーションの使用の詳細と例は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理アノテーションを使用したJava EE Webサービスおよびクライアントへのポリシーのアタッチを参照してください。

このJWSアノテーションには、属性はありません。

@SecurityPolicy(uri="policy:oracle/wss10_message_protection_client_policy", 
          properties = { 
             @Property(name="keystore.recipient.alias", value="mykey")
          })

weblogic.wsee.jws.jaxws.owsm.SecurityPolicies

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: クラス

@weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesアノテーションの配列を指定します。

このアノテーションは、複数のOWSMセキュリティ・ポリシーをJWSファイルのクラスにアタッチする場合に使用します。OWSMセキュリティ・ポリシーを1つのみアタッチする場合は、@weblogic.wsee.jws.jaxws.owsm.SecurityPolicyアノテーションを使用できます。

このアノテーションの使用の詳細と例は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理アノテーションを使用したJava EE Webサービスおよびクライアントへのポリシーのアタッチを参照してください。

このJWSアノテーションには、属性はありません。

@SecurityPolicies({
    @SecurityPolicy(uri="oracle/wss_saml20_token_over_sll_service_policy"),
    @SecurityPolicy(uri="oracle/binding_authorization_permitall_policy")
  })

weblogic.wsee.jws.jaxws.owsm.SecurityPolicy

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: クラス

OWSMセキュリティ・ポリシー・ファイルをWebサービスまたはクライアントにアタッチします。

このアノテーションを単独で使用すると、単一のOWSMセキュリティ・ポリシーをクラスに適用できます。複数のOWSMセキュリティ・ポリシーをクラスにアタッチする場合は、@weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesアノテーションを使用し、OWSMセキュリティ・ポリシーをまとめてアタッチします。

このアノテーションの使用の詳細と例は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理アノテーションを使用したJava EE Webサービスおよびクライアントへのポリシーのアタッチを参照してください。

属性

表3-8 weblogic.wsee.jws.jaxws.owsm.SecurityPolicy JWSアノテーション・タグの属性

名前 説明 データ型 必須?

uri

OWSMセキュリティ・ポリシーの名前を指定します。

OWSMポリシーがOWSMポリシー・リポジトリにパッケージ化されていることを指定する場合は、次の例のようにpolicy:接頭辞を使用します。

@SecurityPolicy(uri="policy:oracle/wss_saml20_token_over_ssl_service_policy")

OWSMリポジトリの詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理OWSMリポジトリの管理を参照してください。

String

はい

properties

ノート: この属性は、Webサービス・クライアントに対してのみ指定できます。Webサービス(サーバー側)のポリシー・アタッチメントについては、この属性はサポートされていません。

ポリシー構成オーバーライド情報を指定します。「weblogic.wsee.jws.jaxws.owsm.Property」で説明されているように、weblogic.wsee.jws.jaxws.owsm.Propertyアノテーションを使用して1つ以上の構成プロパティ値を指定します

String

いいえ

enabled

OWSMポリシー・ファイルが有効かどうかを指定します。

有効な値は、trueおよびfalseです。デフォルト値はtrueです。

ブール

いいえ

次の例では、wss_saml20_token_over_ssl_service_policyをWebサービスにアタッチする方法を示します。

@SecurityPolicy(uri="policy:oracle/wss_saml20_token_over_ssl_service_policy", 
          enabled=true)

次の例では、wss10_message_protection_client_policyをWebサービス・クライアントにアタッチしてkeystore.recipient.alias構成プロパティをオーバーライドする方法を示します。

@SecurityPolicy(uri="policy:oracle/wss10_message_protection_client_policy", 
          properties = { 
             @Property(name="keystore.recipient.alias", value="mykey")
          },
          enabled=true)

weblogic.wsee.jws.jaxws.owsm.SecurityPolicies

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: クラス、メソッド

@weblogic.wsee.jws.jaxws.owsm.SecurityPolicyアノテーションの配列を指定します。

このアノテーションは、複数のOracle Web Services Manager (Oracle WSM) WS-PolicyファイルをJWSファイルのクラスまたはメソッドにアタッチする場合に使用します。アタッチするOracle WSM WS-Policyファイルが1つのみの場合は、@weblogic.wsee.jws.jaxws.owsm.SecurityPolicyを単独で使用できます。

このアノテーションの使用の詳細および例は、Oracle WebLogic Server WebLogic Webサービスの保護Oracle Webサービス・セキュリティ・ポリシーの使用を参照してください。

このJWSアノテーションには、属性はありません。

@SecurityPolicies({
    @SecurityPolicy(uri="policy:firstPolicy.xml"),
    @SecurityPolicy(uri="policy:secondPolicy.xml")
  })

weblogic.wsee.jws.jaxws.owsm.SecurityPolicy

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: クラス、メソッド

デジタル署名または暗号化に関する情報を格納しているOracle Web Services Manager (Oracle WSM) WS-PolicyファイルをリクエストまたはレスポンスSOAPメッセージに適用するように指定します。

このアノテーションを単独で使用すると、単一のOracle WSM WS-Policyファイルをクラスまたはメソッドに適用できます。複数のOracle WSM WS-Policyファイルをクラスまたはメソッドに適用する場合は、@weblogic.wsee.jws.jaxws.owms.SecurityPoliciesアノテーションを使用し、Oracle WSM WS-Policyファイルをまとめて適用します。

このアノテーションをクラス・レベルでのみ指定すると、Oracle WSM WS-Policyファイル(1つまたは複数)はWebサービスのあらゆるパブリック操作に適用されていることを示します。

Oracle WSM WS-SecurityポリシーはWebLogic Server JAX-WS WebサービスのWSDLに公開されません。(通常、Webサービスに関連付けられたポリシー・ファイルはそのWSDLにアタッチされます。Webサービス・クライアント・ランタイムはこれを読み取り、クライアント・アプリケーションから呼び出された操作からのSOAPメッセージ・リクエストのデジタル署名やデジタル暗号化を行うかどうかを判別したり、行う場合はその方法を判別したりします。)

このアノテーションの使用の詳細および例は、Oracle WebLogic Server WebLogic Webサービスの保護Oracle Webサービス・セキュリティ・ポリシーの使用を参照してください。

属性

表3-9 weblogic.jws.SecurityPolicy JWSアノテーション・タグ属性

名前 説明 データ型 必須?
uri

Oracle WSM WS-Policyファイルを取得する場所を指定します。

Web上のOracle WSM WS-PolicyファイルのURLを指定するには、http:接頭辞を使用します。

Oracle WSM WS-PolicyファイルがWebLogic ServerのWebサービス・アーカイブ・ファイルまたは共有可能なJakarta EEライブラリにパッケージ化されていることを指定する場合は、次の例のようにpolicy:接頭辞を使用します:

@SecurityPolicy(uri= "policy:oracle/wss10_username_token_with_message_protection_server_policy")

String

はい

@SecurityPolicy(uri=
"policy:oracle/wss10_username_token_with_message_protection_server_policy")

weblogic.wsee.wstx.wsat.Transactional

以降の項では、アノテーションを詳細に説明します。

説明

ターゲット: クラス、メソッド

アノテーション付きのクラスまたはメソッドをWebサービス原子性トランザクション内で実行するかどうかを指定します。

Webサービス・クラス・レベルで@Transactionalアノテーションを指定すると、サービス・エンドポイント・インタフェースで定義されたすべての双方向同期メソッドに設定が適用されます。フロー・タイプの値はメソッド・レベルでオーバーライドできますが、バージョンはトランザクション全体で一致している必要があります。

WebLogic Webサービスでは、次の仕様をサポートすることで、WebSphere、JBoss、Microsoft .NETなどの外部トランザクション処理システムとの相互運用性を実現しています。

属性

表3-10 weblogic.wsee.wstx.wsat.Transactionalアノテーションの属性

名前 説明 データ型 必須?

version

Webサービスおよびクライアントに対して使用されるWebサービス原子性トランザクション調整コンテキストのバージョン。クライアントの場合、アウトバウンド・メッセージに使用されるバージョンのみを指定します。指定した値は、トランザクション全体で一致している必要があります。

有効な値は、WSAT10WSAT11WSAT12およびDEFAULTです。WebサービスのDEFAULT値は、(インバウンド・リクエストで起動された)3つのバージョンすべてです。Webサービス・クライアントのDEFAULT値はWSAT10です。

たとえば:

@Transactional(version=Transactional.Version.WSAT10])

String

いいえ

value

Webサービス原子性トランザクション調整コンテキストがトランザクション・フローとともに渡されるかどうか。有効な値は、表3-11を参照してください。

String

いいえ

次の表は、フロー・タイプの有効な値と、Webサービスおよびクライアントでのそれらの意味をまとめたものです。この表では、@TransactionAttributeアノテーションを使用するEJB型のWebサービスに対してWebサービス原子性トランザクションを構成する際の有効な値の組合せも示しています。

表3-11 フロー・タイプの値

Webサービス・クライアント Webサービス EJB @TransactionAttributeの有効な値

NEVER

トランザクション調整コンテキストをエクスポートしません。

トランザクション調整コンテキストをインポートしません。

NEVERNOT_SUPPORTEDREQUIREDREQUIRES_NEWSUPPORTS

SUPPORTS (デフォルト)

トランザクションがある場合は、トランザクション調整コンテキストをエクスポートします。

トランザクション調整コンテストがメッセージに存在する場合は、それをインポートします。

REQUIREDSUPPORTS

MANDATORY

トランザクション調整コンテキストをエクスポートします。アクティブなトランザクションがない場合は、例外がスローされます。

トランザクション調整コンテキストをインポートします。アクティブなトランザクションがない場合は、例外がスローされます。

MANDATORYREQUIREDSUPPORTS

@Transactional(value = Transactional.TransactionFlowType.SUPPORTS,
     version="Transactional.Versino.WSAT12