Bluemix中的JavaDBWebStarter
我试图在本地的[Websphere Liberty][3]服务器上运行在[IBM Bluemix][2]中创建的[Java DB Web Starter][1],但它不断给出以下错误Bluemix中的JavaDBWebStarter,java,database,ibm-cloud,websphere-liberty,devops,Java,Database,Ibm Cloud,Websphere Liberty,Devops,我试图在本地的[Websphere Liberty][3]服务器上运行在[IBM Bluemix][2]中创建的[Java DB Web Starter][1],但它不断给出以下错误 <library id="MySQLLib"> <fileset dir="${server.config.dir}/lib" id="mysql-connector-jar" includes="mysql-connector-java-*.jar"/> </library>
<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>
[错误]CWWJP0029E:服务器在liberty-IRDS.war模块和JavaDBApp应用程序中找不到openjpa todo持久化单元。
[错误]CWNEN0035E:无法解析JavaDBApp应用程序liberty-IRDS.war模块中null组件的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模块中null组件的javax.persistence.entitymanager类型的java:comp/env/openjpa todo/entitymanager引用。]
[err]位于com.ibm.ws.injectionengine.osgi.internal.naming.injectionJavaColonHealper.NewCannotInstateObjectException(injectionJavaColonHealper.java:183)
[内部类]中的[错误]
[err]位于javax.naming.InitialContext.lookup(未知源)
[err]位于example.jpa.TODOListResource.getEm(TODOListResource.java:184)
[err]位于example.jpa.TODOListResource.(TODOListResource.java:35)
<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>
完成的步骤:
<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>
- 在Bluemix中创建JavaDBWebStarter
- 下载代码
- 按照建议修改server.xml-尝试连接到本地数据库和作为Web Starter应用程序一部分托管的数据库-
--部署的应用程序<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
<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>
webProfile-7.0 localConnector-1.0
<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>
还尝试了:在JavaDBWebStarter中连接到DB<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>
webProfile-7.0 localConnector-1.0
cloudAutoWiring-1.0
功能来实现这一点。这将自动将jdbc/mydbdatasource连接到应用程序的web.xml中的资源引用
<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>
在本地使用样板文件:
<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>
您需要采取一些步骤将应用程序连接到服务器,因为bluemix无法在本地环境中为您做到这一点
<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>
webProfile-7.0
打开了jdbc-4.1
)<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>
<dataSource id='mydbdatasource' jndiName='jdbc/mydbdatasource' jdbcDriverRef='myJDBCDriver'>
<properties ... /> <!-- depends on what DB you are using -->
</dataSource>
<jdbcDriver id="myJDBCDriver">
<library>
<fileset dir="C:/path/to/your/jdbc/driver.jar"/>
</library>
</jdbcDriver>
如代码示例中所述,您使用的
取决于您使用的JDBC驱动程序有关所有主要JDBC驱动程序使用的属性的列表,请查看。是否可以使用任何相关的server.xml配置和persistence.xml配置更新您的问题?已在persistence.xml中添加了server.xml和详细信息-这些文件在修改前保持原样,因为即使在所有更改之后,也会出现相同的错误persistence.xml不完整,我没有看到任何结束标记被删除以使其更小。最好使用最少的代码示例,但对于XML,请确保包含结束位,这样我们就知道了所有内容。作为创建Boiler plate应用程序的一部分,这不能连接到Bluemix中创建的db吗?在这种情况下,属性将是相同的,对吗?此外,如果我们添加VCAP_服务作为环境变量而不修改任何文件,则任何技术都可以从VCAP_服务中自动读取此内容?目前,您无法将VCAP_服务中的属性自动读取到本地liberty实例中。您需要手动将在bluemix控制台中看到的属性复制/粘贴到server.xml数据源属性中。我仍然遇到错误-尝试使用服务器配置更新问题。
<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>