web-dev-qa-db-ja.com

wsimportが機能しない

コマンドプロンプトから以下のコマンドを使用してwsimportを使用しようとすると、正常に機能します。

wsimport -d generated C:\Users\generated\wsdlfile.xml

ただし、以下のようにwsimportを使用しようとすると、次のエラーがスローされます。

wsimport -d generated https://example.com/exampleService.svc?wsdl

Failed to read the WSDL document: https://example.com/exampleService.svc?wsdl, because 1) could not find the document; /2) the document could not be read; 3) the root element of the document is not <wsdl:definitions>.

[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s): At least one WSDL with at least one service definition needs to be provided.

        Failed to parse the WSDL.

ブラウザからURLにアクセスできますが、同じことが他のシステムから(私のPCから)機能しています。その理由は何でしょうか?

14
Kartic

Windowsでこの問題を解決するには、次のようにすべてのプロキシ設定を無効にします。

Internet Options > Connections > Lan Settings > Disable all check boxes

注:プロキシ設定の例外としてlocalhostまたはIPアドレスを追加するだけでは機能しませんでした。

13
Diego Magdaleno

私にも同じ問題があり、私の場合、問題はWSDLファイルのエンコーディングでした。

ブラウザからhttps://example.com/exampleService.svc?wsdlを開いてみてください。完全に解析できる場合は、すべてのxmlコンテンツが表示されます。そうでない場合、少なくともFirefoxは問題の場所を示します。

この状況で誰かを助けることを願っています

4
Edu Castrillon

これは、使用しているJavaのバージョンに問題があるようです...

この問題を解決するには、Javaバージョン "1.7.x"であることを確認してください。

3
Navaza Khan

このオプションをwsimportに設定してみてください:-XdisableSSLHostnameVerificationどれ

Wsdlsをフェッチしている間、SSLホスト名検証を無効にします。

0
ACV

以下のpom.xmlを使用します。

    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <version>1.9</version>
            <executions>
                <execution>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <phase>generate-sources</phase>
                </execution>
            </executions>
            <configuration>

                <!-- Keep generated files -->
                <keep>true</keep>
                <!-- Package name -->
                <packageName>org.example.echo.service.skeleton</packageName>
                <!-- generated source files destination -->
                <sourceDestDir>src/main/Java</sourceDestDir>

                <wsdlUrls>
                    <wsdlUrl>
                        **http://localhost:8080/soapWebService/services/PersonServiceImpl?wsdl**
                    </wsdlUrl>
                </wsdlUrls>
            </configuration>
        </plugin>
    </plugins>

</build>
0

私はディエゴマグダレノのアイデアを試しましたが、それはうまくいきました。

ファイルはWSDLファイルから抽出されます。

インターネットオプション>接続> LAN設定>すべてのチェックボックスを無効にする

enter image description here

0
Venkady