javax.naming.NameNotFoundException:在此上下文中未綁定名稱(chēng)。找不到
確定發(fā)現(xiàn)Tomcat文件server.xml也必須配置為數(shù)據(jù)源正常工作。因此,只需添加:
<Resource auth='Container' driverClassName='org.apache.derby.jdbc.EmbeddedDriver' maxActive='20' maxIdle='10' maxWait='-1' name='ds/flexeraDS' type='javax.sql.DataSource' url='jdbc:derby:flexeraDB;create=true' />解決方法
我試圖找出為什么我的Web應(yīng)用程序拋出一個(gè)
javax.naming.NameNotFoundException: Name [flexeraDS] is not bound in this Context. Unable to find [flexeraDS].
當(dāng)我從中復(fù)制配置的一個(gè)姐妹悄悄地運(yùn)行時(shí)。
我有:
通過(guò)右鍵單擊并選擇“新的持久性”從netbeans創(chuàng)建一個(gè)新的持久性,我不在乎我提供的實(shí)際值,但只需要在正確的目錄中創(chuàng)建persistence.xml文件即可。如下編輯我的context.xml,以匹配工作姐妹項(xiàng)目中的那個(gè)編輯了我的web.xml以包含資源DataSource,如下所示如下編輯我的persistence.xml,再次匹配在姐妹項(xiàng)目上工作的相同值。在我的lib文件夾中添加了另一個(gè)項(xiàng)目中存在的所有庫(kù),還從NetBeans中添加了它們,以正確放入war。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>
現(xiàn)在,我的系統(tǒng)項(xiàng)目以某種方式設(shè)法在啟動(dòng)時(shí)在apache-tomcat-7.0.40 / bin /exampleDB內(nèi)創(chuàng)建其數(shù)據(jù)庫(kù)文件夾,而我的系統(tǒng)未創(chuàng)建它并引發(fā)如上所述的錯(cuò)誤。
引發(fā)錯(cuò)誤的代碼是我第一次連接數(shù)據(jù)庫(kù):
EntityManager entityManager = PersistenceProvider.createEntityManager();
其中PersistenceProvider類(lèi)為:
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(); }}
我沒(méi)有這個(gè)可能的原因..如果有人有任何建議。謝謝
相關(guān)文章:
1. javascript - sublime快鍵鍵問(wèn)題2. javascript - immutable配合react提升性能?3. macos - 如何徹底刪除mac自帶的apache和php4. DADB.class.php文件的代碼怎么寫(xiě)5. mysql - 在log日志中已知用戶(hù)的某一步操作,如何獲取其上一步操作?6. shell - mysql更新錯(cuò)誤7. 網(wǎng)頁(yè)爬蟲(chóng) - 如何使用使用java抓取信息并制作一個(gè)排名系統(tǒng)?8. 如何設(shè)置一個(gè)無(wú)限循環(huán)并打破它。(Java線程)9. python小白 自學(xué)看書(shū)遇到看不懂的地方10. php對(duì)mysql提取數(shù)據(jù)那種速度更快

網(wǎng)公網(wǎng)安備