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. linux - Ubuntu下编译Vim8(+python)无数次编译失败2. javascript - 用JS 七牛上传图片出现文件已存在的错误(file exists)3. css - 移动端 盒子内加overflow-y:scroll后 字体会变大4. 前端 - CSS3 box-shadow如何设置,或者用什么方法可以产生图中这样阴影的效果。5. python中怎么对列表以区间进行统计?6. java - 分布式系统中如何进行权限校验比较好?7. javascript - 如何判断用户切换到了当前标签页?8. javascript - webpack 报错 新人 求解9. java - Mybatis关联查询10. javascript - H5页面怎么查看console信息?
