微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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文件,引入到自己的测试客户端。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐