【发布时间】:2016-01-22 14:57:52
【问题描述】:
我正在尝试在我的本地 [Websphere Liberty][3] 服务器上运行在 [IBM Bluemix][2] 中创建的 [Java DB Web Starter][1],但它一直出现以下错误
[ERROR ] CWWJP0029E: 服务器在 liberty-IRDS.war 模块和 JavaDBApp 应用程序中找不到 openjpa-todo 持久性单元。 [错误] CWNEN0035E: 无法解析 JavaDBApp 应用程序的 liberty-IRDS.war 模块中空组件的 javax.persistence.EntityManager 类型的 java:comp/env/openjpa-todo/entitymanager 引用。 [err] javax.naming.NamingException: CWNEN1001E: java:comp/env/openjpa-todo/entitymanager JNDI 名称引用的对象无法实例化。如果引用名称映射到执行 JNDI 查找的应用程序的部署描述符绑定中的 JNDI 名称,请确保部署描述符绑定中的 JNDI 名称映射正确。如果 JNDI 名称映射正确,请确保可以使用相对于默认初始上下文的指定名称解析目标资源。 [根异常是 com.ibm.wsspi.injectionengine.InjectionException:JavaDBApp 应用程序的 liberty-IRDS.war 模块中的空组件 java:comp/env/openjpa-todo/entitymanager 类型为 javax.persistence.EntityManager 的引用无法解决。] [错误] 在 com.ibm.ws.injectionengine.osgi.internal.naming.InjectionJavaColonHelper.newCannotInstantiateObjectException(InjectionJavaColonHelper.java:183) [错误] [内部课程] [错误] 在 javax.naming.InitialContext.lookup(未知来源) [错误] 在 example.jpa.TODOListResource.getEm(TODOListResource.java:184) [错误] 在 example.jpa.TODOListResource.(TODOListResource.java:35)
已完成的步骤:
- 在 Bluemix 中创建 Java DB Web Starter
- 下载代码
-
按照建议修改 server.xml - 尝试连接到本地数据库和作为 Web Starter 应用程序的一部分托管的数据库-
--部署的应用程序
Server.xml<!-- Enable features --> <featureManager> <feature>webProfile-7.0</feature> <feature>localConnector-1.0</feature> </featureManager> <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" --> <httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/> <!-- Automatically expand WAR files and EAR files --> <applicationManager autoExpand="true"/> <applicationMonitor updateTrigger="mbean"/><library id="MySQLLib"> <fileset dir="${server.config.dir}/lib" id="mysql-connector-jar" includes="mysql-connector-java-*.jar"/> </library> <webApplication id="JavaDBApp" location="liberty-IRDS.war" name="JavaDBApp"/> </server>也尝试过:在 Java DB Web starter 中连接到 DB
<server description="new server"> <!-- Enable features --> <featureManager> <feature>webProfile-7.0</feature> <feature>localConnector-1.0</feature> </featureManager> <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" --> <httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/> <!-- Automatically expand WAR files and EAR files --> <applicationManager autoExpand="true"/> <applicationMonitor updateTrigger="mbean"/> <dataSource id="mydbdatasource" jndiName="jdbc/mydbdatasource"> <jdbcDriver libraryRef="MySQLLib"/> <properties url="db2://user13711:2gGhHNZvJwKc@75.126.155.153:50000/SQLDB" user="user13711" password="****"/> </dataSource> <library id="MySQLLib"> <fileset dir="${server.config.dir}/lib" id="mysql-connector-jar" includes="mysql-connector-java-*.jar"/> </library> <webApplication id="JavaDBApp" location="liberty-IRDS.war" name="JavaDBApp"/> </server>
【问题讨论】:
-
您能否使用任何相关的 server.xml 配置和 persistence.xml 配置更新您的问题?
-
已在 persistence.xml 中添加了 server.xml 和详细信息 - 这些都是修改前的文件,因为即使在所有更改之后也会出现相同的错误
-
persistence.xml 不完整,我没有看到任何结束标签
-
已将其删除以使其更小
-
使用最少的代码示例很好,但是对于 XML,请务必包含结束位,这样我们就可以知道那里有什么
标签: java database ibm-cloud websphere-liberty devops