我正在使用CXF创建契约第一的CXF服务类。我有一个wsdl,它包含导入的xsd负载。这些xsd都在我的Java项目中的一个包中。
我已经创建了一个XJB文件,它完成了我想要的工作,但是如果我想要拥有大量的xsd,它占用了太多的代码来维护。如有任何解决办法,将不胜感激。
XJB:
<jaxb:bindings schemaLocation="wsdl-xsd/contacts_input.xsd#REQUESTType"
node="/xs:schema">
<jaxb:bindings node="//xs:complexType[@name='REQUESTType']">
<annox:annotate target="class">
<annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement"
name="REQUESTType" />
</annox:annotate>
</jaxb:bindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="wsdl-xsd/contacts_output.xsd#RESPONSEType"
node="/xs:schema">
<jaxb:bindings node="//xs:complexType[@name='RESPONSEType']">
<annox:annotate target="class">
<annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement"
name="RESPONSEType" />
</annox:annotate>
</jaxb:bindings>
</jaxb:bindings>WSDL:
<!-- Contact Services -->
<xsd:import namespace="http://contacts_request.global_test.ws.test.com" schemaLocation="contacts_input.xsd"/>
<xsd:import namespace="http://contacts_response.global_test.ws.test.com" schemaLocation="contacts_output.xsd"/>发布于 2016-02-04 13:45:59
最后,我通过使用简单的绑定解决了这个问题,这个绑定为我的复杂元素提供了@XMLROOTELEMENT注释。我决定让匿名根元素具有复杂类型的请求/响应类型。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
jaxb:version="2.0" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc">
<jaxb:globalBindings optionalProperty="wrapper">
<xjc:simple />
</jaxb:globalBindings>
https://stackoverflow.com/questions/34930044
复制相似问题