mrbear 发表于 2015-8-3 09:14:13

使用apache-cxf-2.2.10来制作一个极简版WebService程序

  原想拿最新版cxf来制作的,无奈Apache的zip包总下不下来,国内的apache-cxf-2.2.10却一蹴而就,也就用了这个版本。下载地址是:http://pan.baidu.com/s/1tdgiW
  整个程序的下载地址是:http://pan.baidu.com/s/1GdI5p ,里面包括服务器端和测试客户端,伸手党直接拿走就好了。
  用cxf做Webservice还是很顺手的,感觉比以前的Axis1/2都要简单快捷。
  首先,讲讲如何做服务器端。
  先用MyEclipse创建一个Web工程,把apache-cxf-2.2.10里面lib目录的jar包都拷到web-inf下的lib目录里,再将所有lib引导到工程中。
  其次,把Web.xml改写如下:





Rts Cxf WebService   

index.jsp


contextConfigLocation
WEB-INF/appctx.xml



org.springframework.web.context.ContextLoaderListener



CXFServlet

org.apache.cxf.transport.servlet.CXFServlet

1


CXFServlet
/*


  然后,在WEB-INF下创建一个appctx.xml,内容如下:











  然后,创建一个接口:



package com.hy;
import javax.jws.WebService;
@WebService
public interface Test{
public String getResponse(String req);
}
  在实现一个类:



package com.hy;
import javax.jws.WebService;
@WebService
public class TestImpl implements Test{
public String getResponse(String req) {
return "Hello!"+req;
}
}
  注意上面的Annotator “@WebService” 不能少,我都用粗体标识出来了,少了就玩不转了。
  之后,把工程发布到Tomcat里,WebService就运转起来了。
  在浏览器地址栏输入http://localhost:8080/cxfServer是这个效果:

  
  服务端运转起来,需要客户端来测试一下。
  这回是制作一个java工程,将lib同样倒一下。
  然后把Test接口拷贝过来,再写一个测试程序就好了:



package com.hy;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class Main{
public static void main(String[] args){
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(Test.class);
factory.setAddress("http://localhost:8080/cxfServer/getResponse");// localhost:8080/ + appname+/+address(appctx.xml里写的)
Test t = (Test) factory.create();
System.out.println(t.getResponse("逆火狂飙"));
}
}
  这个跑完的效果是:Hello!逆火狂飙
  
  就是这些内容,确实简单。你可以以此为基础发明自己的WebService。
  2013年11月21日22:06:13
  
  
  
页: [1]
查看完整版本: 使用apache-cxf-2.2.10来制作一个极简版WebService程序