我需要一个支持jakarta的插件所以我选择了这个“om.yupzip.wsdl2java”。生成的类应该有这样一个包 “com.test.exmaple.mw”但生成了“java.com 测试示例”。
gradle.build:
plugins {
id "java"
id "io.spring.dependency-management" version "1.1.0"
id "com.yupzip.wsdl2java" version "3.0.0"
}
dependencies {
implementation 'org.springframework.ws:spring-ws-support:4.0.0'
// your project dependencies
implementation 'com.sun.xml.bind:jaxb-impl:4.0.1'
implementation 'com.sun.xml.messaging.saaj:saaj-impl:3.0.0'
implementation 'com.sun.xml.ws:jaxws-ri:4.0.0'
implementation 'io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.7'
implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0'
implementation 'jakarta.xml.soap:jakarta.xml.soap-api:3.0.0'
implementation 'jakarta.xml.ws:jakarta.xml.ws-api:4.0.0'
implementation 'org.jvnet.jaxb2_commons:jaxb2-namespace-prefix:2.0'
implementation 'codes.rafael.jaxb2_commons:jaxb2-basics:3.0.0'
implementation 'codes.rafael.jaxb2_commons:jaxb2-basics-runtime:3.0.0'
implementation 'org.apache.cxf.xjc-utils:cxf-xjc-runtime:4.0.0'
implementation 'org.glassfish.jaxb:jaxb-runtime:4.0.1'
}
sourceSets.main.java.srcDirs "src/generated/wsdl2java"
configurations {
wsdl2java
}
dependencies {
wsdl2java (
'com.sun.xml.bind:jaxb-impl:4.0.1',
'org.apache.cxf.xjc-utils:cxf-xjc-runtime:4.0.0',
'jakarta.xml.ws:jakarta.xml.ws-api:4.0.0',
'com.sun.xml.ws:rt:4.0.0',
'org.jvnet.jaxb2_commons:jaxb2-namespace-prefix:2.0',
'codes.rafael.jaxb2_commons:jaxb2-basics-runtime:3.0.0',
'codes.rafael.jaxb2_commons:jaxb2-basics:3.0.0'
)
}
wsdl2java {
wsdlDir = file("$projectDir/src/main/resources/test")
stabilizeAndMergeObjectFactory = true
includeJava8XmlDependencies = false
cxfVersion = "4.0.0"
cxfPluginVersion = "4.0.0"
wsdlsToGenerate = [
['-xjc',
'-xjc-Xnamespace-prefix',
'-b',"$wsdlDir/binding.xml",
'-autoNameResolution',
'-verbose',
"$wsdlDir/example.wsdl",
],
]
generatedWsdlDir = file("src/generated/wsdl2java")
}
绑定.xml:
<?xml version="1.0"?>
<jaxws:bindings
wsdlLocation="example.wsdl"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- https://stackoverflow.com/a/43560882/49489 -->
<jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>
<jaxws:bindings node="xs:schema[@targetNamespace='java:com.test.example.mw']">
<jaxb:schemaBindings>
<jaxb:package name="com.test.example.mw" />
</jaxb:schemaBindings>
</jaxws:bindings>
</jaxws:bindings>
exmaple.wsdl
<s0:definitions xmlns:s0="http://schemas.xmlsoap.org/wsdl/"
xmlns:s2="java:com.test.example.mw"
xmlns:s1="http://com/test/example/security/service"
xmlns:s3="http://schemas.xmlsoap.org/wsdl/soap/"
name="CommonSecurityConfidentialServiceDefinitions"
targetNamespace="http://com/test/example/security/service">
<s0:types>
<xs:schema xmlns:s1="java:com.test.example.mw"
xmlns:s2="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="java:com.test.example.mw" >
<xs:complexType name="MWException">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension xmlns:java="java:com.test.example.mw" base="java:MiddlewareExceptionEx">
<xs:sequence>
<xs:element minOccurs="0" name="ErrorCode" type="xs:string"/>
<xs:element minOccurs="0" name="ErrorCategory" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MiddlewareExceptionEx">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension xmlns:java="java:com.test.example.mw" base="java:MiddlewareException">
<xs:sequence>
<xs:element minOccurs="0" name="Subsystem" type="xs:string"/>
<xs:element minOccurs="0" name="EdifactRequest" type="xs:string"/>
<xs:element minOccurs="0" name="EdifactResponse" type="xs:string"/>
<xs:element minOccurs="0" name="AdditionalInfo" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MiddlewareException">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" name="OriginalExceptionName" type="xs:string"/>
<xs:element minOccurs="0" name="LocalizedMessage" type="xs:string"/>
<xs:element minOccurs="0" name="ErrorType" type="xs:string"/>
<xs:element minOccurs="0" name="ErrorDescription" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="MWExceptionControl">
<xs:complexContent>
<xs:extension xmlns:java="java:com.test.example.mw" base="java:MWException">
<xs:sequence>
<xs:element minOccurs="1" name="UciAction" type="xs:int"/>
<xs:element minOccurs="1" name="UcmAction" type="xs:int"/>
<xs:element minOccurs="1" name="SyntaxError" type="xs:int"/>
<xs:element minOccurs="0" name="UciInterChangeCtrlRef" type="xs:string"/>
<xs:element minOccurs="0" name="UciSenderIdentification" type="xs:string"/>
<xs:element minOccurs="0" name="UciRecipientIdentification" type="xs:string"/>
<xs:element minOccurs="1" name="Origin" type="xs:int"/>
<xs:element minOccurs="1" name="OpenFailed" type="xs:boolean"/>
<xs:element minOccurs="1" name="Inactive" type="xs:boolean"/>
<xs:element minOccurs="1" name="Duplicate" type="xs:boolean"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element xmlns:java="java:com.test.example.mw" name="MWExceptionControl" type="java:MWExceptionControl"/>
<xs:element xmlns:java="java:com.test.example.mw" name="MWException" type="java:MWException"/>
</xs:schema>
</s0:types>
</s0:definitions>
我使用更改名称包 binding.xml 但是这个文件、插件或配置有问题:
'-b',"$wsdlDir/binding.xml"