如何解决javax.xml.ws.WebServiceException "X 不是有效端口有效端口为:Y
我正在尝试使用我的 WSDL SOAP 服务:
public void batchReg(String[][] records){
URL url = null;
try {
url = new URL("http://localhost:8080/EndUserService/?wsdl");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (url == null) {
System.out.println("Failed");
}
QName qname = new QName("http://EndUserService/","EndUserServiceImplService");
Service service = Service.create(url,qname);
EndUserService obj = service.getPort(qname,EndUserService.class);
obj.register(records);
System.out.println("Complete!");
}
然而,当我运行这个时,我收到这个错误:
Exception in thread "main" javax.xml.ws.WebServiceException: {http://EndUserService/}EndUserServiceImplService is not a valid port. Valid ports are: {http://EndUserService/}EndUserServiceImplPort
然后我将 QName 声明更改为:
QName qname = new QName("http://EndUserService/","EndUserServiceImplPort");
但后来我收到此错误:
Exception in thread "main" javax.xml.ws.WebServiceException: {http://EndUserService/}EndUserServiceImplPort is not a valid service. Valid services are: {http://EndUserService/}EndUserServiceImplService
这是我之前所拥有的。
WSDL 摘录
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://EndUserService/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://EndUserService/" name="EndUserServiceImplService">
<types>
<xsd:schema>
<xsd:import namespace="http://jaxb.dev.java.net/array" schemaLocation="http://localhost:8080/EndUserService/?xsd=1"/>
</xsd:schema>
<xsd:schema>
<xsd:import namespace="http://EndUserService/" schemaLocation="http://localhost:8080/EndUserService/?xsd=2"/>
</xsd:schema>
</types>
解决方法
必须添加一个特定的端口 QName
public void batchReg(String[][] records){
URL url = null;
try {
url = new URL("http://localhost:8080/EndUserService/?wsdl");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (url == null) {
System.out.println("Failed");
}
QName qname = new QName("http://EndUserService/","EndUserServiceImplService");
System.out.println(url);
Service service = Service.create(url,qname);
QName qport = new QName("http://EndUserService/","EndUserServiceImplPort");
EndUserService obj = service.getPort( qport,EndUserService.class );
obj.register(records);
System.out.println("Complete!");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。