关于cxf的webservice搭建2

本文详细介绍了如何独立于服务端搭建cxf webservice客户端,包括导入相关jar包、解决运行中遇到的问题以及服务端代码修改等步骤。通过实践操作,读者可以掌握从客户端到服务端的完整搭建流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面曾讲过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,如下图:

[img]http://dl2.iteye.com/upload/attachment/0101/9816/883cc0b8-02eb-38e0-a497-ef5e9015164e.png[/img]

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

[img]http://dl2.iteye.com/upload/attachment/0101/9818/d146cc2a-6c82-3f8e-86ae-3eeb7e49d8e7.png[/img]

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

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

[img]http://dl2.iteye.com/upload/attachment/0101/9822/2684427d-e54c-30b4-8df7-0310c7d17be5.png[/img]
我在下面两个博客上得到提示: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([color=red]targetNamespace="http://service.ws.lml.com/",[/color]endpointInterface = "com.lml.ws.service.Hello")
public class HelloImpl implements Hello {

public String sayHello(String name) {
return name + " say hello!";
}
}

运行结果,结果正确:

[img]http://dl2.iteye.com/upload/attachment/0101/9826/400731f3-acdb-3738-9d9b-21bb26d5544f.png[/img]

源码下载地址:http://download.youkuaiyun.com/detail/l540151663/8039763
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值