当前位置:首页 > 开发 > 编程语言 > Web Service > 正文

XFire框架实现WebService(二)

发表于: 2011-08-04   作者:周凡杨   来源:转载   浏览:
摘要:    有了XFire框架实现WebService(一),就可以继续开发WebService的简单应用。 Webservice的服务端(WEB工程): 两个java bean类: Course.java    package cn.com.bean; public class Course {     private
   有了XFire框架实现WebService(一),就可以继续开发WebService的简单应用。
Webservice的服务端(WEB工程):
两个java bean类:
Course.java
   package cn.com.bean;
public class Course {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
         this.name = name;
    }
}

User.java
package cn.com.bean;
public class User {
      private String name;
      public String getName() {
          return name;
      }
      public void setName(String name) {
           this.name = name;
      }

}

一个Service接口入口: IHelloService.java
package cn.com.service;

import java.util.List;

import cn.com.bean.Course;
import cn.com.bean.User;

public interface IHelloService {
        public String sayHello(String t);
        public Course choose(User u);
        public List test(List t);
}

接口的实现类: HelloServiceImpl.java

package cn.com.service;

import java.util.ArrayList;
import java.util.List;
import cn.com.bean.Course;
import cn.com.bean.User;
public class HelloServviceImpl implements IHelloService {
       public Course choose(User u){
               System.out.println(u.getName());
               Course c = new Course();
               c.setName("Computer");
               return c;
       }
        public String sayHello(String t) {
               return "Hello,"+t;
        }
        public List test(List t) {
               for(int i=0;i<t.size();i++){
                    System.out.println((String)t.get(i));
               }
                List list = new ArrayList();
                Course c = new Course();
                c.setName("English Reading");
                list.add(c);
                return list;
        }
}
WebSevice定义描述文件: services.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
    <service>
        <name>HelloService</name>
        <namespace>my/HelloService</namespace>
        <serviceClass>cn.com.service.IHelloService</serviceClass>
        <implementationClass>cn.com.service.HelloServviceImpl</implementationClass>        
    </service>
</beans>

因为我们用到了List等集合类型,所以需要定义Mapping关系,文件名为:IHelloService.aegis.xml
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
   <mapping>
      <method name="test">
         <parameter index="0" componentType="java.lang.String" />
         <return-type componentType="cn.com.bean.Course"/>
      </method>
   </mapping>
</mappings>

最后Web.xml文件添加XFire需要用到的Servlet:
<?xml version="1.0" encoding="UTF-8"?>
<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">
  <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>/servlet/XFireServlet/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>XFireServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

客户端代码(一个java工程即可):
package test;

import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;

import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import cn.com.bean.Course;
import cn.com.bean.User;
import cn.com.service.IHelloService;

public class ClientTest {

         public static void main(String[] args) throws MalformedURLException {
          //Service:是一个服务端点,它的工作是处理XML消息
         Service srvcModel = new ObjectServiceFactory().create(IHelloService.class);
             /*XFireProxyFactory:
      *  该工厂用来创建XFire SOAP客户端的远程对象,返回的实例将调用
      *  远程对象的所有方法
      */
     XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
    
          String helloWorldURL = "http://localhost:8088/testWebService2/services/HelloService";
        
         IHelloService service = (IHelloService)factory.create(srvcModel,helloWorldURL);
        
         System.out.println(service.sayHello("Robin"));
        
         User u = new User();
         u.setName("RRRRR");
         Course c = service.choose(u);
        
         System.out.println(c.getName());

         List list = new ArrayList();
         list.add("test1");
         list.add("test2");
        
         List tempList = service.test(list);
         for(int i=0;i<tempList.size();i++){
        Course course = (Course)tempList.get(i);
        System.out.println(course.getName());
         }
}

}



XFire框架实现WebService(二)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服
XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服
开发服务端: 1.下载需要的包:http://xfire.codehaus.org/Download。 2.创建项目名称为XfireWebSer
目录 构建项目 服务端实现 客户端测试 嵌入式HTTP服务发布服务 [一]、构建项目 创建项目 xfire-jsr1
在网上查了各种资料,实验了好多次,总是有些小地方耽误了,最后终于成功搭建出了xfire,回想起来其
1、WebService与XFire简介 WebService即分布式开发,是将一个完整的项目拆分为多个项目,分别完成前
一、正所谓“工欲善其事,必先利其器”,下面就先来配置运行环境吧! 下载xfire-distribution-1.2.6
上一篇:Java使用xFire组件开发WebService傻瓜教程(一) 文章已经配置好了WebService Server端,现
.首先建立一个web service工程: 点击finish之后,myeclipse自动帮你生成services.xml以及web应用目
初识Axis1就要把它集成到Spring框架上。一方面是当时的项目要求,在一方面更是我对于Spring情有独钟
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号