项目采用了s2sh,在之前的基础上添加了对jBPM的支持,Action、Service、Dao等均由spring管理和维护,因此将jbpmConfiguration也交给spring,配置如下:
<!-- jBPM configuration -->
<bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
<property name="configuration" value="classpath:jbpm.cfg.xml"/>
</bean>
重启tomcat,发现报异常,重要的异常信息如下
Caused by: java.lang.IllegalArgumentException: a beanFactoryReference already exists for key jbpmConfiguration
于是,开始查找原因,经过一番努力,知道是产生了两个spring的beanFactory造成的,想到除了s2sh集成时初始化的一个ApplicationContext之外,由于需要曾自定义过一个ServletContextListener的实现类MyServletContextListener。果然对于ClassPathXmlApplicationContext,我使用ApplicationContext ctx= new ClassPathXmlApplicationContext("applicationContext.xml"); 重新创建了一个ApplicationContext,所以造成了上边的异常。
接下来就是如何解决了,经过查找,终于知道使用WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
其中,sce对应ServletContextEvent的实例
重启web容器,还是报异常,重点如下:
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered? 和java.lang.NullPointerException
我明明配置了ContextLoaderListener ,可是却说我没有注册,这是何道理!但还是要从自身找问题的,经过一番Debug和查找后,终于发现是web.xml里配置listener的时候,顺序有问题。正确的顺序应该是ContextLoaderListener位于自定义的之前,而我配置的顺序正好相反;改为正确配置,于是一切恢复正常了。。。
接口:
org.springframework.context.ApplicationContext
org.springframework.web.context.WebApplicationContext
javax.servlet.ServletContextListener
类:
org.springframework.context.support.ClassPathXmlApplicationContext
org.springframework.web.context.support.WebApplicationContextUtils
javax.servlet.ServletContextEvent
分享到:
相关推荐
spring-data-gemfire, Java的Spring Data GemFire集成 Spring Data GemFireweb服务的主要目标是使用关键 GemFire 作为基础分布,在内存数据管理平台中,使用关键GemFire来构建高可伸缩性。高可用性。...
在使用Eclipse进行项目管理、调试和其他开发任务时,可能会遇到一些错误提示,其中“A configuration with this name already exists”是比较常见的问题之一。这个问题通常发生在配置远程调试或者是项目配置文件命名...
- 子游戏项目避免命名为“helloworld”,以防类名冲突,导致"Class already exists with the same __cid__"错误,影响游戏启动。 2. **热更新服务器**: - 使用WebStorm创建一个Express项目(hotupdate),作为热...
Topic Already Exists(处理方案).md
Store Already Exists(解决方案).md
在安装MySQL时,有时会遇到错误提示"A Windows service with the name MySQL already exists",这表明在Windows操作系统中,已经有一个名为MySQL的服务存在。这通常是因为之前的MySQL安装未完全卸载,或者服务残留...
包括`innodb_buffer_pool_size`(InnoDB缓存池大小)、`key_buffer_size`(MyISAM键缓存大小)、`sort_buffer_size`(排序缓冲大小)、`read_buffer_size`(读取缓冲大小)等,用于控制数据库在内存中处理数据的...
mysql安装及问题汇总mysql安装及问题汇总mysql安装及问题汇总
当尝试使用Gemfire缓存运行... 但是,配置Gemfire会导致上下文加载器抛出IllegalArgumentException : Caused by: java.lang.IllegalArgumentException: a beanFactoryReference already exists for key cacheFactoryB
搭建FTP解决虚拟机文件保存及与真机文件相互访问问题 本资源的主要目的是搭建FTP服务器,以解决虚拟机的文件保存及与真机文件相互访问问题。下面是实现该功能的详细步骤: 配置网络互通 在开始之前,需要配置网络...
django迁移模型常见错误django.db.utils.InternalError: (1050, “Table ‘django_content_type’ already exists”)” 这个问题经常出现在迁移模型时报错,表示该表已经存在,说明之前进行过模型的迁移操作。 例如...
MySQL是一个流行的开源数据库管理系统,广泛应用于中小型网站和应用程序中。在使用MySQL数据库的过程中,可能会遇到各种错误代码,这些错误代码通常会提供关于问题的详细信息,便于开发者快速定位并解决问题。...
### Eclipse初始安装配置详解与常见问题解决方案 #### 平台安装与配置 ...其灵活的架构允许用户通过插件扩展其功能,使其成为软件开发者的首选工具之一。以下是对Eclipse初始安装配置过程的详细解析: ...
这是一个navicat激动工具的全套装,本人亲测可用哦。大家放心下载,纯绿色无毒的哟。下载文件后参考我的博客进行激活:https://blog.csdn.net/zeng308041977/article/details/81662189
调色板(Palette)快捷工具栏不见了;如何把NAME 列在 scrip里显示出来;自增长列的设置;设置CDM生成PDM时的错误检查;禁止根据name自动输入code等
if (array_key_exists('a', $a)) { echo 'Key exists!'; } else { echo 'Key does not exist!'; } ``` 这段代码会输出“Key exists!”,因为键'a'确实存在于数组$a中。 在性能方面,array_key_exists()函数相比in...
继续使用上述表`A`和`B`的例子,如果我们想要找出表`A`中那些不在表`B`中存在的记录,可以使用`NOT EXISTS`: ```sql SELECT id, name FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE A.id = B.aid); ``` #### ...
`laravel-route-key-exists` 提供了一种验证规则,用于确保在处理自定义路由时,用户提供的路由参数(通常是模型的ID)实际存在于数据库中。这种验证规则能有效防止因为无效的路由键值导致的错误,提高应用的安全性...