浏览 2332 次
|
该帖已经被评为新手帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2006-12-12 关键字: Proxool spring
Hi,大家好:
我使用的框架如下:Spring+Hibernate+Struts+Proxool(数据连接池) 我的classpath下有以下文件: proxool.xml spring-context.xml spring-context-blog.xml spring-context-passport.xml 我是在WEB-INF/struts-config.xml里配置的Spring如下: <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/classes/spring-context.xml,/WEB-INF/classes/spring-context-blog.xml,/WEB-INF/classes/spring-context-passport.xml" /> </plug-in> proxool.xml文件如下: <?xml version="1.0" encoding="utf-8"?> <proxool-config> <proxool> <alias>oraclePool</alias> <driver-url>jdbc:oracle:thin:@192.168.0.10:1521:xao2</driver-url> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <driver-properties> <property name="user" value="xxx"/> <property name="password" value="xxx"/> </driver-properties> <house-keeping-sleep-time>90000</house-keeping-sleep-time> <proxool.simultaneous-build-throttle>100</proxool.simultaneous-build-throttle> <prototype-count>10</prototype-count> <maximum-connection-count>100</maximum-connection-count> <minimum-connection-count>10</minimum-connection-count> </proxool> </proxool-config> Spring-context.xml中关于SessionFactory的配置如下: <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" singleton="true"> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.proxool.xml">proxool.xml</prop> <prop key="hibernate.proxool.pool_alias">oraclePool</prop> <prop key="hibernate.cglib.use_reflection_optimizer">true</prop> <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop> </props> </property> <property name="mappingDirectoryLocations"> <list> <value>classpath:/com/xxx/framework/hbms</value> </list> </property> </bean> 问题是这样的: 使用Spring自动注入的Bean时没有问题,但是因为程序需要,我现要要用代码的方式从ApplicationContext中得到Bean,于是我写了一个类如下: public class BlogAppContext { private static BlogAppContext instance; private ApplicationContext blogAppContext; public synchronized static BlogAppContext getInstance() { if (instance == null) { instance = new BlogAppContext(); } return instance; } private BlogAppContext() { this.blogAppContext = new ClassPathXmlApplicationContext(new String[] { "classpath:spring-context.xml","classpath:spring-context-blog.xml" }); } public ApplicationContext getBlogAppContext() { return blogAppContext; } } 这个java类我想是没有问题的,我在Action中用下面代码得到Bean: BlogProfileDTO blogProfileDTO = (BlogProfileDTO) BlogAppContext .getInstance().getBlogAppContext() .getBean("blogProfileDTO"); 但是产生了下面的错误,我在网上查了许多资料,但是还是没有解决问题,希望有丰富经验的朋友们给点思路,指点一下,谢谢了。 HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: Error creating bean with name 'mySessionFactory' defined in class path resource [spring-context.xml]: Initialization of bean failed; nested exception is org.hibernate.HibernateException: Proxool Provider unable to load JAXP configurator file: proxool.xml org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.tuckey.web.filters.urlrewrite.RewrittenUrl.doRewrite(RewrittenUrl.java:176) org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:728) root cause org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySessionFactory' defined in class path resource [spring-context.xml]: Initialization of bean failed; nested exception is org.hibernate.HibernateException: Proxool Provider unable to load JAXP configurator file: proxool.xml org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:403) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313) org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:87) org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:72) com.xao2.framework.util.BlogAppContext.<init>(BlogAppContext.java:20) com.xao2.framework.util.BlogAppContext.getInstance(BlogAppContext.java:13) com.xao2.framework.action.blog.ViewBlogProfileAction.execute(ViewBlogProfileAction.java:33) org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.tuckey.web.filters.urlrewrite.RewrittenUrl.doRewrite(RewrittenUrl.java:176) org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:728) note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs. Apache Tomcat/5.5.9 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2006-12-12
好像是缺少jar包吧!
|
|
| 返回顶楼 | |
|
时间:2006-12-12
daoger 写道 好像是缺少jar包吧!
啊? 缺少Jar包,缺少哪个呢?我加入了proxool最新的jar包。而且在spring配置文件让spring自动注册到service以及action中的bean都可以正常使用的:比如下面的配置片段: <action path="/blog/addEntry" name="blogEntryForm" input="/WEB-INF/blog/baidongli.ftl" type="org.springframework.web.struts.DelegatingActionProxy" scope="request" validate="true"> <forward name="write" path="/WEB-INF/blog/baidongli.ftl" /> <forward name="success" path="/WEB-INF/blog/addentrysuccess.ftl" /> </action> |
|
| 返回顶楼 | |
|
时间:2006-12-12
Proxool什么版本?好像高版本的有冲突,降版本试试。
|
|
| 返回顶楼 | |
|
时间:2006-12-12
laoer 写道 Proxool什么版本?好像高版本的有冲突,降版本试试。
版本号是:0.8.3 还要降吗?laoer你怎么没上MSN啊。 |
|
| 返回顶楼 | |
|
时间:2007-03-01
好像是<prop key="hibernate.proxool.xml">proxool.xml</prop>的"proxool.xml"路径不对
|
|
| 返回顶楼 | |






