March 2010
S M T W T F S
« Feb    
 123456
78910111213
14151617181920
21222324252627
28293031  

一个斜杠引起的思考

最近关注 WebService,尝试CXF的一个 Client 样例(http://svn.apache.org/repos/asf/cxf/trunk/distribution/src/main/release/samples/java_first_jaxws/src/demo/hw/client/Client.java)时,修改一下,运行,总是报这个错:
Caused by: java.net.MalformedURLException: Invalid address. Endpoint address cannot be null.
……

本来想跳过它了,但是很简单的修改,如下

public static final QName SERVIVE_NAME = new QName(
“http://ws.leegorous.net”, “Hello”);
public static final QName PORT_NAME = new QName(
“http://ws.leegorous.net”, “HelloPort”);

public static void main(String[] args) {
Service service = Service.create(SERVIVE_NAME);

String endpointAddress = “http://localhost:9000/hello”;
service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING,
endpointAddress);

Hello srv = service.getPort(Hello.class);
System.out.println(srv.sayHi(”Leegorous”));
}

感觉离真相很近,但怎么都搞不着的感觉真是糟糕~

于是开始调试,调试一下也不错,可以顺便大概了解下过程,但是越挖掘,越觉得奇怪。小说电视里,经常吹嘘当找不到方向时不妨回到原点,这个的原点就是我修改的部分。

很奇怪的发现样例里初始化QName的第一个参数是以”/”结尾的,我想不会吧。
一边质疑着自己,一边加上斜杠,运行测试,居然成功了!

public static final QName SERVIVE_NAME = new QName(
“http://ws.leegorous.net/”, “Hello”);
public static final QName [...]