javax.naming.NameNotFoundException:在此上下文中未綁定名稱。找不到
確定發現Tomcat文件server.xml也必須配置為數據源正常工作。因此,只需添加:
<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應用程序拋出一個
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中添加了它們,以正確放入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>
現在,我的系統項目以某種方式設法在啟動時在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(); }}
我沒有這個可能的原因..如果有人有任何建議。謝謝
相關文章:
1. python+jinja2編寫前端界面,發生Unexpected end of template問題,求解決!2. python - django orm 過濾日期為當天日期的數據3. angular.js - 指令下的指令 面對上級指令ng-repeat的時候 ng-controller會出現多次的問題?4. javascript - 一個JS的算法,求大神解答5. python - django 按日歸檔統計訂單求解6. javascript - jQuery中live事件在移動微信端下沒有效果;代碼如下7. android-studio - Android Studio 運行項目的時候一堆警告,跑步起來!?8. 熱切期待朱老師的回復,網頁視頻在線播放器插件配置錯誤9. mysql - phpmyadmin怎么分段導出數據啊?10. Android "1"=="1" 到底是true還是false
