2011-05-15 94 views
3

试图使用tomcat池来连接数据库。无法创建资源实例。 javax.naming

这里是我的代码:

的web.xml

<resource-ref> 
    <description>Resource pour le pool de connexion vers tomcat</description> 
    <res-ref-name>jdbc/pool</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

的context.xml:

DataSource ds; 

//récupération de la source de donnée 
Context initCtx = new InitialContext(); 
ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/pool"); 

conn = ds.getConnection(); 

我:

<Context antiJARLocking="true" path="/CompteBancaire"> 
    <Resource name="jdbc/pool" auth="container" type="javax.sql.Datasource"> 
     <ResourceParams name="jdbc/pool"> 
      <parameter> 
       <name>username</name> 
       <value>marc</value> 
      </parameter> 
      <parameter> 
       <name>password</name> 
       <name>marc</name> 
      </parameter> 
      <parameter> 
       <name>driverClassName</name> 
       <value>oracle.jdbc.driver.OracleDriver</value> 
      </parameter> 
      <parameter> 
     <name>url</name> 
     <value>jdbc:oracle:thin:@localhost:1521:xe</value> 
      </parameter> 
      <parameter> 
       <name>factory</name> 
       <value>org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory</value> 
      </parameter> 
     </ResourceParams> 
    </Resource> 
</Context> 
在我的DAO类的构造函数

试图寻找^ an的豁免d创建数据源:

GRAVE: null 
javax.naming.NamingException: Cannot create resource instance 
     at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143) 
     at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) 
     at org.apache.naming.NamingContext.lookup(NamingContext.java:793) 
     at org.apache.naming.NamingContext.lookup(NamingContext.java:140) 
     at org.apache.naming.NamingContext.lookup(NamingContext.java:781) 
     at org.apache.naming.NamingContext.lookup(NamingContext.java:140) 
     at org.apache.naming.NamingContext.lookup(NamingContext.java:781) 
     at org.apache.naming.NamingContext.lookup(NamingContext.java:140) 
     at org.apache.naming.NamingContext.lookup(NamingContext.java:781) 
     at org.apache.naming.NamingContext.lookup(NamingContext.java:153) 
     at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152) 
     at javax.naming.InitialContext.lookup(InitialContext.java:392) 
     at cb.model.dao.BankDAONatural.<init>(BankDAONatural.java:35) 
     at cb.model.dao.BankDAONatural.getInstance(BankDAONatural.java:42) 
     at cb.model.dao.DAOFactory.<init>(DAOFactory.java:31) 
     at cb.model.dao.DAOFactory.getInstance(DAOFactory.java:37) 
     at cb.control.generalDispatcher.init(generalDispatcher.java:33) 
     at javax.servlet.GenericServlet.init(GenericServlet.java:212) 
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) 
     at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
     at java.lang.Thread.run(Thread.java:662) 

谢谢。这可能是一些我没有得到有关数据源

回答

1
+0

非常感谢你。这可能会解决我的问题 – mlwacosmos 2011-05-17 16:49:42

+0

这是讽刺...你的链接已经死了 – mlwacosmos 2011-05-17 16:50:43

+0

我认为EJP意味着你必须删除ResourceParams标签。这应该工作。请重新检查您是否正在寻找适当版本的Tomcat文档。 – mschonaker 2011-05-17 19:18:21