2

サーバーでサービスを実行しようとしています。しかし、実行すると、以下の例外がスローされます。

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)

プロジェクトのどこに WSDL ファイルを配置する必要がありますか? Java クライアント コードへの WSDL を生成し、プロジェクトにインポートしました。別のフォルダーに、すべての WSDL ファイルをインポートしました。

4

3 に答える 3

3

It looks like your WSDL is not valid. As Andrzej Doyle said, your WSDL might be missing the element or if your WSDL has that element then it contains wrong information. It should look like...

<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>
  • does your targetnamespace tag contain the correct location of wsdl??

You can get more information from how-can-i-make-this-a-valid-wsdl and wsdl-soap-test-with-soapui

Note: In any case, you have to correct your wsdl. So, please make sure that you have changed your wsdl in both places (In actual wsdl and in your separate folder)

于 2012-09-07T07:31:18.740 に答える
3

私の場合、問題は、クライアントで次のような URL を使用して WS にアクセスしようとしていたhttp://foo.bar/ws/WSNameことでしhttp://foo.bar/ws/WSName?WSDL&WSDL

これが誰かに役立つことを願っています。

于 2015-06-09T15:22:49.187 に答える
1

例外が示すように、WSDL は無効です。

<definitions>期待/必要な要素が含まれていないと推測する危険があります。ただし、いずれにせよ、サービスを定義する WSDL を修正する必要があります。

于 2012-09-06T11:50:11.637 に答える