得到的Jboss 7使用自定义自上而下您选择的WSDL定义,而不在Jboss4(第一WSDL),具有CXF生成WSDL

问题描述:

我们正在自上而下WS到jboss7并正与CXF一些困难。我注意到,大WSDL文件位于 独立\ DATA \ WSDL \ x.ear \ x.war \ x.wsdl 不产生在提供的XSD集,它似乎会产生落班。例如我们从Jboss4中定义读取(混淆)得到的Jboss 7使用自定义自上而下您选择的WSDL定义,而不在Jboss4(第一WSDL),具有CXF生成WSDL

<element name="x"> 
<complexType> 
<sequence> 
<element minOccurs="0" name="x" type="x"/> 
<choice> 
<element name="x" type="x"/> 
<element name="x" type="x"/> 
<element name="x" type="x"/> 
<element name="x" type="x"/> 
<element name="x" type="x"/> 
</choice> 
</sequence> 
</complexType> 
</element> 

和由CXF生成的一个具有一个minOccurs = 0,对于我们的实际使用完全无效全部换成coice元件。

<xs:element name="x"> 
<xs:complexType> 
<xs:sequence> 
<xs:element minOccurs="0" name="x" type="xs:string"/> 
<xs:element minOccurs="0" name="x" type="ns1:x"/> 
<xs:element minOccurs="0" name="x" type="ns1:x"/> 
<xs:element minOccurs="0" name="x" type="ns1:x"/> 
<xs:element minOccurs="0" name="x" type="ns1:x"/> 
<xs:element minOccurs="0" name="x" type="ns1:x"/> 
</xs:sequence> 
</xs:complexType> 
</xs:element> 

这是因为wsconsume构建我们的Java类和诠释得很好,足以通过CXF进行分析,而不是不够好,实际存在的复合类型的初步意向,所以经过多次寻找,你怎么弄的Jboss 7使用您选择的WSDL定义,而无需CXF生成wsdl?我们不会用Spring来做到这一点,所以...讨论!

所以@WebService注解中的铅wsdlLocation设置在这里描述的错误

http://mail-archives.apache.org/mod_mbox/cxf-users/200806.mbox/%[email protected]%3E

所以阅读它

方向开启后更简单的方式列出有两种选择:

1)将FooDocumentImpl类的@WebService注释更新为 具有与中的值匹配的serviceName/portName属性wsdl。

2)更新元素在你的配置添加 的QNames服务名和端口名。

第一个是如果你不使用Spring,所以后明确将@WebService标注到:

@WebService(endpointInterface = "main.package.InterfaceWS", serviceName = "InterfaceWSService", name = "InterfaceWS", targetNamespace = "http://Interface.namespace.main", wsdlLocation = "WEB-INF/wsdl/InterfaceWS.wsdl" ,portName="InterfaceWSPort") 

以匹配InterfaceWS.wsdl服务描述:

<service name="InterfaceWSService"> 
        <port binding="tns:InterfaceWSSOAPBinding" name="InterfaceWSPort"> 
           <soap:address location="http://localhost:8080/publishedLocationOfInterface /> 
        </port> 
</service> 

它像魅力一样工作