元素在 WSDL 中具有相同的名称和不同的类型
Element has the same name with different types in WSDL
我得到了 WSDL 和架构文件。我正在使用这些文件在 Java 中创建存根。但是我在生成错误时遇到了错误(如下)。我知道问题是什么我只是不知道如何解决它。我明白问题是有时 PayLoadLength 有时是字符串或整数
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
或
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
架构文件(您可以看到 PayloadLength 的文件部分,它是一个整数或字符串:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>-->
<xs:schema version="1.0" targetNamespace="xxxxxx" xmlns:tns="xxxxxxxxxx" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ABCBatchResultsAckSubmission" type="tns:ABCBatchResultsAckSubmission"/>
<xs:element name="ABCBatchResultsAckSubmissionResponse" type="tns:ABCBatchResultsAckSubmissionResponse"/>
<xs:element name="ABCBatchResultsRetrievalRequest" type="tns:ABCBatchResultsRetrievalRequest"/>
<xs:element name="ABCBatchResultsRetrievalRequestResponse" type="tns:ABCBatchResultsRetrievalRequestResponse"/>
<xs:element name="ABCBatchSubmission" type="tns:ABCBatchSubmission"/>
<xs:element name="ABCBatchSubmissionAckRetrievalRequest" type="tns:ABCBatchSubmissionAckRetrievalRequest"/>
<xs:element name="ABCBatchSubmissionAckRetrievalRequestResponse" type="tns:ABCBatchSubmissionAckRetrievalRequestResponse"/>
<xs:element name="ABCBatchSubmissionResponse" type="tns:ABCBatchSubmissionResponse"/>
<xs:complexType name="ABCBatchSubmissionAckRetrievalRequest">
<xs:sequence>
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchSubmissionAckRetrievalRequestResponse">
<xs:sequence>
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchSubmission">
<xs:sequence>
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchSubmissionResponse">
<xs:sequence>
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchResultsRetrievalRequest">
<xs:sequence>
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchResultsRetrievalRequestResponse">
<xs:sequence>
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchResultsAckSubmission">
<xs:sequence>
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchResultsAckSubmissionResponse">
<xs:sequence>
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
所以我知道我需要创建一个 JAXB 绑定文件来解决问题。我很确定这是错误的(下)。但我认为我需要以 PayLoadLength 为目标并将其名称更改为其他名称。 对吗?
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/CORETransactionService.wsdl</wsdl>
<wsdlLocation>classpath:wsdl/CORETransactionService.wsdl</wsdlLocation>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
错误:
Execution generate-sources of goal org.apache.cxf:cxf-codegen-plugin:3.2.1:wsdl2java failed: Element PayloadLength has the same name with different types[{http://www.w3.org/2001/XMLSchema}string -- {http://
www.w3.org/2001/XMLSchema}int]. This will cause a collision in wrapper style as per the spec. (org.apache.cxf:cxf-codegen-plugin:3.2.1:wsdl2java:generate-sources:generate-sources)
org.apache.maven.plugin.PluginExecutionException: Execution generate-sources of goal org.apache.cxf:cxf-codegen-plugin:3.2.1:wsdl2java failed: Element PayloadLength has the same name with different types[{http://
www.w3.org/2001/XMLSchema}string -- {http://www.w3.org/2001/XMLSchema}int]. This will cause a collision in wrapper style as per the spec. at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145) at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:331) at
org.eclipse.m2e.core.internal.embedder.MavenImpl.call(MavenImpl.java:1362) at org.eclipse.m2e.core.internal.embedder.MavenImpl.call(MavenImpl.java:1) at
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:
112) at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1360) at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:52) at
org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:137) at org.eclipse.m2e.core.internal.builder.MavenBuilder.method(MavenBuilder.java:172) at
org.eclipse.m2e.core.internal.builder.MavenBuilder.method(MavenBuilder.java:1) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.call(MavenBuilder.java:115) at
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:
112) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.call(MavenBuilder.java:105) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177)
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99)
at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:86) at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:200) at
org.eclipse.core.internal.events.BuildManager.run(BuildManager.java:735) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:
206) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246) at org.eclipse.core.internal.events.BuildManager.run(BuildManager.java:301) at
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:304) at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:360) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:383) at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:142) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:232) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: org.apache.cxf.tools.common.ToolException: Element PayloadLength has the same name with different types[{http://www.w3.org/2001/XMLSchema}string -- {http://www.w3.org/2001/XMLSchema}int]. This
will cause a collision in wrapper style as per the spec. at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.validate(WSDLToJavaContainer.java:735) at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:276) at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:164) at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:412) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:105) at
org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113) at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86) at
org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.generate(WSDL2JavaMojo.java:414) at org.apache.cxf.maven_plugin.AbstractCodegenMoho.execute(AbstractCodegenMoho.java:279) at
org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:511) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) ... 31 more
经过相当广泛的分析,问题似乎出在所谓的 "wrapper style" 中。引用 WSDL To Java:
Note: The meaning of "wrapper-style" and "non-wrapper style" as defined in the JAX-WS 2.1 specification can be counterintuitive. Wrapper-style indicates that each data element within the request message gets its own Java parameter, while non-wrapper style means that a single Java object containing all the data elements serves as the lone parameter to the web service method call.
所以基本上问题是,如果您在请求和响应类型中有一些同名的子元素,它们基本上会映射到一个参数。如果它们有不同的类型,这会导致冲突并且 CXF 拒绝它们。
解决此问题的一种方法是禁用包装样式。您可以使用 binding.xml
文件执行此操作,例如:
<jaxws:bindings node="wsdl:definitions" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
</jaxws:bindings>
将其包含在 cxf-codegen-plugin
的配置中:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/My.wsdl</wsdl>
<wsdlLocation>classpath:wsdl/My.wsdl</wsdlLocation>
<bindingFiles>
<bindingFile>${basedir}/src/main/resources/bindings.xml</bindingFile>
</bindingFiles>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
还有可能另外一种方式,至少错误信息,至少错误信息提示应该可以"use a JAXWS/JAXB binding customization to rename the parameter"。不幸的是,我无法找出正确的绑定语法。
我得到了 WSDL 和架构文件。我正在使用这些文件在 Java 中创建存根。但是我在生成错误时遇到了错误(如下)。我知道问题是什么我只是不知道如何解决它。我明白问题是有时 PayLoadLength 有时是字符串或整数
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
或
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
架构文件(您可以看到 PayloadLength 的文件部分,它是一个整数或字符串:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>-->
<xs:schema version="1.0" targetNamespace="xxxxxx" xmlns:tns="xxxxxxxxxx" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ABCBatchResultsAckSubmission" type="tns:ABCBatchResultsAckSubmission"/>
<xs:element name="ABCBatchResultsAckSubmissionResponse" type="tns:ABCBatchResultsAckSubmissionResponse"/>
<xs:element name="ABCBatchResultsRetrievalRequest" type="tns:ABCBatchResultsRetrievalRequest"/>
<xs:element name="ABCBatchResultsRetrievalRequestResponse" type="tns:ABCBatchResultsRetrievalRequestResponse"/>
<xs:element name="ABCBatchSubmission" type="tns:ABCBatchSubmission"/>
<xs:element name="ABCBatchSubmissionAckRetrievalRequest" type="tns:ABCBatchSubmissionAckRetrievalRequest"/>
<xs:element name="ABCBatchSubmissionAckRetrievalRequestResponse" type="tns:ABCBatchSubmissionAckRetrievalRequestResponse"/>
<xs:element name="ABCBatchSubmissionResponse" type="tns:ABCBatchSubmissionResponse"/>
<xs:complexType name="ABCBatchSubmissionAckRetrievalRequest">
<xs:sequence>
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchSubmissionAckRetrievalRequestResponse">
<xs:sequence>
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchSubmission">
<xs:sequence>
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchSubmissionResponse">
<xs:sequence>
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchResultsRetrievalRequest">
<xs:sequence>
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchResultsRetrievalRequestResponse">
<xs:sequence>
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchResultsAckSubmission">
<xs:sequence>
<xs:element name="PayloadLength" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ABCBatchResultsAckSubmissionResponse">
<xs:sequence>
<xs:element name="PayloadLength" maxOccurs="1" minOccurs="0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
所以我知道我需要创建一个 JAXB 绑定文件来解决问题。我很确定这是错误的(下)。但我认为我需要以 PayLoadLength 为目标并将其名称更改为其他名称。 对吗?
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/CORETransactionService.wsdl</wsdl>
<wsdlLocation>classpath:wsdl/CORETransactionService.wsdl</wsdlLocation>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
错误:
Execution generate-sources of goal org.apache.cxf:cxf-codegen-plugin:3.2.1:wsdl2java failed: Element PayloadLength has the same name with different types[{http://www.w3.org/2001/XMLSchema}string -- {http://
www.w3.org/2001/XMLSchema}int]. This will cause a collision in wrapper style as per the spec. (org.apache.cxf:cxf-codegen-plugin:3.2.1:wsdl2java:generate-sources:generate-sources)
org.apache.maven.plugin.PluginExecutionException: Execution generate-sources of goal org.apache.cxf:cxf-codegen-plugin:3.2.1:wsdl2java failed: Element PayloadLength has the same name with different types[{http://
www.w3.org/2001/XMLSchema}string -- {http://www.w3.org/2001/XMLSchema}int]. This will cause a collision in wrapper style as per the spec. at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145) at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:331) at
org.eclipse.m2e.core.internal.embedder.MavenImpl.call(MavenImpl.java:1362) at org.eclipse.m2e.core.internal.embedder.MavenImpl.call(MavenImpl.java:1) at
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:
112) at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1360) at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:52) at
org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:137) at org.eclipse.m2e.core.internal.builder.MavenBuilder.method(MavenBuilder.java:172) at
org.eclipse.m2e.core.internal.builder.MavenBuilder.method(MavenBuilder.java:1) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.call(MavenBuilder.java:115) at
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:
112) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.call(MavenBuilder.java:105) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177)
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99)
at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:86) at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:200) at
org.eclipse.core.internal.events.BuildManager.run(BuildManager.java:735) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:
206) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246) at org.eclipse.core.internal.events.BuildManager.run(BuildManager.java:301) at
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:304) at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:360) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:383) at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:142) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:232) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: org.apache.cxf.tools.common.ToolException: Element PayloadLength has the same name with different types[{http://www.w3.org/2001/XMLSchema}string -- {http://www.w3.org/2001/XMLSchema}int]. This
will cause a collision in wrapper style as per the spec. at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.validate(WSDLToJavaContainer.java:735) at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:276) at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:164) at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:412) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:105) at
org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113) at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86) at
org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.generate(WSDL2JavaMojo.java:414) at org.apache.cxf.maven_plugin.AbstractCodegenMoho.execute(AbstractCodegenMoho.java:279) at
org.apache.cxf.maven_plugin.wsdl2java.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:511) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) ... 31 more
经过相当广泛的分析,问题似乎出在所谓的 "wrapper style" 中。引用 WSDL To Java:
Note: The meaning of "wrapper-style" and "non-wrapper style" as defined in the JAX-WS 2.1 specification can be counterintuitive. Wrapper-style indicates that each data element within the request message gets its own Java parameter, while non-wrapper style means that a single Java object containing all the data elements serves as the lone parameter to the web service method call.
所以基本上问题是,如果您在请求和响应类型中有一些同名的子元素,它们基本上会映射到一个参数。如果它们有不同的类型,这会导致冲突并且 CXF 拒绝它们。
解决此问题的一种方法是禁用包装样式。您可以使用 binding.xml
文件执行此操作,例如:
<jaxws:bindings node="wsdl:definitions" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
</jaxws:bindings>
将其包含在 cxf-codegen-plugin
的配置中:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/My.wsdl</wsdl>
<wsdlLocation>classpath:wsdl/My.wsdl</wsdlLocation>
<bindingFiles>
<bindingFile>${basedir}/src/main/resources/bindings.xml</bindingFile>
</bindingFiles>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
还有可能另外一种方式,至少错误信息,至少错误信息提示应该可以"use a JAXWS/JAXB binding customization to rename the parameter"。不幸的是,我无法找出正确的绑定语法。