Ich entwickelte eine Java-Webanwendung in Netbeans 6.5 mit einer MySQL-Datenbank und Hibernate. Sowohl der Entwicklungsdatenbankserver als auch der Entwicklungsanwendungsserver (Tomcat 6) befinden sich auf meinem Entwicklungscomputer. Funktioniert alles; Die Anwendung ruft Daten korrekt aus der Datenbank ab.Von Netbeans Dev zu Tomcat Produktion: DB-Verbindung nicht gefunden
Jetzt bin ich bereit, es auf den Produktionsserver zu verschieben. Der DB-Server und der Anwendungsserver befinden sich wiederum auf demselben Computer. Ich stelle die WAR-Datei bereit und versuche, auf die Anwendung zuzugreifen. Ich kann die statische Seiten zugreifen, aber die Servlets, die die Datenbankfehler aus, mit Ausnahme verwenden:
org.hibernate.exception.JDBCConnectionException: Cannot open connection
Ich bin mir ziemlich sicher, dass das Problem bezieht sich auf Tomcat nicht über die Datenquelle zu kennen. Es scheint, als ob Netbeans das für mich handhabt. Ich habe gelesen, dass ich vielleicht einen RESOURCE Eintrag hinzufügen, damit ich von this site einen Rat nahm die mir gab eine context.xml von:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/EmployeeDirectory">
<Resource
name="jdbc/employeedirectory" auth="Container"
type="javax.sql.DataSource" username="EmployeeDir"
password="EmployeeDirectory" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/EmployeeDirectory?autoReconnect=true"
maxActive="15" maxIdle="7"
validationQuery="Select 1" />
</Context>
eine web.xml von:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- Omit Servlet Info -->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/employeedirectory</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
und ein hibernate.cfg.xml von:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.datasource">java:comp/env/jdbc/employeedirectory</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Omit other Mappings -->
<mapping class="EmployeeDirectory.data.PhoneNumber" resource="EmployeeDirectory/data/PhoneNumber.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Nun bekomme ich einen org.hibernate.HibernateException: Could not find datasource
Fehler.
Bin ich auf dem richtigen Weg für den Wechsel von der Entwicklung zur Produktion? Was vermisse ich?