我正在试图弄清楚上面存储的资源的定义在哪里。我的应用程序没有,也没有定义过这样的资源。所以我确实这是某种服务器引用,但问题是可以定义这样的东西。它看起来像是在服务器上某处存在的某种缓存引用,并在尝试使用相同的名称时使用。
人们建议的解决方法包括手动创建资源或使用java:app/
前缀。
但是,我想深入研究问题并解决问题的根源。
包含实体管理器配置可能是第一件要检查但它在哪里? 我应该检查,修改或删除哪个配置文件。
以下是错误消息的开头:
Severe: Exception while preparing the app : Invalid resource : jdbc/CustomerDEV1__nontx
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid resource : jdbc/CustomerDEV1__nontx
答案 0 :(得分:3)
要摆脱它,您需要删除IDE缓存的persistence.xml 。例如(在Windows 8.1下使用Netbeans 8):
C:\Users\jMarcel\AppData\Local\NetBeans\Cache\8.0\index\s71\java\14\classes\META-INF\persistence.xml
提示:在WindowsExplorer中,将目录设置为C:\ Users \ yourUser ** AppData \ Local \ NetBeans **并执行persistence.xml文件的搜索。
答案 1 :(得分:1)
我希望您不要让服务器知道您在JNDI树中查找的资源类型并使其混淆。您在应用程序中查找JDBC资源。请注意,如果您使用java:app/
,则表示
java:app
命名空间用于查找在同一应用程序中打包的本地企业bean。也就是说,企业bean打包在包含多个Java EE模块的EAR文件中。使用java:app命名空间的JNDI地址具有以下形式:
您必须将java:comp/env/jdbc/CustomerDEV1__nontx
用于JDBC数据源。 java:comp/env/jdbc
表示它是Java组件环境中的JDBC资源