HTTP传输错误:java.net.MalformedURLException:无协议:REPLACE_WITH_ACTUAL_URL

时间:2011-07-24 15:08:31

标签: web-services jax-rpc

我正在使用基于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个

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位置并且得到了相同的错误。添加第二个参数解决了我的问题。

希望这有帮助!