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”来查看是否部署成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值