Я пытаюсь выяснить, почему мой веб-приложение выдаетjavax.naming.NameNotFoundException: имя не связано в этом контексте. Не удалось найти
javax.naming.NameNotFoundException: Name [flexeraDS] is not bound in this Context. Unable to find [flexeraDS].
когда сестра одна из которых я копирование конфигурации тихо работает.
у меня есть:
- создать из NetBeans новую настойчивость, щелкнув правой кнопкой мыши и выбрав пункт «новый живучесть», я не забочусь о фактических значений, которые я даю, но мне просто нужно для файла persistence.xml для создания в правильном каталоге.
- отредактировал мой context.xml, как показано ниже соответствие один из рабочего проекта сестра
- отредактировал мой web.xml, чтобы содержать DataSource ресурс, как показано ниже
- отредактировал мой persistence.xml ниже снова сопоставляя одни и те же значения, которые на работа сестринского проекта.
- добавил все библиотеки, представленные в другом проекте в моей папке lib, и добавив их также из NetBeans, чтобы правильно помещать их в войну.
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>
Теперь мой проект штатной медсестрой некоторые-как удается создать свою папку базы данных внутри apache-tomcat-7.0.40/bin/exampleDB при запуске, в то время как мой не создает его и выдает ошибку, как указано выше.
код, где брошено ошибка в первый раз подключиться к базе данных:
EntityManager entityManager = PersistenceProvider.createEntityManager();
где класс PersistenceProvider является:
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();
}
}
Я из возможных причин этого .. если у кого есть какие-то предложения. Спасибо
В моем случае ключевой частью было то, что это 'Java:/сост/окр//' –