我正在使用基于Stub的客户端方法来实现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"));
}
}
线程“main”中的异常java.rmi.RemoteException:HTTP传输错误:java.net.MalformedURLException:无协议:REPLACE_WITH_ACTUAL_URL;嵌套异常是: HTTP传输错误:java.net.MalformedURLException:无协议:REPLACE_WITH_ACTUAL_URL 在com.client.BookCatalog_Stub.getBookPrice(BookCatalog_Stub.java:87) 在com.Client.main(Client.java:19) 引起:HTTP传输错误:java.net.MalformedURLException:无协议:REPLACE_WITH_ACTUAL_URL 在com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpClientTransport.java:148) 在com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:96) 在com.client.BookCatalog_Stub.getBookPrice(BookCatalog_Stub.java:70) ......还有1个
答案 0 :(得分: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位置并且得到了相同的错误。添加第二个参数解决了我的问题。
希望这有帮助!