4

http://www.mkyong.com/webservices/jax-ws/jax-ws-hello-world-example/から参照しています

これは私の HelloWorldClientクラスです

package WebService;


import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;



public class HelloWorldClient{

    public static void main(String[] args) throws Exception {

    URL url = new URL("http://localhost:8099/dummy1/dummy2?wsdl");

        //1st argument service URI, refer to wsdl document above
    //2nd argument is service name, refer to wsdl document above
        QName qname = new QName("http://localhost:8099/dummy1/dummy2?wsdl", "HelloWorldImplService");


        Service service = Service.create(url, qname);

        HelloWorld hello = service.getPort(HelloWorld.class);

        System.out.println(hello.getHelloWorldAsString("mkyong"));

    }

}

このクラスを実行すると、以下のコード行からエラーが発生します

Service service = Service.create(url, qname);

エラーは

Exception in thread "main" javax.xml.ws.WebServiceException: {http://localhost:8099/dummy1/dummy2?wsdl}HelloWorldImplService is not a valid service. Valid services are: {http://WebService/}HelloWorldImplService
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:220)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:165)
    at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:93)
    at javax.xml.ws.Service.<init>(Service.java:56)
    at javax.xml.ws.Service.create(Service.java:680)
    at WebService.HelloWorldClient.main(HelloWorldClient.java:19)

HelloWorldClient クラスの参照例では、

    QName qname = new QName("http://ws.mkyong.com/", "HelloWorldImplService");

私の場合、私はそれを

    QName qname = new QName("http://localhost:8099/dummy1/dummy2?wsdl", "HelloWorldImplService");

どこで間違いを犯したのかわかりませんでした。実行 http://localhost:8099/dummy1/dummy2?wsdlすると正常に動作しますが、クライアントからアクセスすると上記の例外が発生します。何か助けてください。

4

5 に答える 5

1

エラー メッセージは、何を修正する必要があるかを示します。

有効なサービスは次のとおりです。{http://WebService/}HelloWorldImplService

私にとっては、以下が必要でした:

QName qname = new QName("http://WebService/" , "HelloWorldImplService");
于 2016-03-23T17:37:30.937 に答える
0

私はそれを試していませんが、 QName インスタンス化の最初の引数には?wsdlがないと信じています。WSDL ドキュメントの URI ではなく、名前空間を提供するよう求められます。

于 2013-10-23T06:38:24.467 に答える