【问题标题】:What is the best way to include a ResourceAdapter (rar) with the Liberty Buildpack?在 Liberty Buildpack 中包含 ResourceAdapter (rar) 的最佳方式是什么?
【发布时间】:2016-01-22 02:05:23
【问题描述】:

我们有一种情况,Liberty 应用程序通过 JNDI 查找连接工厂来访问自定义资源适配器,该连接工厂在 server.xml 中定义。 server.xml 中的 connectionFactory、resourceAdapter 和 enterpriseApplication 节点的组合似乎使得在不进行重大应用程序重构的情况下,无法将 rar 捆绑到耳朵内并将耳朵作为单个实体推送,这是行不通的。

我现在看到了两种解决方法:

  1. 将 rar/ear 组合作为捆绑的服务器包推送,或
  2. 修改 Liberty buildpack 以在推送时拉入 rar,在 server.xml 中生成预期节点

我错过了第三种选择吗?

谢谢,汤姆

【问题讨论】:

    标签: cloud-foundry websphere-liberty buildpack


    【解决方案1】:

    第三个选项是将 RAR 嵌入到您的应用程序中,但我不明白您关于为什么需要对应用程序进行大量重构的评论。理论上,应用程序不应该改变,只是配置...... 有关配置连接工厂以与嵌入式资源适配器一起使用的详细信息,请参阅 IBM 知识中心主题 http://www-01.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_jca_config_resadapters.html?lang=en。 对于独立资源适配器,我假设您在 server.xml 中有类似的内容:

    <connectionFactory jndiName="eis/NAME" type="javax.resource.cci.ConnectionFactory">
        <properties.rarName dataStoreName="name" hostName="otherName"/>
    </connectionFactory>
    <resourceAdapter id="rarName" location="rarName.rar"/>
    

    当您将 rar 嵌入耳朵时,正如您所指出的,该 resourceAdapter 节点消失了,而您将使用类似这样的东西:

    <application location="C:/applications/app1.ear"/>
    <connectionFactory jndiName="eis/NAME” type='javax.resource.cci.ConnectionFactory’>
        <properties.app1.rarName dataStoreName="name" hostName="otherName"/>
    </connectionFactory>
    

    请注意,对于嵌入式资源适配器,properties 元素现在还必须在元素名称中包含应用程序名称(在本例中为“app1”)。 如知识中心主题所述,如果您想覆盖资源适配器的默认名称,您可以改为:

    <application location="C:/applications/app1.ear”>
        <resourceAdapter id=“rarName" alias="MyEmbeddedRA"/>
    </application>
    <connectionFactory jndiName="eis/NAME" type="javax.resource.cci.ConnectionFactory">
        <properties.app1.MyEmbeddedRA dataStoreName="name" hostName="otherName"/>
    </connectionFactory>
    

    【讨论】:

    • 应用程序通过我们无法访问的库,通过 JNDI 查找到 connectionFactory 节点获取连接工厂,如下所示:
    • &lt;connectionFactory jndiName="eis/NAME' type='javax.resource.cci.ConnectionFactory'&gt; &lt;properties.rarName dataStoreName='name' hostName='otherName'/&gt; ... &lt;/connectionFactory&gt; 并且有一个如下所示的 resourceAdapter 节点:&lt;resourceAdapter id='rarName' location='rarName.rar'/&gt; 当我们将 rar 嵌入耳朵时,该 resourceAdapter 节点从 server.xml 中消失。当这种情况消失时,properties.rarName 节点变得无效。应用程序希望通过 JNDI 查找访问 connectionFactory,但在此配置中无法访问。
    猜你喜欢
    • 2011-06-18
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 2016-03-22
    相关资源
    最近更新 更多