求助,关于webservice客户端调用的奇怪问题

zgh_mnb 2013-12-25 06:18:03
情况是这样的,开发了一个webservice服务端,并用cxf生成客户端,在本地测试调用服务端没有问题,打包发送到测试现场,客户端掉不通了,但能正常访问wsdl,说明服务端正常发布了,错误信息如下:

Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:93)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:203)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
... 49 more
Caused by: javax.wsdl.WSDLException: WSDLException (at /html): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.
at com.ibm.wsdl.xml.WSDLReaderImpl.checkElementName(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:237)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:186)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:91)


客户端调用代码如下:

private String getBaseItemService(String dimName,String orgCode,String userName,String password,String ip){
URL url;
String xml = "";
try {
String urlPath = ip + "/dna_ws/DataHandleServiceImpl?wsdl";
url = new URL(urlPath);
DataHandleServiceImpl service = new DataHandleServiceImpl(url);
IDataHandleService iservice = service.getDataHandleServiceImplPort();
xml = iservice.getBaseDataItemsByCode(orgCode,userName,password,dimName.toUpperCase());
} catch (MalformedURLException e) {
xml = e.getMessage();
e.printStackTrace();
}
return xml;
}


关于“ WSDLException (at /html): faultCode=INVALID_WSDL”我在网上也没有查出个所以然,调用的时候也加了"?wsdl"后缀的,不知道有没有大侠遇到过此类问题,求帮助。
...全文
6242 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgh_mnb 2013-12-31
  • 打赏
  • 举报
回复
引用 2 楼 magi1201 的回复:
早前写webservice遇到的错误 org.xml.sax.SAXException: Bad envelope tag: definitions 刚开始以为是报文出错,格式有问题,检查过后感觉没有问题。 后来检查WSDL,果然是WSDL搞错了 正确:http://127.0.0.1:7001/crmService/services/agentInterface 错误:http://127.0.0.1:7001/crmService/services/agentInterface?wsdl 楼主去掉 ?wsdl 试试看
问题已经解决了,刷新了下浏览器就可以了,不知道是不是和浏览器默认的生命周期有关,超过300秒了就会出现这个问题,很奇怪,不过还是谢谢拉
姜小白- 2013-12-25
  • 打赏
  • 举报
回复
早前写webservice遇到的错误 org.xml.sax.SAXException: Bad envelope tag: definitions 刚开始以为是报文出错,格式有问题,检查过后感觉没有问题。 后来检查WSDL,果然是WSDL搞错了 正确:http://127.0.0.1:7001/crmService/services/agentInterface 错误:http://127.0.0.1:7001/crmService/services/agentInterface?wsdl 楼主去掉 ?wsdl 试试看
姜小白- 2013-12-25
  • 打赏
  • 举报
回复
String urlPath = ip + "/dna_ws/DataHandleServiceImpl?wsdl"; 去掉 ?wsdl 直接用 String urlPath = ip + "/dna_ws/DataHandleServiceImpl"; 试试

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧