Java WSDL定位器中的异常
我正在尝试在服务器中运行服务。但当我运行它时,它抛出以下异常:Java WSDL定位器中的异常,java,wsdl,cxf,Java,Wsdl,Cxf,我正在尝试在服务器中运行服务。但当我运行它时,它抛出以下异常: javax.wsdl.WSDLException: WSDLException (at /soapenv:Envelope): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'. at com.ibm.wsdl.xml.WSDLReaderImpl.checkElementName(Unkn
javax.wsdl.WSDLException: WSDLException (at /soapenv:Envelope): 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:229)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:179)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:91)
javax.wsdl.WSDLException:WSDLException(at/soapenv:Envelope):faultCode=INVALID_wsdl:Expected元素'{http://schemas.xmlsoap.org/wsdl/}定义'。
位于com.ibm.wsdl.xml.WSDLReaderImpl.checkElementName(未知源)
位于com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(未知源)
位于com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(未知源)
位于com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(未知源)
位于org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:229)
位于org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:179)
位于org.apache.cxf.wsdl11.WSDLServiceFactory.(WSDLServiceFactory.java:91)
我需要将WSDL文件放在项目中的什么位置?我已经生成了WSDL到Java客户机代码,并将其导入到我的项目中。在一个单独的文件夹中,我导入了我的所有WSDL文件。作为例外状态,您的WSDL无效
我想冒昧地猜测一下,您没有在预期/需要的元素中包含
元素。但在任何情况下,您都需要修复用于定义服务的WSDL。您的WSDL似乎无效。正如Andrzej Doyle所说,您的WSDL可能缺少该元素,或者如果您的WSDL包含该元素,那么它包含错误的信息。看起来应该是
<definitions name="HelloService"
targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
</definitions>
- targetnamespace标记是否包含wsdl的正确位置
注意:在任何情况下,都必须更正wsdl。因此,请确保您在这两个地方都更改了wsdl(在实际的wsdl和您单独的文件夹中)在我的情况下,问题是我试图使用类似
的URL访问客户端中的WShttp://foo.bar/ws/WSName
我需要使用像http://foo.bar/ws/WSName?WSDL
(注意&WSDL
部分)
希望这对别人有帮助