-
把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
-------------------------------------------------------------
不知为什么会这样不解
2009年1月13日 16:08
3个答案 按时间排序 按投票排序
-
采纳的答案
这个就是延迟加载的问题啦。。。
引用
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
-
去掉延迟加载呢?
或者是你在service里调用一次getWorkFlow()看看有没有被实例化。
如果你在service里调用时被实例化了。那就那样调用一次放那,应该就可以了2009年1月14日 12:53
-
现在的问题是:
rf.getWorkFlow() == null
是不是延迟加载的问题?
你可以参考一下这篇文章:
http://chengyao.iteye.com/blog/85622
2009年1月14日 10:36
相关推荐
以下是关于"Xfire配置Web Service+Spring+Hibernate详细配置流程"的知识点详解: 1. **Spring框架**: Spring是Java企业级应用开发的首选框架,提供依赖注入(DI)和面向切面编程(AOP)。在Web服务场景中,Spring...
本案例中的"xfire+spring+hibernate"是一种早期的整合方式,它将Web服务(通过XFire实现)、Spring框架的依赖注入与管理以及Hibernate的持久层处理结合在一起。以下是对这种整合方式的详细解释。 1. **XFire**:...
在提供的压缩包文件"xfire+spring"中,可能包含了相关的示例代码、配置文件或者教程文档,帮助开发者理解并实践这一整合过程。通过学习这些资源,你可以深入理解如何将这两个强大的工具结合起来,构建出既高效又安全...
### Xfire配置Web Service+Spring+Hibernate详细流程 在IT领域,尤其是企业级应用开发中,集成Web Service、Spring框架以及Hibernate技术是非常常见的需求。本文将深入解析如何使用Xfire来配置并集成这三个核心技术...
本实例"Spring+Hibernate+Struts+XFire的WebService"提供了一个全面的框架整合,用于创建功能丰富的Web服务。以下将详细解析这个实例所涉及的技术点: 1. **Spring框架**:Spring是一个开源的Java平台,它为开发...
标题中的"Spring+Hibernate+Xfire"是一个集成开发的框架组合,主要应用于Java后端开发。这个组合将Spring的依赖注入、事务管理等优势,与Hibernate的持久化能力,以及Xfire的Web服务支持相结合,形成一个强大的企业...
总的来说,Xfire配置Web Service+Spring+Hibernate的详细流程涉及到以下几个关键步骤: 1. 配置Xfire,定义Web服务接口和实现。 2. 引入Spring,配置bean和依赖注入。 3. 集成Hibernate,配置数据库连接和...
Spring+Hibernate+Xfire+发布WebService教程文档
"spring3+hibernate4+struts2+maven全注解整合"的主题意味着将这四个组件通过注解的方式进行集成,以构建一个高效且易于维护的Web应用。 Spring是企业级Java应用程序的核心框架,它提供了依赖注入(DI)和面向切面...
标题中的“xfire+spring+webservice+client”是一个关于集成XFire、Spring框架和Web服务客户端的专题,这涉及到Java开发中的一项重要技术——Web服务的消费与提供。在这个主题下,我们将深入探讨以下几个核心知识点...
这里我们关注的是一个整合了Spring 2.0、Hibernate 3.0、Struts 1.1以及XFire 1.2的项目。这些技术都是Java Web开发中的重要组件,各自在应用程序的不同层面提供服务。 Spring 2.0是Java企业级应用中的一个核心框架...
Spring 和 XFire 是一个经典的组合,用于在Java应用程序中创建和消费Web服务。Spring作为一个强大的框架,提供了全面的依赖注入和面向切面编程能力,而XFire是早先的Web服务实现,它允许开发者轻松地将Java接口转换...
当我们将XFire与Spring进行整合时,我们可以利用Spring的强大功能来管理Web服务的生命周期,并且更容易地集成到现有的Spring应用中。 XFire与Spring的整合主要涉及以下几个关键知识点: 1. **Spring的Bean管理**:...
收集的Java Web整合开发实战:基于Struts 2+Hibernate+Spring-源代码,看到其他人下载币要的太多,给大家分享一下。 不是很全,但可以拿来参考了。 由于大小限制,还有另外一个包······
在Spring中整合Xfire,我们可以轻松地暴露Spring beans为Web服务,或者消费其他Web服务。Xfire提供了自动代码生成、WSDL文档生成以及强大的异常处理机制,简化了Web服务的开发和调试。 实现远程分布式调用的基本...
本教程主要针对初学者,旨在通过一个清晰、简单的项目,介绍如何将XFire与Spring进行整合。 1. **环境准备** 在开始整合前,确保你已经安装了Java SDK,设置了JDK环境变量,并在项目中引入了XFire和Spring的相关库...
applicationContext.xml 一直是放置在WEB-INF目录下的就可以了,原文档后期补充的那点对这个文件的描述好像有些乱 另外,IHello等类的包随便默认哪个都行,文中该类的位置前面是factory后面就改到service中去了
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开发中的各种相关技术及知识。全书分为9篇,内容层次清晰,难度循序渐进。第1篇为入门篇,内容包括Java Web开发概述等;第2篇...
"cxf+spring+hibernate集成整合jar包"就是这样一个集合,它将三个关键的技术框架——CXF、Spring和Hibernate整合在一起,为开发人员提供了一个强大的后端服务开发平台。以下是对这些技术及其集成的详细解释。 **CXF...