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:无协议:com.Client.main(Client.java:19) 的 com.client.BookCatalog_Stub.getBookPrice(BookCatalog_Stub.java:87) 的 REPLACE_WITH_ACTUAL_URL 原因: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 位置并且得到了同样的错误。添加第二个参数解决了我的问题。

希望这可以帮助!

于 2012-02-26T16:39:21.650 回答