tôi có các loại dữ liệu sau đây được định nghĩa trong một wsdl:thay đổi gói tạo ra lớp jaxb
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="myService" targetNamespace="http://example.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://example.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="example.com" targetNamespace="example.com" version="1.0">
<xs:simpleType name="MyEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="one"/>
<xs:enumeration value="two"/>
</xs:restriction>
</xs:simpleType>
<!-- SNIP other data types -->
</xs:schema>
</wsdl:types>
</wsdl:definitions>
Tôi muốn MyEnum rơi vào gói riêng của mình. Vì vậy, tôi đã sử dụng một jaxws tập ràng buộc, và đã qua sử dụng XPath để đi qua các lược đồ và jaxb bindings để thiết lập các gói như sau:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxws:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://java.sun.com/xml/ns/jaxws">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='example.com']">
<jxb:schemaBindings>
<jxb:package name="abra.ca.dabra" /> <!-- this works, and changes package of all classes in the namespace-->
</jxb:schemaBindings>
<jxb:bindings node="//xs:simpleType[@name='MyEnum']">
<jxb:package name="a.b.c"/> <!-- this does not work -->
</jxb:bindings>
</jaxws:bindings>
<!-- SNIP - other functional jaxws bindings -->
</jaxws:bindings>
Bây giờ, con đường thiết lập trong schemaBindings mất - và đặt tất cả các loại dữ liệu từ schema/targetnamespace vào gói abra.ca.dabra. Tuy nhiên, tôi dường như không thể đặt gói của MyEnum - đó là những gì tôi muốn.
Tôi sử dụng wsdl2java của cxf để cung cấp tệp liên kết. Tui bỏ lỡ điều gì vậy?
tôi gặp phải cùng vấn đề. Bạn đã giải quyết của bạn? – Rudy
Tệp ràng buộc không đúng: tiền tố không gian tên 'jaxws' không bị ràng buộc với bất kỳ không gian tên nào. – whaefelinger
Tương tự, tiền tố 'xs' không bị ràng buộc. – whaefelinger