サーバー上で同じクラスを使用する3つの異なるJAX-WSサービスがあります(たとえば、、、ServiceA
およびServiceB
、ServiceC
すべてがMyCommonClass
パラメーターとして使用されます)。私たちが開発している別のモジュールはwsimport
、これらのサービスのクライアントを作成するために使用していますが、問題は、wsimportがMyCommonClass
サービスごとに個別のインスタンスを作成することです。
com.company.servicea.endpoint.MyCommonClass
com.company.serviceb.endpoint.MyCommonClass
- 等
このオプションを使用してエンドポイントごとに共通のパッケージを指定できることはわかっていwsimport -p
ますが、ほとんどのクラスを別々のパッケージに保持したいのですが、特定の共通のパッケージを共有するだけです。私が読んだことから、JAXBバインディングファイルが役立つかもしれないように思えますが、望ましい結果を達成するための正確な構文はまだわかりません。サービスごとに個別のバインディングファイルが必要になると思います(各サービスに対してwsimportを1回呼び出すため)。これは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.1" xmlns:tns="http://endpoint.servicea.company.com/">
<bindings node="//xsd:complexType[@name='myCommonClass']">
<class name="com.company.model.MyCommonClass"/>
</bindings>
</bindings>
私は正しい方向に進んでいますか?または、問題に対する代替の解決策はありますか?