关于cxf的webservice搭建2

前面曾讲过cxf的webservice搭建,但客户端的代码依赖与服务端。这给我带来了很多不便。因此这里来说下不依赖服务端的客户端搭建。

服务端大致与上讲不变,需要更改处下面会提示。

首先重新搭建客户端,只有一个测试类,Test.java代码如下:

import org.apache.cxf.endpoint.Client;

import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

public class Test {

public static void main(String str[]) throws Exception {

JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();

Client client = clientFactory.createClient("http://localhost:8080/WebService/HelloService?wsdl");

Object[] result = client.invoke("sayHello", "lml");

System.out.println(result[0]);

}

}

导入相关jar包,这里我只用到了2个jar,如下图:

运行后可能出现下面错误:

关于cxf的webservice搭建2_第1张图片

出现这个原因是因为没有使用正确的jre包,在我的java文件夹下有2个文件,使用jdk下的jre文件,注意tomcat与eclipse都需要使用该jre。

当我导完文件后,又出现个新问题,问题如下:

我在下面两个博客上得到提示:http://pangsir.iteye.com/blog/1492508  http://lost-alien.iteye.com/blog/1175859

更改服务端代码,在实现类下加入targetNamespace标签,代码如下:

import javax.jws.WebService;

import com.lml.ws.service.Hello;

@WebService(targetNamespace="http://service.ws.lml.com/",endpointInterface = "com.lml.ws.service.Hello")

public class HelloImpl implements Hello {

public String sayHello(String name) {

return name + " say hello!";

}

}

运行结果,结果正确:

源码下载地址:http://download.csdn.net/detail/l540151663/8039763

你可能感兴趣的:(关于cxf的webservice搭建2)