2

RAD の組み込みツールではなく、Maven を使用してビルドおよびデプロイするようにアプリケーションを変換しました。ほとんどはうまくいきましたが、最後の「落とし穴」は、アプリケーションが「parent last/application」のクラス・ローダー・ポリシーを必要とすることです。現在、 Maven用の WAS プラグインを使用すると、アプリケーションを完全にアンインストールして再インストールするように見えるため、これを自動化したいので、コードが変更されてアプリケーションが再デプロイされるたびに管理コンソールを使用する必要があります。デプロイされた EAR にクラス ローダーの設定を組み込むことができれば、作業ははるかに速く進むでしょう。

私が知る限り、クラス ローダーの構成は、私の EAR プロジェクトの "META-INF/ibmconfig" フォルダーにある RAD 管理ファイル "deployment.xml" で制御されます。このディレクトリ構造を EAR に含めることができ、それが WebSphere にデプロイされたときに正常に機能すると推測していますが、このファイルの内容についてもっと心配しています。次のようになります。

<?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_1460348645719">
  <deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1460348645719" startingWeight="10" warClassLoaderPolicy="SINGLE">
    <modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1460348645719" startingWeight="10000" uri="MyWarProject1.war"/>
    <modules xmi:type="appdeployment:EJBModuleDeployment" xmi:id="EJBModuleDeployment_1460348645719" startingWeight="5000" uri="MyEJBProject1.jar"/>
    <modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1460348645720" startingWeight="10000" uri="MyWarProject2.war"/>
    <classloader xmi:id="Classloader_1460348645719" mode="PARENT_LAST"/>
   ...

アプリケーション内のすべてのモジュールには などの ID がありEJBModuleDeployment_1460348645719、これらは、アプリケーションが最初に RAD 経由で WAS に公開されたときに作成されたと推測されます。新しい Maven 化されたプロジェクトを新しい開発者に渡す場合、彼らはこのdeployment.xmlファイルを使用できますか、それとも通常 RAD によって管理される特定の WAS インスタンスに固有の部分がありますか?

また、後でアプリケーションにモジュールを追加する場合、Maven で新しいモジュール ID を生成するにはどうすればよいですか? ID を作ってもいいですか、EJBModuleDeployment_123それとも本当に RAD/WAS で管理すべきものですか? また、これを行うための Jython スクリプトを作成して Maven と統合できるかどうかも疑問に思っていましたが、それが機能するかどうか、または必要であるかどうかはわかりません。

4

1 に答える 1

1

私は通常、アプリを Maven でデプロイしてから、wsadmin スクリプト (Jython) を実行して、このような構成情報 (クラス・ローダー・ポリシー、共有ライブラリーなど) を変更します。

Maven ジョブと wsadmin スクリプトを Jenkins ジョブを介して一緒に実行し、それらが一緒に実行されるようにします。

于 2013-10-09T23:38:23.457 に答える