Our main wsdl has a series of wsdl imports. Each sub-wsdl imports common.xsd and defines the request and reply objects for a particular operation.
I want the request objects in each of the sub-wsdl documents to implement a common interface.
First, I tried using xsd:extension and extracted the common elements to a base class. This works, but changes the publicly exposed wsdl and I don't want to do that. It has been stable and unchanged for a while now. This change should be completely transparent to consumers of the web services.
So I should be able to use
com.acme.foo.MyInterface
But this requires requires running jaxb w/ "-Xinheritance" and I can't seem to figure out how to do that in my maven build. I'm using org.apache.cxf:cxf-codegen-plugin:wsdl2java to generate Java source from wsdl.
Do I need to extract the schema(s) from the wsdl to xsds and generate the Java sources directly with JAXB?
Are there any other options?
Thanks.
解决方案
Check this link. You'll need to do something like:
org.apache.cxf
cxf-codegen-plugin
generate-sources
generate-sources
wsdl2java
${basedir}/src/main/wsdl/CustomerService.wsdl
${basedir}/src/main/wsdl/binding.xml
${basedir}/src/main/wsdl/binding.xjb
-xjc-Xinheritance
org.jvnet.jaxb2_commons
jaxb2-basics