【问题标题】:How to configure EAR to access exisiting Websphere Shared Lib?如何配置 EAR 以访问现有的 Websphere 共享库?
【发布时间】:2011-07-25 01:09:41
【问题描述】:

我将 JSF2 与 Websphere 7 一起使用。我已经成功创建了一个共享库,并使用 Webpsphere 管理控制台指出了应用程序,并且它成功运行。但是我们真正想要做的是不必通过 WAS 管理控制台指向共享库,而是具有某种应用程序级别的配置,例如在 deployment.xml 等中,我们可以指向共享隔离库的名称并使用它.我已经通过 SO 和 google 但没有发现任何这样做的东西。然而,我知道有商业应用程序在这样做,但不知道如何。
来自How can I specify a shared library reference at the web module level in Websphere 6.1 deployment descriptors? 的这个问题与我所追求的非常接近,但我不想指定版本号或 jar 名称作为答案状态

【问题讨论】:

    标签: java jakarta-ee websphere


    【解决方案1】:

    我通过简单地遵循 WAS Admin Console 的实际操作找到了一种方法。

    如果您还没有 EAR 文件,请在您的 EAR 文件中创建一个 deployment.xml。 您将找到对类加载器的引用,如下所示

    <classloader xmi:id="Classloader_1311552732281" mode="PARENT_FIRST">
    

    修改它并添加对在服务器上创建的共享库的引用,如下所示

     <classloader xmi:id="Classloader_1311552732281" mode="PARENT_FIRST">
            <libraries libraryName="JSF2_SHARED_LIB" sharedClassloader="true"/>
     </classloader>
    

    @dbreaux 也展示了一种方法。接受我自己的答案以更好地满足我的需求,但也非常感谢 dbreaux 的建议。

    【讨论】:

      【解决方案2】:

      问题是您不想单独配置每个应用程序,还是根本不想使用管理控制台?你可以associate a shared library with an entire server,这可能比为每个应用都这样做更好。

      创建这些应用程序关联的另一种方法是在特定于 WebSphere 的 .xmi 部署文件中。这些是在您部署时创建的,但也可以包含在 WAR/EAR 文件中。我不知道这是否会帮助你。如果可以,提前创建它们的官方方法是使用Deployment Tools 之一,但由于它们只是 XML,您可能会觉得手动创建它们很舒服。

      【讨论】:

      • 问题是我们不想与整个服务器关联,因为有些应用程序使用 JSF1.2 并且管理员不想通过服务器控制台关联(不知道为什么:))我设法通过在标准deployment.xml 中创建一个条目来执行管理控制台在后台执行的操作。感谢您的回答我已经投票了。
      • 将共享库与整个服务器关联是一个不错的建议。
      【解决方案3】:

      要在 Shahzeb 的回答中附加额外的细节: 我的环境:Websphere 8.5; Windows 7;(Eclipse Luna 生成测试.war 文件)

      我已经通过 websphere 控制台在 websphere 服务器上安装了从 eclipse 导出的 war 文件。 然后再次导出并解压,看看websphere自动添加了什么生成EAR。

      [folder]META-INF
        [folder]ibmconfig
        [file]application.xml
        [file]ibm-application-bnd.xmi
        [file]ibm-application-runtime.props
        [file]MANIFEST.MF
        [file]was.module
        [file]was.policy
        [file]was.webmodule
      
      [file]myWAR.war
      

      并且文件deployment.xml放在 ..\ibmconfig\cells\defaultCell\applications\defaultApp\deployments\defaultApp\

      其内容形式为


      <?xml version="1.0" encoding="UTF-8"?>
      <appdeployment:Deployment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:appdeployment="http://www.ibm.com/websphere/appserver/schemas/5.0/appdeployment.xmi" xmi:id="Deployment_1417052686904">
        <deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1417052686904" deploymentId="0" startingWeight="1" binariesURL="$(APP_INSTALL_ROOT)/[server service name]Cell/myWAR.ear" useMetadataFromBinaries="false" enableDistribution="true" createMBeansForResources="true" reloadEnabled="false" appContextIDForSecurity="href:[server service name]Cell/myWAR" filePermission=".*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755" allowDispatchRemoteInclude="false" allowServiceRemoteInclude="false" asyncRequestDispatchType="DISABLED" standaloneModule="true" enableClientModule="false">
          <targetMappings xmi:id="DeploymentTargetMapping_1417052686904" enable="true" target="ServerTarget_1417052686904"/>
          <classloader xmi:id="Classloader_1417052686904" mode="PARENT_FIRST"/>
          <modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1417052686904" deploymentId="1" startingWeight="10000" uri="myWAR.war" containsEJBContent="0">
            <targetMappings xmi:id="DeploymentTargetMapping_1417052686905" target="ServerTarget_1417052686904"/>
            <classloader xmi:id="Classloader_1417052686905"/>
          </modules>
          <properties xmi:id="Property_1417052686904" name="metadata.complete" value="true"/>
        </deployedObject>
        <deploymentTargets xmi:type="appdeployment:ServerTarget" xmi:id="ServerTarget_1417052686904" name="server1" nodeName="[server service name]"/>
      </appdeployment:Deployment>
      

      (由于我没有名气,所以我必须全部在文本中完成..)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-22
        • 1970-01-01
        • 1970-01-01
        • 2012-06-21
        • 1970-01-01
        • 1970-01-01
        • 2013-05-02
        • 1970-01-01
        相关资源
        最近更新 更多