JAXB/JAX-WSカスタマイズを使用してこれを達成できます。 XSDタイプがにWSDLに埋め込まれているとします。次に、あなたのカスタマイズが次のようになります。
<jaxws:bindings version="2.0"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
wsdlLocation="../wsdl/some.wsdl">
<jaxws:package name="org.company.project.ws" />
<!-- XSD types customization within WSDL -->
<jaxb:bindings node="//xsd:schema">
<jaxb:schemaBindings>
<jaxb:package name="org.company.project.beans" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxws:bindings>
上記の構成は、次のプロジェクトのディレクトリ構造を参照する:あなたはorg.codehaus.mojo:jaxws-maven-plugin
プラグインを使用する場合は、<bindingDirectory>binding</bindingDirectory>
を指定する
+-- binding
| +-- jaxws-binding.xml
+-- wsdl
| +-- some.wsdl
+-- src
...
必要です。
あなたのXSDはWSDLの外部にある場合は、その後、あなたが個別にカスタマイズを指定する必要があります。
+-- binding
| +-- jaxb-binding.xml
| +-- jaxws-binding.xml
+-- wsdl
...
その後jaxb-binding.xml
は、次のようになります。Antのビルドについて
<jaxb:bindings version="1.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jaxb:bindings schemaLocation="my.xsd" node="//xsd:schema">
<jaxb:schemaBindings>
<jaxb:package name="org.company.project.beans" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
- あなたは、単に2を生成しますさまざまなパッケージの瓶。私は個人的にあなたが
project-beans
プロジェクトでXSDからJAXBクラスを生成し、project-ws
プロジェクト削除にwsimportの後JAXBクラスを生成するための最も簡単な解決策は以下のようになり、その後:) 1つのMavenプロジェクトから2つのJARアーティファクトを作成する方法を知らないので
- (あなたはそれのためのantのプラグインを使用することができます)実行します。
私は思うが(これは間違っているかもしれませんが)両方のオプションが可能ではありません.JAXBの生成は、生成されるためにはさまざまなスタブに依存しているのでスキップすることはできません。別のディレクトリは、すべてのインポートのためのオプションではありません。私の最高の推測は、あなたがthis.But私は間違っている可能性があります自分自身(手動)コードをリファクタリングする必要があるということです。誰かがこれを確かに知っているかどうかを見てみましょう – Cratylus
あなたのIDEは何ですか? –
@ChrisAldrichこのプロジェクトにはIBM RAD 7.5.5を使用しています – PrasadB