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

xfire webservice 实例

发布时间:2020-12-17 02:51:14 所属栏目:安全 来源:网络整理
导读:服务器端: 一、首先建立WEB.XML文件的配置映射,当访问services时,调用XFireConfigurableServlet来处理: ?xml version="1.0" encoding="UTF-8"? web-app ?welcome-file-list ??welcome-fileindex.jsp/welcome-file ?/welcome-file-list ?servlet ??servle

服务器端:

一、首先建立WEB.XML文件的配置映射,当访问services时,调用XFireConfigurableServlet来处理:

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
?<welcome-file-list>
??<welcome-file>index.jsp</welcome-file>
?</welcome-file-list>

?<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>
</web-app>

二、XFireConfigurableServlet会自动查找classes下的META-INF/xfire/services.xml配置文件,在这个XML配置文件中,把要提供服务类或接口进行绑定,设置其名称、命名空间、需要绑定的类:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://xfire.codehaus.org/config/1.0">
?<service>
??<name>MathService</name>
??<namespace>
???
http://localhost:8080/TestService/MathService
??</namespace>
??<serviceClass>com.test.ws.MathService</serviceClass>
?</service>
?
?<service>
??<name>DelService</name>
??<namespace>
???
http://localhost:8080/TestService/DelService
??</namespace>
??<serviceClass>com.test.ws.DelService</serviceClass>
?</service>
</beans>

?

三、把需要服务的类或接口编写出来,我的示例是lpl.MathService类:

package com.test.ws;

public class MathService {
?public long add(int p1,int p2) {
??return p1 + p2;
?}
}

package com.test.ws;

public class DelService {
?public long minus(int p3,int p4) {
??return p3 - p4;
?}
}

四、把XFire及其需要的包都拷过来。

下载XFire后,解压后有个lib目录,把里面全部的包都拷过来

下载的XFire包也拷过来

五、起动TOMCAT进行服务器端的测试:

输入网址:http://localhost:8080/TestService/services/

浏览器会显示你所绑定的类或接口名称,如:

Available?Services:

  • MathService?[wsdl]
  • DelService?[wsdl]

    Generated?by?XFire?(?http://xfire.codehaus.org?)?

点击服务名后面的[wsdl],会显示该服务类的详细wsdl描述。(某些浏览器或插件可能会显示失败,我用TW就不能正常访问,所以不行时,换个浏览器试试)

?客户端

package other;

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.test.*;

public class Client {

?/**
? * @param args
? */

?public static void main(String[] args) {
??// TODO 自动生成方法存根

??Service srvcModel = new ObjectServiceFactory().create(IMath.class);
??XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());

??String helloWorldURL = "http://localhost:8080/ServiceTest/services/Math";
??try {
???IMath srvc = (IMath) factory.create(
?????srvcModel,helloWorldURL);
???System.out.print(srvc.add(1515,1515));
??} catch (MalformedURLException e) {
???e.printStackTrace();
??}

?}

}

(编辑:李大同)

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

    推荐文章
      热点阅读