Web services HTTP传输错误:java.net.MalformedURLException:无协议:将\u替换为\u实际\u URL

Web services HTTP传输错误:java.net.MalformedURLException:无协议:将\u替换为\u实际\u URL,web-services,jax-rpc,Web Services,Jax Rpc,我正在为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 Clien

我正在为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:无协议:用实际的\u URL替换\u;嵌套异常是: HTTP传输错误:java.net.MalformedURLException:无协议:将\u替换为\u实际\u URL 在com.client.BookCatalog\u Stub.getBookPrice(BookCatalog\u Stub.java:87) 位于com.Client.main(Client.java:19) 导致原因:HTTP传输错误:java.net.MalformedURLException:无协议:将\u替换为\u实际\u URL 位于com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpClientTransport.java:148) 位于com.sun.xml.rpc.client.StreamingSender.\u send(StreamingSender.java:96) 在com.client.BookCatalog\u Stub.getBookPrice(BookCatalog\u Stub.java:70)
... 1更多

尝试使用更具体版本的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位置的构造函数,并且得到了相同的错误。添加第二个参数解决了我的问题

希望这有帮助