目前项目上有用到xfire,所以临时看了些xfire的资料和示例,自己照着写了一个简单示例。
xfire在2007年后已经停止更新,正式更名为apache cxf,也可以说是xfire2.0。
xfire最后的版本是xfire1.2.6
1.新建一个dynamic project
2.lib中加入xfire依赖的jar,这个可以从xfire-distribution-1.2.6找到
3.配置web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>xfireDemo</display-name> <servlet> <servlet-name>xfireServlet</servlet-name> <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>xfireServlet</servlet-name> <url-pattern>/servlet/xfireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>xfireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
4.编写service对象
package com.jerry.ws; /** * * @author Jerry * * 2014年6月10日 下午11:03:16 */ public interface HelloService { void sayHello(String name); }
package com.jerry.ws; /** * * @author Jerry * * 2014年6月11日 上午12:16:21 */ public class HelloServiceImpl implements HelloService { @Override public void sayHello(String name) { // TODO Auto-generated method stub System.out.println("hello, " + name + "! "); } }
5.在META-INF下先新建一个xfire文件夹,在新建一个services.xml,然后编辑services.xml
<?xml version="1.0" encoding="utf-8" ?> <beans> <service xmlns="http://xfire.codehaus.org/config/1.0"> <name>HelloService</name> <namespace>http://ws.jerry.com/services/HelloService</namespace> <serviceClass>com.jerry.ws.HelloService</serviceClass> <implementationClass>com.jerry.ws.HelloServiceImpl</implementationClass> </service> </beans>
6.因为xfire会在classPath下去找META-INF/xfire/services.xml,所以Eclipse 发布需要做如下配置
7.最后配置tomcat,启动项目,访问 http://localhost:8080/xfireDemo/services,就可以看到所发布的服务了