加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用xfire创建webservice的一般过程

发布时间:2020-12-17 02:34:31 所属栏目:安全 来源:网络整理
导读:服务程序 1、 ? 创建一个普通的 web 工程 使用 eclipse 的 IDE 创建一个普通的 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、? 创建一个普通的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,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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读