0 0

把xfire整合到spring+hibernate框中当查询一个对像时报空指针异常10

问题如下:
接口
public interface FlowService {

    // 查询已发布的流程并且已添加了表单模板
public List findReleaseFlowAndTemp(Map filter);
}
---------------------------------------------------------------------------
在接口FlowService的同一文件文件夹下增加了FlowService.aegis.xml文件内容如下

<mappings>
    <mapping>
        <method name="findReleaseFlowAndTemp">
            <parameter index="0" componenttype="java.lang.String">
            <return-type componenttype="com.acms.demon.workflow.model.ReleaseFlow">
        </method>
    </mapping>
</mappings>
------------------------------------------------------------------------------
该接口有一方法返加一个List集合里面存放ReleaseFlow对像,这个对像中有一个自定义的WorkFlow对像,
在ReleaseFlow对像的同一文件夹下增加了
ReleaseFlow.aegis.xml文件内容如下
  
<mappings xmlns:my="http://com.acms.demon.workflow">  
  <mapping name="my:ReleaseFlow">  
    <property name="workFlow" ignore="true">
  </mapping>  
</mappings>
----------------------------------------------------------------------
实现类
public class FlowServiceImpl  implements FlowService{
private WorkflowDAO workFlowDAO;

public WorkflowDAO getWorkFlowDAO() {
return workFlowDAO;
}
public void setWorkFlowDAO(WorkflowDAO workFlowDAO) {
this.workFlowDAO = workFlowDAO;
}
public List findReleaseFlowAndTemp(Map filter) {

return workFlowDAO.findReleaseFlowAndTemp(filter);
}
-----------------------------------------------------------------------
能正常生成wsdl文件
在客户端测式findReleaseFlowAndTemp方法时能从数据查询到一个结果集返加给我这个方法.但是当从结果集中取出WorkFlow对像的一个属性进报空指针异常
ReleaseFlow rf=(ReleaseFlow)resultList.get(i);
rf.getWorkFlow().getProcessDefinitionName()这行是取出releaseFlow对像的属性Workflow对像的一个属性时报空指针异常,取其它值正常。

请各位帮忙看下如何解决谢谢!

问题补充:
现在的问题是:
rf.getWorkFlow() == null

是不是延迟加载的问题?

你可以参考一下这篇文章:
http://chengyao.iteye.com/blog/85622

感谢你的回复我就是参照这篇文章做的应该是延迟加载的问题,可能是没有加载但是不知如何解决
问题补充:
回复:汪兆铭

谢谢你的回复,我现在去掉了<property name="workFlow" ignore="true"> 也就是WorkFlow也被序列化,如果不去掉改其它地方也是rf.getWorkFlow() == null 。
---------------------------------------------------
同时在接口中增加以下方法
public ReleaseFlow findReleaseFlowById(String rid);
---------------------------------------------------

实现类的方法
public ReleaseFlow findReleaseFlowById(String rid) {
ReleaseFlow rf= workFlowDAO.findReleaseFlowById(rid);
System.out.println("WorkFlow实例化对像: "+rf.getWorkFlow());
return rf;
}
------------------------------------------------------
现在在客户端访问webservcie时可以通过
rf.getWorkFlow().getProcessDefinitionName()取到值,实现类的System.out.println("WorkFlow实例化对像: "+rf.getWorkFlow());
这行代码也能打印出对workflow对像已经实列化,但是如果去掉rf.getWorkFlow()方法在客户端rf.getWorkFlow()会抛空指针异常
-------------------------------------------------------
Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: could not initialize proxy - the owning Session was closed
org.codehaus.xfire.fault.XFireFault: could not initialize proxy - the owning Session was closed
-------------------------------------------------------------
不知为什么会这样不解

SOA 
2009年1月13日 16:08

3个答案 按时间排序 按投票排序

0 0

采纳的答案

这个就是延迟加载的问题啦。。。

引用

Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: could not initialize proxy - the owning Session was closed
org.codehaus.xfire.fault.XFireFault: could not initialize proxy - the owning Session was closed


当你的客户端已经取得到ReleaseFlow的时候,这个时候你服务端的Session已经关闭了。
要么你选择不对该字段使用延迟加载,要么就是自己编码在Session未结束之前(也就是你的Service方法执行完之前),显示的调用getWorkFlow(),加载延迟数据。

2009年1月14日 15:18
0 0

去掉延迟加载呢?
或者是你在service里调用一次getWorkFlow()看看有没有被实例化。
如果你在service里调用时被实例化了。那就那样调用一次放那,应该就可以了

2009年1月14日 12:53
0 0

现在的问题是:
rf.getWorkFlow() == null

是不是延迟加载的问题?

你可以参考一下这篇文章:
http://chengyao.iteye.com/blog/85622


2009年1月14日 10:36

相关推荐

    Xfire配置Web Service+Spring+Hibernate详细配置流程

    以下是关于"Xfire配置Web Service+Spring+Hibernate详细配置流程"的知识点详解: 1. **Spring框架**: Spring是Java企业级应用开发的首选框架,提供依赖注入(DI)和面向切面编程(AOP)。在Web服务场景中,Spring...

    xfire+spring+hibernate的一种整合方式

    本案例中的"xfire+spring+hibernate"是一种早期的整合方式,它将Web服务(通过XFire实现)、Spring框架的依赖注入与管理以及Hibernate的持久层处理结合在一起。以下是对这种整合方式的详细解释。 1. **XFire**:...

    xfire+spring+安全认证

    在提供的压缩包文件"xfire+spring"中,可能包含了相关的示例代码、配置文件或者教程文档,帮助开发者理解并实践这一整合过程。通过学习这些资源,你可以深入理解如何将这两个强大的工具结合起来,构建出既高效又安全...

    Xfire配置Web Service+Spring+Hibernate详细流程

    ### Xfire配置Web Service+Spring+Hibernate详细流程 在IT领域,尤其是企业级应用开发中,集成Web Service、Spring框架以及Hibernate技术是非常常见的需求。本文将深入解析如何使用Xfire来配置并集成这三个核心技术...

    spring+hibernate+struts+XFire的webService实例

    本实例"Spring+Hibernate+Struts+XFire的WebService"提供了一个全面的框架整合,用于创建功能丰富的Web服务。以下将详细解析这个实例所涉及的技术点: 1. **Spring框架**:Spring是一个开源的Java平台,它为开发...

    Spring+hibernate+Xfire

    标题中的"Spring+Hibernate+Xfire"是一个集成开发的框架组合,主要应用于Java后端开发。这个组合将Spring的依赖注入、事务管理等优势,与Hibernate的持久化能力,以及Xfire的Web服务支持相结合,形成一个强大的企业...

    Xfire配置Web Service+Spring+Hibernate详细流程(转)

    总的来说,Xfire配置Web Service+Spring+Hibernate的详细流程涉及到以下几个关键步骤: 1. 配置Xfire,定义Web服务接口和实现。 2. 引入Spring,配置bean和依赖注入。 3. 集成Hibernate,配置数据库连接和...

    Spring+Hibernate+Xfire+发布WebService

    Spring+Hibernate+Xfire+发布WebService教程文档

    spring3+hibernate4+struts2+maven全注解整合

    "spring3+hibernate4+struts2+maven全注解整合"的主题意味着将这四个组件通过注解的方式进行集成,以构建一个高效且易于维护的Web应用。 Spring是企业级Java应用程序的核心框架,它提供了依赖注入(DI)和面向切面...

    xfire+spring+webservice+client

    标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...

    spring2.0 hibernate 3.0 struts1.1 xfire1.2 整合

    这里我们关注的是一个整合了Spring 2.0、Hibernate 3.0、Struts 1.1以及XFire 1.2的项目。这些技术都是Java Web开发中的重要组件,各自在应用程序的不同层面提供服务。 Spring 2.0是Java企业级应用中的一个核心框架...

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

    Spring 和 XFire 是一个经典的组合,用于在Java应用程序中创建和消费Web服务。Spring作为一个强大的框架,提供了全面的依赖注入和面向切面编程能力,而XFire是早先的Web服务实现,它允许开发者轻松地将Java接口转换...

    xfire+Spring整合

    当我们将XFire与Spring进行整合时,我们可以利用Spring的强大功能来管理Web服务的生命周期,并且更容易地集成到现有的Spring应用中。 XFire与Spring的整合主要涉及以下几个关键知识点: 1. **Spring的Bean管理**:...

    Java Web整合开发实战:基于Struts 2+Hibernate+Spring-源代码.part1.rar

    收集的Java Web整合开发实战:基于Struts 2+Hibernate+Spring-源代码,看到其他人下载币要的太多,给大家分享一下。 不是很全,但可以拿来参考了。 由于大小限制,还有另外一个包······

    Spring+Hibernate+Xfire实现远程分布式调用

    在Spring中整合Xfire,我们可以轻松地暴露Spring beans为Web服务,或者消费其他Web服务。Xfire提供了自动代码生成、WSDL文档生成以及强大的异常处理机制,简化了Web服务的开发和调试。 实现远程分布式调用的基本...

    XFire整合spring webservice

    本教程主要针对初学者,旨在通过一个清晰、简单的项目,介绍如何将XFire与Spring进行整合。 1. **环境准备** 在开始整合前,确保你已经安装了Java SDK,设置了JDK环境变量,并在项目中引入了XFire和Spring的相关库...

    Xfire配置Web Service+Spring+Hibernate详细流程及补充+测试实例.rar

    applicationContext.xml 一直是放置在WEB-INF目录下的就可以了,原文档后期补充的那点对这个文件的描述好像有些乱 另外,IHello等类的包随便默认哪个都行,文中该类的位置前面是factory后面就改到service中去了

    JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例

    JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例(已上传) 1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、...

    Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)

    《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》全面介绍了Java Web开发中的各种相关技术及知识。全书分为9篇,内容层次清晰,难度循序渐进。第1篇为入门篇,内容包括Java Web开发概述等;第2篇...

    cxf+spring+hibernate集成整合jar包

    "cxf+spring+hibernate集成整合jar包"就是这样一个集合,它将三个关键的技术框架——CXF、Spring和Hibernate整合在一起,为开发人员提供了一个强大的后端服务开发平台。以下是对这些技术及其集成的详细解释。 **CXF...

Global site tag (gtag.js) - Google Analytics