使用xfire创建webservice的一般过程

服务程序

1、  创建一个普通的web工程

使用eclipseIDE创建一个普通的web project.

2、  加入必须的jar文件

使用xfire创建的webservice须用到的jar:

Spring.jar,jdom-1.0.jar,spring-webmvc.jar,commons-logging-1.0.4.jar,xfire-core-1.2.6.jar,vsdl4j-1.6.1.jar,xfire-spring-1.2.6.jar,xfire-aegis-1.2.6.jar

3、  配置spring

此处使用的1.2xfire,其使用的spring,版本为1.2.6.本例中使用spring2.0.

web.xml中增加spring监听器

 

    <context-param>

       <param-name>contextConfigLocation</param-name>

       <param-value>classpath:/applicationContext*.xml</param-value>

</context-param>

 

    <listener>

       <listener-class>

           org.springframework.web.context.ContextLoaderListener

       </listener-class>

</listener>

在源码文件夹src中创建spring的配置文档applicationContext.xml,

 

4、  配置XfireServlet

web.xml中增加XfireServlet

    <servlet>

       <servlet-name>XFireServlet</servlet-name>

       <servlet-class>

           org.codehaus.xfire.spring.XFireSpringServlet

       </servlet-class>

    </servlet>

 

    <servlet-mapping>

       <servlet-name>XFireServlet</servlet-name>

       <url-pattern>/services/*</url-pattern>

</servlet-mapping>

5、  导入xfire.xml,配置基类bean

applicationContext.xml中导入xfire自带的常用的bean,当然也可以不导入,自己在applicationContext.xml中配置。导入方式为

<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />

然后配置一个基bean供业务bean继承,只有继承了xfirebean才能被xfire管理,

<bean id="baseWebService"

              class="org.codehaus.xfire.spring.remoting.XFireExporter"

              lazy-init="false" abstract="true">

              <property name="serviceFactory">

                     <ref bean="xfire.serviceFactory" />

              </property>

              <property name="xfire">

                     <ref bean="xfire" />

              </property>

              <property name="style">

                     <value>wrapped</value>

              </property>

              <property name="use">

                     <value>literal</value>

              </property>

              <property name="scope">

                     <value>application</value>

              </property>

       </bean>

 

6、  创建业务类

接口:EchoServer

package com.server;

 

public interface EchoServer {

 

    public String echo(String msg);

}

实现类:

package com.server.imp;

 

import com.server. EchoServer;

 

public class EchoServerImp implements EchoServer {

    public String echo(String msg) {

       return "server:"+msg;

    }

}

 

7、  配置业务webservice

applicationContext.xml中配置业务bean

注意继承baseWebService

<bean id="echoServer" parent="baseWebService">

       <property name="serviceBean">

           <bean class="com.server.imp.EchoServerImp" />

       </property>

       <property name="serviceClass">

           <value>com.server.EchoServer</value>

       </property>

    </bean>

 

客户程序

1、  创建一个普通的工程

2、  加入必须的jar文件

xfire-aegis-1.2.6.jar,jdom-1.0.jar,xfire-core-1.2.6.jar,wsdl4j-1.6.1.jar,commons-httpclient-3.0.jar,commons-codec-1.3.jar,common-logging-1.0.4.jar

3、  导入webservice接口

可以创建接口,包名与接口的名字要与服务工程上的一致,也可直接从服务工程上导出包含接口的jar,放入到该项目中,这里是创建的接口.

package com.server;

 

public interface EchoServer {

 

    public String echo(String msg);

}

 

4、  编写客户端程序

 

package com.client;

 

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 com.server.EchoServer;

 

public class Test {

 

    public static void main(String[] args) {

       String serviceAddress = "http://127.0.0.1/echoservice/services/EchoServer";

       ObjectServiceFactory objectServiceFactory = new ObjectServiceFactory();

       Service srvcModel = objectServiceFactory.create(EchoServer.class);

       XFireProxyFactory factory = new XFireProxyFactory(XFireFactory

              .newInstance().getXFire());

       try {

           EchoServer echoServer = (EchoServer) factory.create(

                  srvcModel, serviceAddress);

           String msg = echoServer.echo("please echo me!");

           System.out.println(msg);

       } catch (MalformedURLException e) {

           e.printStackTrace();

       }

 

    }

}

 转载请标明出处:http://blog.csdn.net/hpujsj/archive/2009/02/07/3867314.aspx

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值