使用CXF框架实现webservice的一个简单例子

本文介绍如何通过CXF框架发布WebService。首先创建Java工程并引入CXF相关jar包,接着定义WebService接口及其实现类,并提供发布和服务调用测试代码。文章展示了基本的数据类型和复杂对象的传递方式。

1.建立一个java工程(web工程也行)。

2.将cxf发布包中的jar导入到工程的classpath下,虽然有些包不需要,但是这样来的比较简单。

3.开始写代码了:

a. webservice接口类:

@WebService
public interface HelloWorld {

 public String sayHello(String name);
 
 public User welcome(User user);
}

 

b.webservice实现类:

@WebService
public class HelloWorldImpl implements HelloWorld {

 @Override
 public String sayHello(String name) {
  System.out.println("The method sayHello is called");
  return "hello " + name;
 }

 @Override
 public User welcome(User user) {
  System.out.println("The method welcome is called");
  List<Address> list = user.getList();
  Address ad = list.get(0);
  System.out.println("hello " + user.getId() + " - " + user.getName() + " *** " + ad.getCode() + "-" + ad.getName());
  return user;
 }

}

c.发布类测试类:

public class PublishClient {

 public static void main(String[] args){
  JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
  factory.setServiceClass(HelloWorldImpl.class);
  factory.setAddress("http://localhost:8080/webservice1");
  Server server = factory.create();
  server.start();
 }
 
}

d.测试类:

测试传输简单数据结构

@Test
 public void access(){
  JaxWsProxyFactoryBean proxy = new JaxWsProxyFactoryBean();
  proxy.setAddress("http://localhost:8080/webservice1");
  proxy.setServiceClass(HelloWorld.class);
  HelloWorld hello = (HelloWorld)proxy.create();
  System.out.println(hello.sayHello("simier"));
 }

测试传输复杂数据结构

@Test
 public void accessObj(){
  JaxWsProxyFactoryBean proxy = new JaxWsProxyFactoryBean();
  proxy.setAddress("http://localhost:8080/webservice1");
  proxy.setServiceClass(HelloWorld.class);
  HelloWorld hello = (HelloWorld)proxy.create();
  
  List<Address> list = new ArrayList<Address>();

  Address ad = new Address();
  ad.setCode(123456);
  ad.setName("hangzhou");
  
  list.add(ad);
  
  User user = new User();
  user.setId(123);
  user.setName("java_min");
  user.setList(list);
  
  User u = hello.welcome(user);
  System.out.println("It is client!");
  System.out.println("hello " + user.getId() + " - " + user.getName() + " *** " + u.getList().get(0).getCode() + "-" + u.getList().get(0).getName());  

 }

 

4.User和Address类不就用写了,普通的JavaBean.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值