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






原创粉丝点击