拡張されたマッピング・ファイル
Oracle SOA Suiteでは、拡張されたマッピング(EXM)ファイルを使用することにより、JAXBおよびOXMファイルのサポートが拡張されています。EXMファイルが設計時プロジェクトのクラスパス内に存在する場合は、そのファイルをJavaからWSDLへの変換に使用できます。EXMファイルには、次の場合のデータ・バインディング・メタデータが用意されています。
-
JAXB注釈をJavaソースに追加できず、個別に指定する必要がある場合
-
シナリオがJAXBの対象外である場合(たとえば、メソッドなど最上位レベル要素がタイプまたはパラメータ・タイプを戻す場合)
外部JAXB注釈は、EXMファイルに直接指定するか、またはEXMファイルから参照可能な個別のTopLink JAXBマッピングOXMファイルに含めることができます。
EXMファイル名はJavaクラス名と一致し、同じパッケージの場所に存在する必要があります。たとえば、Javaクラスの名前がpack1.pack2.myJavaInterface.class
の場合、EXMファイルの名前はpack1/pack2/myJavaInterface.exm
にする必要があります。
Oracle SOA Suiteでは、設計時に、EXMファイルをソース・パス(SCA-INF/src
)またはクラスパス(SCA-INF/classes
、またはSCA-INF/lib
のJAR)のいずれかに配置できます。
EXMファイルをソース・パス(SCA-INF/src
)に配置すると、Oracle JDeveloperを使用してEXMを編集できます(クラスパス内のファイルはOracle JDeveloperの「アプリケーション」ウィンドウに表示されません)。プロジェクトのコンパイルが完了すると、EXMファイル(およびすべてのインポートされたXMLファイル)はデプロイメントのクラス・パス(SCA-INF/classes
)にコピーされます。EXMファイルがソース・パスにある場合にも、対応する同じディレクトリ構造内にある必要があります。
EXM(およびOXM)ファイルをSCA-INF/src
に置く場合は、Oracle JDeveloperプロジェクトが、SCA-INF/src
がデフォルトのソース・ディレクトリになるように構成されていることを確認します(プロジェクト名を右クリックし、「プロジェクト・プロパティ」→「Javaソース・パス」を選択します)。EXMファイルは、プロジェクトのクラス・パスにあるJARファイルにもあります。
Javaインタフェース(Enterprise JavaBeans)をBPELプロセスにドラッグ・アンド・ドロップすると、Oracle SOA SuiteではEXMファイルが存在するかどうかが確認されます。存在する場合は、Webサービスjava2wsdl
APIに渡されます。
WSDLファイルが生成された後、情報メッセージが表示されます。EXMファイルが使用された場合、メッセージは次の書式で表示されます。
The WSDL file {0} was generated based on the JAVA class {1} using extended mapping file {2}
EXMファイルの例を次に示します。
<java-wsdl-mapping name="com.hello.sei.MyServiceEndpointInterface" xmlns="http://xmlns.oracle.com/weblogic/weblogic-wsee-databinding" xmlns:oxm="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" databinding="toplink.jaxb"> <xml-schema-mapping> <toplink-oxm-file java-package="com.hello.foo" file-path="./foo-oxm.xml"/> <toplink-oxm java-package="com.hello.coo"> <xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"> <xml-schema element-form-default="QUALIFIED" attribute-form-default="UNQUALIFIED" namespace="urn:customer"> <xml-ns prefix="ns1" namespace-uri="urn:customer" /> </xml-schema> <java-types> <java-type name="Person" xml-transient="true"> <java-attributes> <xml-transient java-attribute="id"/> </java-attributes> </java-type> <java-type name="Customer"> <xml-see-also>org.example.employee.Employee</xml-see-also> </java-type> </java-types> </xml-bindings> </toplink-oxm> </xml-schema-mapping> . . . </java-wsdl-mapping>
データ・バインディング・フレームワークに対する外部マッピング・メタデータのEXMスキーマ・ファイルは、次のURLから入手できます。
http://www.oracle.com/technology/weblogic/weblogic-wsee-databinding/1.1/weblogic-wsee-databinding.xsd
このデータによって、特定のJava Webサービス・エンドポイントの属性が定義されます。このスキーマでは、次の3タイプのXMLコンストラクトが定義されます。
-
JAX-WSまたはJSR-181に類似したコンストラクト。このコンストラクトは、サービス・エンドポイント・インタフェース(SEI)の属性、およびSEIのインタフェースで使用される値タイプのJAXB注釈をオーバーライドまたは定義します。
-
標準のJAX-WSまたはJAXB通知を使用しては使用できず、主に
java.util.Collections
API.とともに使用する追加のマッピング仕様。 -
Toplink OXMファイルから外部JAXBマッピング・メタデータへの参照。
コンストラクトがJAX-WS、JSR-181またはJAXB注釈に非常に類似している場合、スキーマ内のコメントには、次のような注釈が表示されます。
Corresponding Java annotation: javax.jws.WebParam.Mode