xfire_webService
来源:互联网 发布:网络骂人的话 越毒越好 编辑:程序博客网 时间:2024/06/15 04:23
用xfre创建webService很简单了
1.把需要的jar包复制到web项目的lib里
activation-1.1.jar
commons-codec-1.3.jar
commons-httpclient-3.0.jar
commons-logging-1.1.1.jar
jaxen-1.1-beta-9.jar
jdom-1.0.jar
log4j-1.2.15.jar
mail-1.4.jar
spring-1.2.6.jar
stax-api-1.0.1.jar
wsdl4j-1.6.1.jar
wstx-asl-3.2.0.jar
xbean-2.2.0.jar
xbean-spring-2.8.jar
xfire-all-1.2.6.jar
xml-apis-1.0.b2.jar
xmlParserAPIs-2.0.2.jar
XmlSchema-1.1.jar
2.在web.xml里添加如下配置
<servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>3.写个服务接口Server.java
package com.dahafo.webService;/** * @author Zevi Qian E-mail:gosun@foxmail.com * @version 创建时间:2013-5-9 下午11:09:28 * 服务接口 */public interface Server {public String say(String name);public User getUser(User u);}实现接口 HelloServer.java
package com.dahafo.webService;/** * @author Zevi Qian E-mail:gosun@foxmail.com * @version 创建时间:2013-5-9 下午11:12:06 * helloserverimpl */public class HelloServer implements Server {/* (non-Javadoc) * @see com.dahafo.webService.Server#say(java.lang.String) */@Overridepublic String say(String name) {System.out.println("say方法被调用");return "你好,"+name+"!欢迎使用webService";}/* (non-Javadoc) * @see com.dahafo.webService.Server#getUser(com.dahafo.webService.User) */@Overridepublic User getUser(User u) {u.setId("new:"+u.getId());u.setName("new:"+u.getName());return u;}}User.java类
package com.dahafo.webService;/** * @author Zevi Qian E-mail:gosun@foxmail.com * @version 创建时间:2013-5-10 上午12:15:25 * 用户 */public class User {private String id;private String name;public User() {}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
4.发布服务
在src下创建META-INF ,在META-INF下创建xfire ,在xfire下创建services.xml 内容如下
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>service</name> <serviceClass>com.dahafo.webService.Server</serviceClass> <implementationClass>com.dahafo.webService.HelloServer</implementationClass> </service></beans>
文件结构如下图
在src下创建log4j的配置文件,内容自己编。
5.把web项目部署到tomcat上
写个测试类测下
package com.dahafo.webService;import java.net.MalformedURLException;import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;import sun.rmi.runtime.Log;/** * @author Zevi Qian E-mail:gosun@foxmail.com * @version 创建时间:2013-5-9 下午11:27:45 * 类说明 */public class TestService {/** * @param args */public static void main(String[] args) {Service serviceModel = new ObjectServiceFactory().create(Server.class);XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());String url ="http://localhost:8080/xfire_webService/services/service";try {Server s= (Server)factory.create(serviceModel, url);System.out.println(s.say("zevi"));User u=new User();u.setName("小米");User newu=s.getUser(u);System.out.println("new id:"+newu.getId()+";new name:"+newu.getName());} catch (MalformedURLException e) {e.printStackTrace();};}}
我的项目名称是xfire_webService,所以url就是http://localhost:8080/xfire_webService/services/service