XFire+Spring发布Web Service(一)

XFire的介绍另见学习资料。
该文档包含了多种Web服务的发布,主要演示复杂对象的传递——网上很多有关Web Services的发布教程讲到的都只是简单的Hello World,在调用Web Service的时候,返回值都是以字符串做演示,都没有涉及到复杂对象的传递。通过该文档,应该可以应付所有的传递值类型了,除了java.util.Map类型 的对象。具体原因,据网上所说,是因为XFire还是什么咚咚与WSDL的xsd:anyType的映射有缺陷引起的。
1.发布Web Service的接口
言归正传,下面是用来发布Web Services的接口及实现类:

package demo;

 

import java.util.Collection;

import java.util.List;

 

/**

 * 用于发布Web Service的接口

 * @author dreava Nov 10, 2008

 */

public interface IHelloService {

    /**

     * @param ttt

     * @return

     */

    public String sayHello(String ttt);

 

    /**

     * @param u

     * @return

     */

    public Course choose(User u);

 

    /**

     * @param t

     * @return

     */

    public List<Course> getList(List<String> paramList);

   

    /**

     * @return

     */

    public Collection<User> getCollection();

}

 

 

 

 

package demo;

 

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashSet;

import java.util.List;

 

/**

 * @author dreava Nov 10, 2008

 */

public class HelloServiceImpl implements IHelloService {

    public String sayHello(String ttt) {

        return "Hello, " + ttt;

    }

 

    public Course choose(User user) {

        System.out.println(user.getName());

        Course course = new Course();

        course.setName("choose: Eee");

        List<User> userList = new ArrayList<User>();

        userList.add(user);

       

        course.setUserList(userList);

        return course;

    }

 

    public List<Course> getList(List<String> paramList) {

        for (int i = 0; i < paramList.size(); i++) {

            System.out.println((String) paramList.get(i));

        }

        List<Course> courseList = new ArrayList<Course>();

        Course course = new Course();

        course.setName("getList: EeeDDDDDD");

        User user = new User();

        user.setName("getList: liaokun");

        List<User> userList = new ArrayList<User>();

        userList.add(user);

        course.setUserList(userList);

       

        courseList.add(course);

        return courseList;

    }

   

    public Collection<User> getCollection(){

        Collection<User> collection = new HashSet<User>();

        for (int i = 0; i < 5; i++) {

            User user = new User();

            user.setName("user"+i);

            collection.add(user);

        }

       

        return collection;

         

    }

}

 

下面是上述接口和实现类涉及到的POJO类:

package demo;

 

import java.util.Collection;

import java.util.List;

import java.util.Map;

import java.util.Set;

 

/**

 * @author dreava Nov 10, 2008

 */

public class Course {

    private String name;

   

    private List<User> userList;

   

    public Collection<User> collection;

 

    public Collection<User> getCollection() {

        return collection;

    }

 

    public void setCollection(Collection<User> collection) {

        this.collection = collection;

    }

 

    public String getName() {

        return name;

 

    }

 

    public void setName(String name) {

        this.name = name;

    }

 

    public List<User> getUserList() {

        return userList;

    }

 

    public void setUserList(List<User> userList) {

        this.userList = userList;

    }

}

 

 

package demo;

 

/**

 * @author dreava Nov 10, 2008

 */

public class User {

    private String name;

 

    public String getName() {

        return name;

 

    }

 

    public void setName(String name) {

        this.name = name;

    }

}

 

 

由于文章长度限制,余下部分见XFire+Spring发布Web Service(二)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值