2016-08-11 5 views
0

Ich möchte gefunden, einen Krieg Datei TomEE einzusetzen doch irgendwie:TomEE fehlgeschlagen deploy Datenquelle nicht

Verursacht durch:

javax.naming.NameNotFoundException: 
     Name openejb/Resource/application_name/mysql_ds" not found. 

Wenn ich den Server neu starten, die deploy geht in Ordnung, aber nur einmal, dann trifft der gleiche Fehler.

Ich habe definiert Datenquelle in WEB-INF/resources.xml Datei

<tomee> 
    <Resource id="mysql_ds" type="javax.sql.DataSource"> 
     JdbcDriver = com.mysql.jdbc.Driver 
     JdbcUrl  = jdbc:mysql://IP:3306/db?serverTimezone=UTC&amp;autoReconnect=true 
     UserName = user 
     Password = password 
     JtaManaged = true 
    </Resource> 
</tomee> 

Auch sollte ich erwähnen, dass es eine andere geklonte Anwendung (dev-Modus) mit derselben Konfiguration und es funktioniert gut.

Antwort

2

Sie können entweder Sie WEB-INF/resources.xml eine oder mehr Datenquellen oder die tomee.xml Datei im <tomee-home>/conf Ordner definieren, wie in den corresponding section der TomEE Projektdokumentation festgestellt:

Eine Datasource kann über XML deklariert wird in die /conf/tomee.xml Datei oder in einer WEB-INF/resources.xml Datei

jedoch ist die Syntax für resources.xml leicht verschiedene aus dem Behälter weiter Definition. Für ein resources.xml mit Ihrer Web-Anwendung gebündelt sollte wie folgt formuliert werden:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <Resource id="mysql_ds" type="javax.sql.DataSource"> 
     JdbcDriver = com.mysql.jdbc.Driver 
     JdbcUrl  = jdbc:mysql://IP:3306/db?serverTimezone=UTC&amp;autoReconnect=true 
     UserName = user 
     Password = password 
     JtaManaged = true 
    </Resource> 
</resources> 

Hinweis gut, dass der Tag <resources> von <tomee> in Ihrer Frage gegeben ist anders. Dies sollte für eine Standard-TomEE-Umgebung funktionieren. Siehe auch: Kommentar von rmannibucau.

Hoffe, es hilft.

+1

Beachten Sie, dass bei Konflikten mit Definitionen die Ressource kontextuell aufgelöst wird (mithilfe des Classloaders), sodass Sie weiterhin zwei in Konflikt stehende Ressourcen in zwei verschiedenen Webapps bereitstellen können. –

+0

@rmannibucau Das ist ein guter Hinweis/Klärung für einen solchen Fall, thx. – MWiesner

Verwandte Themen