1

JAX RPC にスタブ ベースのクライアント アプローチを使用しています これは私のクライアントです

package com;

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import com.client.BookCatalog;
import com.client.BookCatalogService;
import com.client.BookCatalogService_Impl;

public class Client {

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

        BookCatalogService_Impl service = new BookCatalogService_Impl();

        BookCatalog bc = service.getBookCatalogPort();
        System.out.println(bc.getBookPrice("Web Services"));

    }

}

スレッド「メイン」での例外 java.rmi.RemoteException: HTTP トランスポート エラー: java.net.MalformedURLException: プロトコルがありません: REPLACE_WITH_ACTUAL_URL; ネストされた例外: HTTP トランスポート エラー: java.net.MalformedURLException: プロトコルなし: REPLACE_WITH_ACTUAL_URL at com.client.BookCatalog_Stub.getBookPrice(BookCatalog_Stub.java:87) at com.Client.main(Client.java:19) 原因: HTTP転送エラー: java.net.MalformedURLException: プロトコルなし: com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpClientTransport.java:148) の REPLACE_WITH_ACTUAL_URL com.sun.xml.rpc.client.StreamingSender._send (StreamingSender.java:96) at com.client.BookCatalog_Stub.getBookPrice(BookCatalog_Stub.java:70) ... 1 つ以上

4

1 に答える 1

0

Web サービス クライアント クラス コンストラクターのより具体的なバージョンを使用してみてください。次に例を示します。

java.net.URL wsdlLocation = new URL("http://service.com/services/Service?wsdl");
javax.xml.namespace.QName qualifiedServiceName = 
    new QName("http://you.service.namespace", "ServiceName");
BookCatalogService_Impl service = 
    new BookCatalogService_Impl(wsdlLocation, qualifiedServiceName);
...

私は WSDL の場所のみを取得するコンストラクターを使用していましたが、同じエラーが発生していました。2番目のパラメーターを追加すると、問題が解決しました。

お役に立てれば!

于 2012-02-26T16:39:21.650 に答える