webservice之XFire初级篇

1.导入xfire需要的包,这里使用的是xfire-1.2.6版本。需要导入的包有:
activation-1.1.jar , commons-codec-1.3.jar ,
commons-httpclient-3.0.jar,commons-logging-1.0.4.jar,jaxb-api-2.0.jar,jaxb-impl-2.0.1.jar,
jaxen-1.1-beta-9.jar,jdom-1.0.jar,jsr173_api-1.0.jar,mail-1.4.jar,spring.jar(这里的是 2.0
以上的包) , stax-api-1.0.1.jar , wsdl4j-1.6.1.jar , wss4j-1.5.1.jar , wstx-asl-3.2.6.jar , xbean-2.2.0.jar ,
xbean-spring-2.8.jar,xfire-all-1.2.6.jar,xfire-jsr181-api-1.0-M1.jar,XmlSchema-1.1.jar,
xmlsec-1.3.0.jar

2.在自己的web.xml文件中加入xfire的servlet。

<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

3.编写自己的webservice接口

import java.rmi.Remote;

public interface IHelloXFire extends Remote{
public String hello(String name);
public Float add(Float a, float b);
}

4.编写自己的webservice接口实现

import webservice.IHelloXFire;

public class HelloXFire implements IHelloXFire{

@Override
public String hello(String name) {
// TODO Auto-generated method stub
System.out.println("hello " + name +" by xfire");
return "webservice.impl.HelloXFire.hello() execute";
}

@Override
public Float add(Float a, float b) {
// TODO Auto-generated method stub
return a+b;
}

}

5.编写services.xml文件放到META-INF/xfire下,[META-INF文件夹复制到WEB-INF下]

<?xml version="1.0" encoding="utf-8" ?>
<beans>
<service xmlns="http://xfire.codehaus.org/config/1.0">
<name>HelloXFire</name>
<namespace>http://simple.xfire.webservice/HelloXFire</namespace>
<serviceClass>webservice.IHelloXFire</serviceClass>
<implementationClass>webservice.impl.HelloXFire</implementationClass>
<scope>request</scope>
</service>
</beans>

6.启动web应用后,浏览器中输入http://localhost:8080/MgXFire/services/,如果看到有列出webservice接口列表则说明webservice服务端运行成功。
webservice之XFire初级篇 - 梦来梦往2013 - 梦来梦往的博客
7.编写webservice client来调用webservice。

package webservice.client;

import java.net.MalformedURLException;

import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import webservice.IHelloXFire;

public class HelloXFireClient {
public static void main(String[] args) {
String url = "http://127.0.0.1:8080/MgXFire/services/HelloXFire";
Service serviceModel = new ObjectServiceFactory().create(IHelloXFire.class);
try {
IHelloXFire service = (IHelloXFire) new XFireProxyFactory().create(serviceModel, url);
String result = service.hello(System.getProperty("user.name"));
System.out.println("result = " + result);
Float returnValue = service.add(new Float(3.2), new Float(2.8));
System.out.println("returnValue = " + returnValue);
} catch (MalformedURLException e) {
e.printStackTrace();
}

}
}

运行截图:

客服端:

result = webservice.impl.HelloXFire.hello() execute
returnValue = 6.0

服务器端:

hello Administrator by xfire

注意:webservice的接口一定要是同一个class,如果测试客户端不是在服务器端编写的话,就找不到webservice接口了。于是,我们需要将webservice接口export到处为jar文件,引入到自己的测试客户端。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值