本文主要是介绍java 编写webservice 接口(xfire) ,调用webservice接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我没学习过axis系列,一开始学的就是xfire,myeclipse5.1支持xfire支持的非常棒。这里讲解一个简单的例子,1.首先建立一个web service工程:
点击finish之后,myeclipse自动帮你生成services.xml以及web应用目录结构,其中的services.xml是你导出服务的配置文件,注意在WEB-INF/web.xml文件中配置了xfire自己的servlet.
<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>
2.接下来,现在编写要导出的pojo类,首先是接口:
package net.rubyeye.webservicedemo;
//Generated by MyEclipse
public interface IHelloWorldService {
public String sayHello(String name);
}
这个接口我们只提供一个方法:sayHello(),我们没有采用JSR181标注式的声明方式,还是采用xml配置文件。然后是实现类:
package net.rubyeye.webservicedemo;
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String name){
return "hello,"+name;
}
}
最后,配置下services.xml文件:
<service>
<name>HelloWorldService</name>
<serviceClass>
net.rubyeye.webservicedemo.IHelloWorldService
</serviceClass>
<implementationClass>
net.rubyeye.webservicedemo.HelloWorldServiceImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service>
我们的web服务名称叫做HelloWorldService,接口是IHelloWorldService,实现类是HelloWorldServiceImpl。注意,其实我们这三个步骤可以一步完成,只要直接使用myeclipse的new web service向导即可
3.然后将此工程部署到tomcat上,通过http://localhost:8081/HelloWorld/services/HelloWorldService?wsdl可以看到生成的wsdl文件。注意,在部署之后,services会被拷贝到WEB-INF\classes\META-INF\xfire目录下,xfire会自动搜索此目录并加载配置文件。
客户端(调用服务端提供的WebService接口方法):
使用工具:eclipse
需要引入如下包:下载链接:http://download.csdn.net/detail/taking_wang/4466806。
开发步骤:1.创建工程
File->New->Java Project->Project name:Demo,一路Next>,最后Finish,然后新建包com.demo.client,包中建立2个文件,一个是服务端接口文件 IMyService.java (这里的名字可以使任意的,但是方法名必须和webservice提供的那个方法名一致),一个是测试文件Test.java,其代码如下:
- package com.demo.client;
- import org.codehaus.xfire.client.XFireProxyFactory;
- import org.codehaus.xfire.service.Service;
- import org.codehaus.xfire.service.binding.ObjectServiceFactory;
- import com.test.IMyService;
- public class Test {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- String serviceUrl = "http://localhost:8080/Demo/services/MyService";
- Service serviceModel = new ObjectServiceFactory().create(IMyService.class, null, "http://localhost:8080/Demo/services/MyService?wsdl", null);
- XFireProxyFactory serviceFactory = new XFireProxyFactory();
- try{
- IMyService service = (IMyService)serviceFactory.create(serviceModel,serviceUrl);
- String hello = service.sayHello("hello");
- System.out.println(hello);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
IMyService.java
package com.test;
//Generated by MyEclipse
public interface IMyService{
public String sayHello(String name);
}
这篇关于java 编写webservice 接口(xfire) ,调用webservice接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!