首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

请各位帮忙看看这个有关问题该怎么解决?多谢

2012-06-14 
请各位大虾帮忙看看这个问题该如何解决?谢谢Java code严重: Exception sending context initialized event

请各位大虾帮忙看看这个问题该如何解决?谢谢

Java code
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/classes/spring/context-base.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name DSPPool is not bound in this Context    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)    at java.security.AccessController.doPrivileged(Native Method)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)    at org.apache.catalina.core.StandardService.start(StandardService.java:519)    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)    at org.apache.catalina.startup.Catalina.start(Catalina.java:581)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)    at java.lang.reflect.Method.invoke(Unknown Source)    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)Caused by: javax.naming.NameNotFoundException: Name DSPPool is not bound in this Context    at org.apache.naming.NamingContext.lookup(NamingContext.java:770)    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)    at javax.naming.InitialContext.lookup(Unknown Source)    at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:155)    at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:88)    at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:153)    at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178)    at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95)    at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)    at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:200)    at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:186)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)    ... 30 more2012-5-22 15:31:15 org.apache.catalina.core.StandardContext start严重: Error listenerStart2012-5-22 15:31:15 org.apache.catalina.core.StandardContext start严重: Context [/dsp] startup failed due to previous errors2012-5-22 15:31:15 org.apache.catalina.core.ApplicationContext log信息: Closing Spring root WebApplicationContext 


经检测配置的jndi,没有问题,但是当用myEclipse启动tomcat服务器的时候就报该异常~
context.xml配置
XML code
  <?xml version="1.0" encoding="UTF-8"?><Context>    <Resource name="DSPPool" auth="Container"        type="javax.sql.DataSource" maxActive="100" maxIdle="30"        maxWait="10000" username="dsp" password="dsp"        driverClassName="oracle.jdbc.OracleDriver"        url="jdbc:oracle:thin:@10.100.2.2:1521:orclbi" /></Context>

spring配置
XML code
      <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">        <property name="jndiName">            <value>java:DSPPool</value>        </property>    </bean>    

web.xml配置
XML code
      <resource-ref>        <description>DB Connection</description>        <res-ref-name>DSPPool</res-ref-name>        <res-type>javax.sql.DataSource</res-type>        <res-auth>Container</res-auth>    </resource-ref>


[解决办法]
貌似jndi名字错了吧?
<bean id="testDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/DSPPool</value>
</property>
</bean>


另外,最好前面加上jdbc,分类:
<Resource name="jdbc/DSPPool"
其它配置名称也对应增加。

[解决办法]
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:/DSPPool</value>
</property>
</bean>
应该加个 / 


[解决办法]
Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

这个错误。。。说明完全没得到配置信息啊。。。

JDBC driver 是 空字符串
URL 直接是NULL
[解决办法]
把:web.xml 的这项配置删掉吧。

应该是跟你Context.xml的配置冲突了。用全局配置好了,别用web.xml的。
[解决办法]
这是SSH项目吗?怎么会这样配置的。
[解决办法]
你的context.xml应该是放在 tomcat\conf 下的吧?这样就是全局的。

比如(我这里用的是MySQL),tomcat700\conf\context.xml:
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="DSPPool" auth="Container"
type="javax.sql.DataSource" maxActive="20" maxIdle="10"
maxWait="10000" username="root" password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3737/" />
</Context>


然后我直接用JSP测试:
HTML code
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false"%><%@page import="javax.naming.*"%><%@page import="java.sql.*"%><%@page import="javax.sql.*"%><%@page import="java.util.*"%><%  Context initContext = new InitialContext();     DataSource ds = (DataSource)initContext.lookup("java:/comp/env/DSPPool");   Connection conn = ds.getConnection();     try {    Statement stmt = conn.createStatement();    ResultSet rs = stmt.executeQuery("select 'HelloWorld'"); // 如果是Oracle,需要用 "Select 'HelloWorld' from dual"    while (rs.next()) {      String str = rs.getString(1);      out.println(str);      System.out.println(str);    }  } finally {    conn.close();  }%> 


[解决办法]
用web.xml的话应该也是覆盖更高层的相关配置的,more specific wins!
driverClassName
url
之类的数据源相关配置在web.xml中没填好吧
[解决办法]

探讨
用web.xml的话应该也是覆盖更高层的相关配置的,more specific wins!
driverClassName
url
之类的数据源相关配置在web.xml中没填好吧

[解决办法]
探讨

引用:
用web.xml的话应该也是覆盖更高层的相关配置的,more specific wins!
driverClassName
url
之类的数据源相关配置在web.xml中没填好吧


web.xml 中只能指定ref来进行引用,类似于:
<resource-ref>
<res-ref-name>DSPPool</res-ref-name>……

[解决办法]
现在另一种怀疑是Tomcat版本问题,我是7.0版本,web.xml是可以不需要配置引用。

不过我没有测试6或5是否需要。

热点排行