Kann nicht erstellen Ressource-Instanz in Tomcat7
Ich versuche zum konfigurieren des connection-pool in Tomcat 7. Hier ist der code:
Teil server.xml:
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource
name="jdbc/testDataSource"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/delta_server"
username="test" password="test"
validationQuery="select count (*) from session_contexts"
/>
web.xml Konfiguration:
<resource-ref>
<description>
Sample JNDI DataSource resource reference
</description>
<res-ref-name>jdbc/testDataSource</res-ref-name>
<res-type>java.sql.DatSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
und der Zugriff vom jsp-Seite:
Context initialContext = new InitialContext();
Context envContext = (Context) initialContext.lookup("java:/comp/env");
conn = (Connection) envContext.lookup("jdbc/testDataSource");
Aber leider bekomme ich exception:
javax.naming.NamingException: Cannot create resource instance
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:146)
javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
org.apache.naming.NamingContext.lookup(NamingContext.java:826)
org.apache.naming.NamingContext.lookup(NamingContext.java:145)
org.apache.naming.NamingContext.lookup(NamingContext.java:814)
org.apache.naming.NamingContext.lookup(NamingContext.java:159)
org.apache.jsp.index_jsp._jspService(index_jsp.java:91)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
Wie kann ich es beheben?
Danke.
InformationsquelleAutor user1379574 | 2012-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Konfiguration sieht ziemlich OK (außer für einige Tippfehler in Ihrem
web.xml
- Datei; die<res-type>java.sql.DatSource</res-type>
sollte<res-type>javax.sql.DataSource</res-type>
).Aber das problem, das ich denke, ist die Tatsache, dass erklären Sie die Datenbank-Ressource innerhalb der
server.xml
- Datei.Normalerweise die Anwendung Ressourcen erklärt werden sollte in der
context.xml
- Datei der Anwendung ist und nur erklärt werden, inserver.xml
wenn Sie zwischen Anwendungen freigegeben. Also mein Vorschlag ist, zu erklären, dasjdbc/testDataSource
Ressource in Ihremcontext.xml
- Datei. Das sollte eins Weg, um es Arbeit.Wenn Sie müssen unbedingt eine Globale Ressource, die in Ihrem
context.xml
Datei müssen Sie eine Ressource hinzufügen, link zu, oder es wird nicht standardmäßig sichtbar.Also die zweite Weg, um es Arbeit der Ressource deklariert
server.xml
aber dann fügen Sie so etwas wie dies in Ihrercontext.xml
Datei:InformationsquelleAutor Bogdan