Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bluemix中的JavaDBWebStarter_Java_Database_Ibm Cloud_Websphere Liberty_Devops - Fatal编程技术网

Bluemix中的JavaDBWebStarter

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>

我试图在本地的[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>

<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
    

如果您开始使用样板应用程序,则该应用程序已在bluemix上正确配置。它通过打开server.xm中的
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>
  • 确保server.xml中启用了jdbc功能(之所以启用此功能是因为
    webProfile-7.0
    打开了
    jdbc-4.1
  • 在server.xml中使用server.xml中的jndi名称“jdbc/mydbdatasource”配置一个数据源
  • server.xml中的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>
    
    <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>