使用Xfire开发WebService

MyEclipse中和许多网站的WebService教程以HelloWord为例,内容比较简单,在实际的项目应用中大多都是对象和集合,现在我们扩展下,使用webservice传递对象,字符串,集合;
下面是我们设计的webservice的接口:
 1package com.test.service;
 2
 3import java.util.List;
 4
 5public interface IPerson {
 6    //根据用户名获取密码
 7    public String getPassword(String name);
 8    //根据用户名获取Person对象
 9    public Person getPersonByName();
10    //获取全部成员
11    public List<Person> getAllPerson();
12}

其中有三个方法包含了传递:String,Object,List集合;
2,这里我们实现接口中定义的业务逻辑
package com.test.service;

import java.util.LinkedList;
import java.util.List;

public class PersonImpl implements IPerson {
    
    
    
public String getPassword(String name) {
        
        
return "Password";
    }


    
public Person getPersonByName() {
        
        
return new Person("ObjectName","ObjectPass");
    }


    
public java.util.List<Person> getAllPerson(){
        
        List list 
= new LinkedList();
        list.add(
new Person("One","PassOne"));
        list.add(
new Person("Two","PassTwo"));
        list.add(
new Person("Three","PassThree"));
        
return list;
    }

}

在实际应用中比较复杂,可能用调用持久层的Dao,返回需要的结果,这里我们直接创建一个模拟数据,下面是实现类中用到的对象
 1package com.test.service;
 2
 3public class Person {
 4    private String name;
 5    private String password;
 6    
 7    public Person() {
 8        super();
 9    }

10    public Person(String name, String password){
11        super();
12        this.name = name;
13        this.password = password;
14    }

15    public String getPassword(){
16        return password;
17    }

18    public void setPassword(String password){
19        this.password = password;
20    }

21}

22

3,编写XFire要求的WebSevice定义描述文件,如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">

    
<service>
        
<name>Person</name>
        
<serviceClass>com.test.service.IPerson</serviceClass>
        
<implementationClass>
            com.test.service.PersonImpl
        
</implementationClass>
        
<style>wrapped</style>
        
<use>literal</use>
        
<scope>application</scope>
    
</service></beans>
本文件的放置位置很关键,此文件放在src/META-INF/xfire/services.xml,如果使用MyEclipse新建的不是webapplication,而是webservice项目,这一步就省去自己编写了,编译时会自动编译到classes的相应目录下面。web.z
5,编译xml,定义XfireConfigableServlet
 1<?xml version="1.0" encoding="UTF-8"?>
 2<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 3  <servlet>
 4    <servlet-name>XFireServlet</servlet-name>
 5    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
 6    <load-on-startup>0</load-on-startup>
 7  </servlet>
 8  <servlet-mapping>
 9    <servlet-name>XFireServlet</servlet-name>
10    <url-pattern>/services/*</url-pattern>
11  </servlet-mapping>
12  <welcome-file-list>
13    <welcome-file>index.jsp</welcome-file>
14  </welcome-file-list>
15</web-app>
16
17
所有的工作都已经作完,接下来在部署在tomcate下,启动服务器,在地址栏键入:http://127.0.0.1:8080/MyWebService/srevice/Person?wsdl
如果出现xml描述文件就成功了;


posted on 2008-06-20 12:10 空白 阅读(841) 评论(2)  编辑  收藏 所属分类: Java

评论

# re: 使用Xfire开发WebService 2011-04-26 09:53 李庆文

这个对吗?我觉得好像不是很对。你person类放置在什么位置?我也是这样建立的。但是,myeclipse提示mywebservice找不到person类。  回复  更多评论   

# re: 使用Xfire开发WebService 2011-05-10 21:17 空白

@李庆文
src目录com.test.service包中
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿(1)

随笔分类(15)

积分与排名

最新评论

阅读排行榜

评论排行榜