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. css - .clearfix:after中为什么设置display: table2. node.js - Angular-webpack-Starter, 怎么把NodeJS添加进项目里?3. mysql多个数据总结成一条数据4. javascript - angular-cli使用ng build --prod 和ng build --prod --aot 打包文件大小相同?5. 网站上有个图标改不了了 求帮忙 是用svg写的6. javascript - Vue和React哪个源码更适合阅读学习?不谈框架优劣,只从学习的角度出发,希望知其所以然。7. java - IDEA 修改方法注释模板8. python - django 按日归档统计订单求解9. node.js开发微信公众账号设备功能问题,求解答!!10. 怎么用css截取字符?
