服务器:JBoss 7.1 Java:7(JAX-WS版本:2.2.4-b01)
练习1:
@Name("CustomerServices")
@Stateless
@WebService
public class CustomerServices{ ... }
练习2:
@Name("CustomerServices")
@Stateless
@WebService(servicename="CustomerServices")
public class CustomerServices { ... }
当JBOSS通过JAX-WS生成wsdl文件时,wsdl看起来像:
练习1:
<wsdl:definitions>
...
<wsdl:service name="CustomerServicesService">
<wsdl:port binding="tns:CustomerServicesServiceSoapBinding">
<soap:address location="<host>:<port>/<ejb-context>/CustomerServices"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
练习2:
<wsdl:definitions>
...
<wsdl:service name="CustomerServices">
<wsdl:port binding="tns:CustomerServicesServiceSoapBinding">
<soap:address location="<host>:<port>/<ejb-context>/CustomerServicesService/CustomerServicesService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
所以我的问题是,如何获得此输出?
<wsdl:definitions>
...
<wsdl:service name="CustomerServices">
<wsdl:port binding="tns:CustomerServicesServiceSoapBinding">
<soap:address location="<host>:<port>/<ejb-context>/CustomerServices"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
服务名称必须为 CustomerServices ,而不是CustomerServicesService,且地址位置必须为 ../ CustomerServices
感谢。
答案 0 :(得分:2)
尝试:
@WebContext(contextRoot = "<ejb-context>", urlPattern = "/CustomerServices")
您还可以使用以下命令将portType设置为其他内容(即:<wsdl:portType name="MyCustomerServices">
这将是生成客户端时端口接口的名称):
@WebService(name = "MyCustomerServices", serviceName = "CustomerServices")