Ich versuche, warum einjavax.naming.NameNotFoundException: Name ist in diesem Kontext nicht gebunden. Nicht gefunden
javax.naming.NameNotFoundException: Name [flexeraDS] is not bound in this Context. Unable to find [flexeraDS].
wirft meine Web-Anwendung, um herauszufinden, wenn eine Schwester ein, von dem ich die Konfiguration Kopieren bin ruhig läuft.
ich habe:
- erstellen von Netbeans eine neue Ausdauer durch einen Rechtsklick und „neue Beharrlichkeit“ Auswahl, ich über die tatsächlichen Werte nicht kümmern Ich gebe aber ich brauche nur für die Datei persistence.xml im richtigen Verzeichnis erstellt werden.
- bearbeitet meine context.xml wie unten das eine vom Arbeitsschwesterprojekt
- bearbeitet meine web.xml passend eine Ressource Datasource enthalten, wie unten
- bearbeitet meine persistence.xml wie unten wieder passend die gleichen Werte wie bei gezeigt die Schwesterprojektarbeit.
- hinzugefügt alle Bibliotheken in dem anderen Projekt in der Lib-Ordner von mir und fügen sie auch aus NetBeans, um richtig in den Krieg gebracht werden.
context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/PetLogin">
<ResourceLink global="ds/flexeraDS" name="ds/flexeraDS" type="javax.sql.DataSource"/>
</Context>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app ....>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>ds/flexeraDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd ">
<persistence-unit name="flexerajpa">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>java:/comp/env/ds/flexeraDS</non-jta-data-source>
<properties>
<property name="eclipselink.ddl-generation" value="create-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
<property name="eclipselink.weaving" value="static" />
<property name="eclipselink.logging.level" value="WARNING" />
</properties>
</persistence-unit>
</persistence>
Jetzt ist mein syster Projekt einige-how seiner Datenbank Ordner erstellen verwaltet innen Apache-Tomcat-7.0.40/bin/BeispielDB beim Start, während meins es nicht erstellt und wirft einen Fehler wie oben.
Der Code, wo der Fehler ausgelöst wird, ist das erste Mal, dass ich mit der Datenbank verbinden:
EntityManager entityManager = PersistenceProvider.createEntityManager();
wo die PersistenceProvider Klasse:
public final class PersistenceProvider
{
private static Map<String, Object> lOptions = new HashMap<String, Object>();
static
{
lOptions.put(PersistenceUnitProperties.CACHE_SHARED_DEFAULT, "false");
}
private static EntityManagerFactory factory = Persistence
.createEntityManagerFactory("flexerajpa", lOptions);
private PersistenceProvider()
{
}
/**
* @return
*/
public static EntityManager createEntityManager()
{
return factory.createEntityManager();
}
/**
* @return
*/
public static Metamodel getMetamodel()
{
return factory.getMetamodel();
}
}
ich dafür aus möglichen Gründen bin .. wenn jemand einen Vorschlag hat. Vielen Dank
In meinem Fall der Schlüssel war, dass es 'java:/comp/env//' –