2012-03-19 47 views
0

我想在java中创建简单的Web服务HelloWorld。我创建方法HelloWorld。然后使用CXF框架我生成Web服务和客户端。服务器是tomcat。但是当我尝试从客户端访问Web服务时,我得到:不能从Web服务的客户端访问localhost(TOMCAT)上的WSDL

Exception in thread "main" javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service. 
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:150) 
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:90) 
at javax.xml.ws.Service.<init>(Service.java:56) 
at sk.fiit.bado.testws.klient.TestWSService.<init>(TestWSService.java:43) 
at sk.fiit.bado.testws.klient.TestSEI_TestWSPort_Client.main(TestSEI_TestWSPort_Client.java:48) 
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service. 
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:94) 
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:204) 
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:148) 
... 4 more 
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'http://localhost:8080/TestService/services/TestWSPort?wsdl'.: java.io.FileNotFoundException: http://localhost:8080/TestService/services/TestWSPort?wsdl 
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(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:244) 
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:191) 
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:92) 
... 6 more 
Caused by: java.io.FileNotFoundException: http://localhost:8080/TestService/services/TestWSPort?wsdl 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1434) 
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677) 
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186) 
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:772) 
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) 
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235) 
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284) 
... 12 more 

我猜测它是关于WSDL文件的东西。因为我不能访问它。帮助将不胜感激。

回答

0

你的堆栈已经告诉你出了什么问题。没有找到wsdl文件:

Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'http://localhost:8080/TestService/services/TestWSPort?wsdl'.: java.io.FileNotFoundException: http://localhost:8080/TestService/services/TestWSPort?wsdl 
+0

不幸的是,FileNotFoundException并不总是由于找不到WSDL文件而导致的。 FNFE有时可能由认证或用户代理问题引起。 – Marco 2014-04-26 00:23:45