`
baobeituping
  • 浏览: 1068496 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

XFire发布WebService方法如果返回的是LIST的处理

阅读更多

1.实体类

package com.flex;

public class Revenue {

 private String product;
 private String quarter;
 private String amount;
 public String getProduct() {
  return product;
 }
 public void setProduct(String product) {
  this.product = product;
 }
 public String getQuarter() {
  return quarter;
 }
 public void setQuarter(String quarter) {
  this.quarter = quarter;
 }
 public String getAmount() {
  return amount;
 }
 public void setAmount(String amount) {
  this.amount = amount;
 }
}
2.服务类

package com.flex;

import java.util.ArrayList;
import java.util.List;

public class RevenueServicer {
 
 private Revenue rev;
 private List lstRevenue;
 
 public List searchRevenue(String filed,String fieldValue) throws Exception{
  lstRevenue = new ArrayList();
  if(filed.equals("Quarter"))
  {
   if(fieldValue.equals("Q1"))
   {
    rev = new Revenue();
    rev.setAmount("45897.7");
    rev.setProduct("TV");
    rev.setQuarter("Q1");
    lstRevenue.add(rev);
    
    rev = new Revenue();
    rev.setAmount("32931.7");
    rev.setProduct("Camera");
    rev.setQuarter("Q1");
    lstRevenue.add(rev);
    
    rev = new Revenue();
    rev.setAmount("1568.4");
    rev.setProduct("MobilePhone");
    rev.setQuarter("Q1");
    lstRevenue.add(rev);
   }
  }
  if(filed.equals("Product"))
  {
   if(fieldValue.equals("TV"))
   {
    rev = new Revenue();
    rev.setAmount("12345.7");
    rev.setProduct("TV");
    rev.setQuarter("Q1");
    lstRevenue.add(rev);
    
    rev = new Revenue();
    rev.setAmount("34567.7");
    rev.setProduct("TV");
    rev.setQuarter("Q2");
    lstRevenue.add(rev);
    
    rev = new Revenue();
    rev.setAmount("4567.4");
    rev.setProduct("TV");
    rev.setQuarter("Q3");
    lstRevenue.add(rev);
   }
  }
  return lstRevenue;
 }

}

3.接口类

package com.flex;

import java.util.List;

public interface RevenueService {

 public abstract List getRevenueByQuarter(String quarter);

 public abstract List getRevenueByProduct(String quarter);

}

4.接口实现类

package com.flex;

import java.util.ArrayList;
import java.util.List;

public class RevenueWSImpl implements RevenueService {

 private Revenue rev;
 private List lstRevenue;
 public Revenue getRev() {
  return rev;
 }
 public void setRev(Revenue rev) {
  this.rev = rev;
 }
 public List getLstRevenue() {
  return lstRevenue;
 }
 public void setLstRevenue(List lstRevenue) {
  this.lstRevenue = lstRevenue;
 }
 
 /* (non-Javadoc)
  * @see com.flex.RevenueService#getRevenueByQuarter(java.lang.String)
  */
 public List getRevenueByQuarter(String quarter){
  lstRevenue = new ArrayList();
  try {
   RevenueServicer r = new RevenueServicer();
   lstRevenue=r.searchRevenue("Quarter", quarter);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return lstRevenue;
 }
 /* (non-Javadoc)
  * @see com.flex.RevenueService#getRevenueByProduct(java.lang.String)
  */
 public List getRevenueByProduct(String quarter){
  lstRevenue = new ArrayList();
  try {
   RevenueServicer r = new RevenueServicer();
   lstRevenue=r.searchRevenue("Product", quarter);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return lstRevenue;
 }
}
5.配置/META-INF/xfire/services.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
 <service>

       <name>ws</name>

       <namespace>firstws</namespace>

       <serviceClass>com.flex.RevenueService</serviceClass>

       <implementationClass>com.flex.RevenueWSImpl</implementationClass>

    </service>

 
</beans>

6.因为方法返回的是LIST,所以我们要求再配置一个转换文件,告诉XFIRE我们需要转换返回的类型

注意点,该转换类型必须是以接口的名字+aegis.xml结束

/com/flex/RevenueService.aegis.xml

<?xml version="1.0" encoding="UTF-8"?>
<mappings>
    <mapping>
        <method name="getRevenueByProduct">
            <parameter index="0" componentType="java.lang.String"/>
            <return-type componentType="com.flex.Revenue"/>
        </method>
        <method name="getRevenueByQuarter">
            <parameter index="0" componentType="java.lang.String"/>
            <return-type componentType="com.flex.Revenue"/>
        </method>
    </mapping>
   
</mappings>

7.发布部署通过“http://127.0.0.1:8080/XFireForFlex/services/ws?wsdl”来查看是否部署成功

分享到:
评论

相关推荐

    xfire构建WebService例子

    本教程将详细讲解如何使用XFire来创建和消费一个简单的WebService。 首先,我们需要理解什么是XFire。XFire(现已被Apache CXF项目吸收)是一个基于Java的Web服务栈,它简化了SOAP(简单对象访问协议)和WS-*(Web...

    Java使用XFire调用WebService接口.docx编程资料

    ### Java使用XFire调用WebService接口 #### 一、引言 随着互联网技术的发展,不同系统之间的通信变得越来越重要。WebService作为一种重要的分布式计算技术,在跨平台、跨语言的服务交互方面发挥着重要作用。本文将...

    spring+xfire( 编写webservice完整配置+案例)

    &lt;param-name&gt;xfire.serviceList &lt;param-value&gt;/services/* &lt;servlet-name&gt;xfire &lt;url-pattern&gt;/services/* ``` 6. **测试和调用Web服务**: 现在,你可以通过SOAP请求来调用这个Web服务。你可以使用像 ...

    Spring XFire 实现webService

    4. 启动XFire:在Spring启动时,会自动初始化XFire并发布Web服务。 通过上述步骤,你已经成功地将Spring与XFire集成,实现了Web服务的发布。此外,XFire还支持WSDL第一和代码第一的开发模式,可以根据项目需求选择...

    XFire令WebService如此简单

    但如果方法的返回类型是List或Map,并且包含自定义对象,我们需要额外的配置文件来描述这些复杂类型。例如,如果接口方法`getUsers`返回一个`List&lt;User&gt;`,我们需要一个名为`HelloWorld.aegis.xml`的文件: ```xml ...

    xfire+webservice(服务器配置篇)

    ### xfire+webservice(服务器配置篇) #### 知识点概述 本文档主要介绍了如何在现有的Spring2.5+Hibernate3.2基础上添加XFire来实现WebService服务的配置过程。通过逐步指导的方式,帮助读者了解整个配置流程,并...

    Xfire Spring Hibernate 发布WebService

    【Xfire Spring Hibernate 发布WebService】是将Xfire、Spring和Hibernate这三种技术结合,用于在MyEclipse环境中创建和发布Web服务。Xfire是一个基于Java的SOAP和REST Web服务框架,Spring则提供了依赖注入和AOP...

    webservice的xfire

    在描述的“webservice的xfire写法”中,我们将看到如何创建和使用XFire服务。首先,你需要在服务器端定义一个Java接口,这个接口将暴露为Web服务。接口中的方法会映射到SOAP操作。接着,实现这个接口,并使用注解...

    MyEclipse8.0GA下使用Xfire框架开发WebService实例

    - 注意:如果方法涉及到 List 或 Map 类型的参数,建议使用泛型。 ##### 7. 重新部署并测试 - 在 Tomcat 中重新部署项目。 - 通过浏览器访问 `...

    Webservice实例

    在ws_helloword这个文件中,可能包含了使用xFire创建的简单WebService示例,如"HelloWorld"服务,它可能有一个返回字符串的接口方法,也可能有展示如何返回一个包含多个元素的List的示例。通过学习这个实例,开发者...

    Axis2发布和调用webservice

    描述了axis2如何发布webservice,如果是用MyEclipse来发布,需要安装插件,把你发布后的.aar文件放 入/web/WEB-INF/services/目录中就能被访问和调用,有点繁琐,但axis2功能十分强大,方法的返回类型不仅可 以用...

    XFire开发实践记录-包括环境准备与复杂对象的配置方法

    这个XML文件用于映射方法参数和返回类型,例如,定义一个接受`Person`对象并返回`List&lt;Person&gt;`的方法。XML内容如下: ```xml ``` 在客户端,调用这样的复杂对象Web服务需要创建一个`Service`模型,...

    Xfire使用说明文档

    这样,所有以`/services/`开头的请求都会被Xfire处理。 4. 编写Service接口:按照JAX-WS规范,你可以通过使用`@WebService`注解来标记接口,例如`MyUserService`。接口中的方法将作为Web服务的方法暴露。例如,`...

    WebService--xfire中对集合的配置和操作

    这篇博客“WebService--xfire中对集合的配置和操作”可能主要讨论了如何在XFire中处理集合类型的数据,包括数组、List或Set等。 在XFire中,配置是关键部分,它涉及到服务的定义、绑定以及数据的序列化和反序列化。...

    spring 集成xfire 比较好的一种方式

    Spring 和 XFire 的集成是构建基于 SOAP 的 Web 服务的一种高效方法。XFire 是一个 Java 框架,专门用于创建和消费 Web 服务,而 Spring 框架则提供了全面的企业级应用开发支持。将这两者结合可以利用 Spring 的强大...

    xfire+spring+maven构建webservice服务器和客户端

    Spring与XFire的集成使得开发者可以方便地在Spring应用上下文中发布和消费Web服务。 Maven是一个项目管理和综合工具,它通过定义项目对象模型(POM)来管理项目构建、报告和依赖关系。Maven简化了构建过程,自动...

    webservice

    通过XFire,开发者可以将Java类的方法发布为WebService,而无需编写额外的代码。这种方式极大地简化了开发流程,并提高了开发效率。 ### MyEclipse中的WebService创建步骤 在MyEclipse中创建WebService通常涉及...

Global site tag (gtag.js) - Google Analytics