0 0

xfire服务器端返回自定义对象中包含hashmap的问题 10

我在项目中遇到这样一个问题,webservice服务器段用xfire实现,暴露的service方法返回一个自定义的对象ClaimNodeTimes(后面会贴出代码),这个对象中一个属性refusePayReason是HashMap<string,string>类型。

然后我用xfire的eclipse插件生成的测试代码进行测试,发现ClaimNodeTimes对象中的基本类型属性都能取到值,但是refusePayReason是空的,哪位遇到过这种问题,麻烦给解释下。

贴出代码如下:

自定义对象ClaimNodeTimes

public class ClaimNodeTimes {


 private HashMap<string,string> refusePayReason;



 public HashMap<string,string> getRefusePayReason() {
  return refusePayReason;
 }


 public void setRefusePayReason(HashMap<string,string> refusePayReason) {
  this.refusePayReason = refusePayReason;
 }



}

 

这里还有个问题,我看xfire的文档中说使用java5的泛型,就可以不用对collections 做aegis binding,但我发现即便使用了泛型在客户端生成的代码中refusePayReason的类型仍然是anyType2anyTypeMap,所以还是写了aegis binding,refusePayReason的类型就成了String2StringMap,如下:

 

<!---->   
<mappings xmlns:vo="http://vo.customer.claim.picc.com.cn">
<mapping name="vo:ClaimNodeTimes">  
<property name="refusePayReason" keytype="java.lang.String" componenttype="java.lang.String">
</mapping>   
</mappings> 

 

暴露的service:

public interface CustomerWebServices {

public ClaimNodeTimes findClaimNodeTimesByRegistNo(String registNo);

}

 

对service的aegis binding:

<mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xsi:schemalocation="http://xfire.codehaus.org/schemas/1.0/mapping.xsd ">
  <mapping>
    <method name="findClaimNodeTimesByRegistNo">
      <return-type componenttype="cn.com.picc.claim.customer.vo.ClaimNodeTimes">
    </method>
  </mapping>
</mappings>

 

服务器端xfire的配置:

<!---->

<beans>
 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="urlMap">
   
    <entry key="/CustomerWebServices">
     <ref bean="customers">
    </entry>

   
  </property>
 </bean>
 
 
 <bean id="customers" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false">
  <property name="serviceFactory">
   <ref bean="xfire.serviceFactory">
  </property>
  <property name="xfire">
   <ref bean="xfire">
  </property>
  <property name="serviceBean">
   <ref bean="customerWebServices">
  </property>
  <property name="serviceClass">
   <value>cn.com.picc.claim.customer.service.facade.CustomerWebServices</value>
  </property>
 </bean>


</beans>

 

 

service配置:

<!---->

<beans default-autowire="byName" default-lazy-init="true">

<bean id="customerWebServices" class="cn.com.picc.claim.customer.service.spring.CustomerWebServiceSpringImpl" scope="prototype">

</beans>

 

下面是用xfire的eclipse插件生成的测试代码:

public class TestMain {
 public static void main(String[] args){
  CustomerWebServicesClient client=new CustomerWebServicesClient();
  ClaimNodeTimes array = client.getCustomerWebServicesHttpPort()
  .findClaimNodeTimesByRegistNo("RDAA200835020000004015");

String2StringMap temp = array.getRefusePayReason().getValue();
  List list = temp.getEntry();
  System.out.println(list.size());

}

 

 

我debug的时候,在服务器端接口实现中ClaimNodeTimes对象的refusePayReason是有值的,但list的size为0.

哪位能指点一下?

 

SOA 
2008年11月26日 21:54
目前还没有答案

相关推荐

    XFire服务器端所用的jar

    这个压缩包包含了XFire服务器端运行所需的Java类库,即.jar文件,这些文件是Java应用程序执行时的二进制格式,包含了编译后的代码和其他资源。 1. **XFire核心功能**: XFire的核心功能包括网络通信、游戏状态管理...

    XFire返回自定义实体类实例

    本教程将深入探讨如何使用XFire来返回自定义的实体类实例。 首先,了解XFire的基本概念。XFire是Apache CXF项目的一部分,它支持基于SOAP和RESTful的Web服务。XFire通过使用Java注解或XML配置文件,使得开发者可以...

    XFire Webservice 服务器端

    XFire Webservice 服务器端是一个专门用于游戏社区的网络服务接口,它允许开发者与XFire游戏客户端进行交互,实现各种功能,如用户登录、好友系统、游戏统计等。在这个压缩包文件中,"WSA"可能代表Web Service ...

    xfire服务器端

    【xfire服务器端】是一个基于xfire和Spring框架构建的服务器端示例,它展示了如何在实际开发中整合这两者来实现高效、灵活的Web服务。Xfire是一款强大的SOAP和RESTful Web服务框架,它允许开发者快速创建和部署Web...

    java xfire webService服务器端

    在本文中,我们将深入探讨Java XFire在构建Web服务服务器端的角色,以及如何利用它进行开发。 首先,让我们理解Web服务的基本概念。Web服务是一种基于互联网的软件应用,它提供了一种标准化的方式,使不同系统之间...

    xfire 使用外部类、返回collection及输入数组参数示例

    在这个“xfire 使用外部类、返回collection及输入数组参数示例”中,我们将深入探讨如何利用Xfire来处理复杂的参数类型,包括外部类引用、集合(Collection)返回以及数组作为输入参数。 ### 1. 外部类的使用 在...

    xfire客户端端开发的JAR包

    XFire客户端的开发涉及多个技术层面,其中包括Java编程语言,因为此处提到的是"xfire客户端端开发的JAR包"。JAR(Java Archive)文件是Java平台特有的归档格式,用于封装Java类库,便于分发和运行。以下是对这些知识...

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

    在本文中,我们将探讨XFire框架在开发Web服务中的实践应用,以及如何处理复杂对象的传递。XFire作为MyEclipse 5.5默认的Web服务框架,虽然可能现在不是主流选择,但它提供的IDE支持使得环境配置和开发相对简便。 ...

    xfire+webService 客户端和服务器端的例子

    xfire+webService 客户端和服务器端的例子 xfire-distribution-1.2.6.zip 是xfire的包,网上可以下载的,本人已经下载完毕。 另附两个xfire的配制文档,供大家参考。 XFire-WebService.pdf Xfire WebService...

    在MyEclipse中使用XFire开发WebService

    1. 定义`Order`类,并在服务器端方法中使用,如`public boolean addOrder(Order order)`。 2. 在客户端,使用对象工厂类`com.newer.bean.ObjectFactory`来创建`Order`对象及其属性,例如: ```java ...

    xfire的webservice项目demo

    这个"xfire的webservice项目demo"是一个实践性的示例,展示了如何使用Xfire来实现Web服务的服务器端和客户端。 首先,我们要理解Web服务的工作原理。Web服务的基本概念是将业务逻辑封装成一系列可以远程调用的方法...

    Xfire调用webservice无法传递参数问题

    1. **编码问题**:确保客户端和服务器端都使用相同的字符编码。如果编码不一致,可能会导致参数值在传输过程中发生乱码。检查请求和响应的编码设置。 2. **参数序列化**:Xfire在发送请求时会将Java对象序列化为XML...

    Xfire调用webservice无法接收到参数问题解决

    在Xfire中,客户端通过发送SOAP消息到服务端来调用服务,服务端处理请求后返回响应。 标题"Xfire调用webservice无法接收到参数问题解决"指出的核心问题是:当使用Xfire作为客户端调用Web服务时,服务端无法正确接收...

    xfire+webservice(服务器配置篇)

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

    xfire依赖jar包

    xfire是一个早期流行的开源Web服务框架,主要用于构建SOAP(简单对象访问协议)和RESTful(Representational State Transfer)服务。这个框架使得Java开发者能够轻松地创建、部署和消费Web服务。xfire依赖于一系列的...

    XFire创建的WebService

    在本例中,我们将探讨如何使用XFire来创建一个简单的WebService服务器端。 首先,让我们了解什么是Web服务。Web服务是一种通过网络(通常使用HTTP协议)进行通信的应用程序接口。它们允许不同系统之间的数据交换,...

    xfire-1.2.6.rar xfire-1.2.6.rar xfire-1.2.6.rar

    首先,`xfire-all-1.2.6.jar`是核心库文件,它集成了XFire的所有功能,包括网络协议处理、游戏状态同步、服务器发现等。开发人员可以通过导入这个JAR文件,快速地在项目中集成XFire的全部功能,实现游戏服务器间的...

    XFire令WebService如此简单

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

    Xfire API,Xfire帮助文档

    为了更好地理解和使用Xfire API,开发者可以参考提供的帮助文档,文档中通常会包含API接口的详细说明、示例代码以及常见问题解答。对于初学者,理解每个API方法的功能和参数、以及如何正确构造HTTP请求是非常重要的...

Global site tag (gtag.js) - Google Analytics