我试图使用globalBindings元素向我的WSDL存根类添加可序列化的+默认UID,这样我就可以消除来自Eclipse的一系列恼人的警告。
我试图遵循this answer中的建议,但没有运气。仍然会得到Eclipse中的所有警告。
我是不是在pom文件里遗漏了什么?
我可以升级到一个更新版本的jaxws插件,甚至移动到不同的插件,如果需要。
这是我的绑定文件:
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<globalBindings>
<xjc:serializable uid="1" />
</globalBindings>
<bindings
schemaLocation="../resources/com/satorisoftware/ws/infuseiac/intladdresscorrection/intladdresscorrection.wsdl#types?schema3"
version="1.0">
<schemaBindings>
<package name="com.satorisoftware.ws.infuseiac-intladdresscorrection" />
</schemaBindings>
<!-- Tell JAXB to generate Java class specifically named CorrectRequestElement
for this element, to avoid the name clash that automatic naming causes. -->
<bindings node="//xsd:element[@name='CorrectRequest']">
<class name="CorrectRequestElement" />
</bindings>
</bindings>
</bindings>下面是我的pom.xml文件的相关部分:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>import-iac-wsdl</id>
<phase>generate-sources</phase>
<goals>
<goal>wsimport</goal>
</goals>
<inherited>false</inherited>
<configuration>
<packageName>com.satorisoftware.ws.infuseiac.intladdresscorrection</packageName>
<wsdlLocation>com/satorisoftware/ws/infuseiac/intladdresscorrection/intladdresscorrection.wsdl</wsdlLocation>
<staleFile>${project.build.directory}/jaxws/stale/wsdl.intladdresscorrection.done</staleFile>
<sourceDestDir>${project.build.directory}/generated/jaxws-infuseiac-intladdresscorrection</sourceDestDir>
<wsdlDirectory>src/main/resources/com/satorisoftware/ws/infuseiac/intladdresscorrection</wsdlDirectory>
<bindingFiles>
<!-- See http://www.jroller.com/gmazza/entry/enhancing_jaxb_artifacts#BindingFile
for an end-to-end-example of doing bindings files for WSDL files. -->
<bindingFile>${basedir}/src/main/bindings/bindings-intladdresscorrection.xjb</bindingFile>
</bindingFiles>
<!-- <wsdlUrls> <value>https://infuseiac.satorisoftware.com/wsdl/IntlAddressCorrection.2012.12.wsdl</value>
</wsdlUrls> -->
<!-- Generate JAX-WS 2.0 compatible stubs -->
<target>2.0</target>
</configuration>
</execution>
</executions>
</plugin>下面是一个没有UID的生成类的示例
package com.satorisoftware.ws.infuseiac.intladdresscorrection;
import javax.xml.ws.WebFault;
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.1.7-b01-
* Generated source version: 2.0
*
*/
@WebFault(name = "DuplicateFieldFaultContract", targetNamespace = "infuse.satorisoftware.com/2012/08")
public class IntlAddressCorrectionCorrectDuplicateFieldFaultContractOfInfuseSingleFieldFaultFaultMessage
extends Exception
{
/**
* Java type that goes as soapenv:Fault detail element.
*
*/
private DuplicateFieldFaultContract faultInfo;
/**
*
* @param message
* @param faultInfo
*/
public IntlAddressCorrectionCorrectDuplicateFieldFaultContractOfInfuseSingleFieldFaultFaultMessage(String message, DuplicateFieldFaultContract faultInfo) {
super(message);
this.faultInfo = faultInfo;
}
/**
*
* @param message
* @param faultInfo
* @param cause
*/
public IntlAddressCorrectionCorrectDuplicateFieldFaultContractOfInfuseSingleFieldFaultFaultMessage(String message, DuplicateFieldFaultContract faultInfo, Throwable cause) {
super(message, cause);
this.faultInfo = faultInfo;
}
/**
*
* @return
* returns fault bean: com.satorisoftware.ws.infuseiac.intladdresscorrection.DuplicateFieldFaultContract
*/
public DuplicateFieldFaultContract getFaultInfo() {
return faultInfo;
}
}下面是一些WSDL请求:
<xsd:complexType name="DuplicateFieldFaultContract">
<xsd:annotation>
<xsd:appinfo>
<GenericType xmlns="http://schemas.microsoft.com/2003/10/Serialization/"
Name="DuplicateFieldFaultContract" Namespace="infuse.satorisoftware.com/2012/08">
<GenericParameter Name="InfuseField"
Namespace="http://schemas.datacontract.org/2004/07/Satori.Infuse.Single" />
</GenericType>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent mixed="false">
<xsd:extension base="tns:InfuseFaultContract">
<xsd:sequence>
<xsd:element
xmlns:q4="http://schemas.datacontract.org/2004/07/Satori.Infuse.Single"
name="DuplicateFields" nillable="true" type="q4:ArrayOfInfuseField" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="DuplicateFieldFaultContract" nillable="true"
type="tns:DuplicateFieldFaultContract" />发布于 2014-04-04 13:24:05
安德斯
这就是我从WSimport的帖子中了解到的
默认情况下,生成的异常类将具有一个wsdl2java。
请试试wsdl2java,希望这能解决你的问题
发布于 2014-04-02 17:35:04
安德烈斯
你没看到这个吗
私人静态最终长serialVersionUID="1L“?
生成的每个类都是可序列化的,并且具有指定的uid:此过程的一个限制是生成的每个类都具有相同的uid。
https://stackoverflow.com/questions/22637401
复制相似问题