用eclipse开发xifre webservice

来源:互联网 发布:java mongotemplate 编辑:程序博客网 时间:2024/05/18 03:47

今天上网搜了一下关于xfire的使用,网上的也有不少例子,不过有一部分不是很详细,为了方便以后查找方便,所以把今天开发的步骤记录下来了.

1.在官网http://xfire.codehaus.org/Download下载xfire的相关jar包。

2.新建一个web项目,我给项目起的名字是Xfire,然后编写相应的接口HelloWorldService.java和实现类HelloWorldServiceImpl.java。

HelloWorldService.java

package com.whm;public interface HelloWorldService {String sayHi(String username);}
HelloWorldServiceImpl.java
package com.whm;public class HelloWorldServiceImpl implements HelloWorldService {@Overridepublic String sayHi(String username) {  return "Hello " + username;  }}

3.将之前下载的jar导入到项目中。

4.配置web.xml。在其中加入以下代码

<servlet>      <servlet-name>XFireServlet</servlet-name>      <servlet-class>          org.codehaus.xfire.transport.http.XFireConfigurableServlet       </servlet-class>  </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>

5.在classpath下建立一个新文件夹META-INF,在META-INF文件夹下在建立一个文件夹xfire.


6.在之前建好的xfire文件夹下创建一个services.xml文件,编写services.xml。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://xfire.codehaus.org/config/1.0"><service><!-- 为该Service起一个名字 --><name>HelloWorld</name><!-- service的接口类 --><serviceClass>com.whm.HelloWorldService</serviceClass><!-- service的接口实现类 --><implementationClass>com.whm.HelloWorldServiceImpl</implementationClass></service></beans>

到此,一个xfire的webservice服务端告一段落了。

然后我们将项目部署在tomcat中,启动tomcat。在浏览器中输入以下地址:http://localhost:8080/Xfire/services/HelloWorld?wsdl,出现该画面则说明代码正确



接下来编写客户端代码。

在绝大多数情况下,webservice为接口,客户端需要在另外一个项目中调用该接口。因此,在客户端如果想调用该接口,必须要在client的项目中引入webservice的接口类,否则客服端无法引用该接口。至少在目前为止,是我所知道解决。该方法的唯一办法。如果哪位大侠有其他的方法,可以给我留言啊,谢谢了。

1.建立一个java 项目。名称随意。

2.同样将xfire的jar包导入到项目中。

3.编写client的实现代码。

package com.whm;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;public class Client {public static void main(String args[]) throws MalformedURLException {Service service = new ObjectServiceFactory().create(HelloWorldService.class);XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
//url中Xfire为服务端项目的名称。HelloWorld为services.xml中的name属性。serivces是固定的String url = "http://localhost:8080/Xfire/services/HelloWorld";HelloWorldService helloService = (HelloWorldService) factory.create(service,url);System.out.println(helloService.sayHi("张三"));}}


写完客户端的代码之后,我们来测试一下是否正确

首先启动服务端的tomcat。

然后运行client类,最后出现


说明测试成功。





原创粉丝点击