2016-09-01 69 views
1

私はLibertyを初めて使い、バッチ(352)機能を試しています。私はこれが検索エンジンやstackoverflowを介して求められているとは思えないので、明らかに何かが大変明らかに欠けていると思います...batchManager submitコマンドの呼び出しでLibertyのバッチアプリケーション名を特定する方法

私はLiberty 8.5.5.9で簡単なテストアプリケーションを作成しました。それは以下の構造を有する:

  • testbatchEAR
    • をtestbatchWAR
      • testbatchBatch

EAR /削除通常の追加を介してサーバに追加されましたメニューを選択します。

私は今使用して、コマンドラインからジョブを送信しようとしている

:私はtestbatch、testbatchEARを試してみた

Error: Server returned HTTP response code: 500 for URL: https://localhost:9443/ibm/api/batch/jobinstances: [Error 500: com.ibm.ws.jbatch.rest.bridge.BatchContainerAppNotFoundException: Failed to load the application context for application testbatch#testbatch.war. Verify the application is installed. 

batchManager submit --batchManager=localhost:9443 --user=<> --password=<> --trustSslCertificates --jobXMLName=TestProcessor.xml --applicationName=testbatch 

をそして、私は戻ってメッセージ(切り捨て)を取得、testbatchWARですが、メッセージの "testbatch#testbatch.war"部分からは、EARとWARの両方に同じ名前が使用されているように見えますが、それは可能でしょうか?

これのどの部分が欠落していますか?それは私の顔の真正面でなければなりませんが、私が見つけるすべての例や解決策は、裸のWARを使用しています。私はできません。私はどこにアプリケーション名を見つけることができる自由にありますか?どこかで名前を定義する必要がありますか(server.xml?)?

ありがとうございます!

*編集:私はEclipseの実行構成>のJava EEバッチジョブのセクションから、それを実行する場合は追加情報*

、それはそれを実行し、batchManager listJobsを行うことtestbatchEAR#testbatchWARとしてアプリケーション名を示していません。戦争。

私は実際の質問をしていますが、どうすればこの名前をbatchManager.batの--applicationNameオプションに入れることができますか?それは#warを取り込みます。あなたが発見したよう(

+0

server.xmlの「」または「」要素はどのように見えますか? –

+0

@aguibert これにより、アプリケーションが正常に開始されます。私が名前を変更しようとすると、突然その場所の耳を見つけることができません。 – Mike

+0

私は、EARのapplicationNameとWARファイルのコンポーネント名(--componentNameパラメータ付き)を指定する必要があると思います。ヘルプから、componentName "バッチ・アプリケーションEJBモジュール内のEJBコンポーネントを識別します。" – DFollis

答えて

0

EARアプリケーション

に--applicationNameと--moduleNameの両方を指定します...私はlistJobsからフルネームを入れて試してみたが、それは「#」文字を許可しません。 )、バッチアプリケーションがEAR内のWAR内にパッケージ化されている場合、通常は--applicationName--moduleNameの両方を指定する必要があります。:

batchManager submit --batchManager=localhost:9443 ... --applicationName=testbatch --moduleName=testbatchWAR.war ...

するだけ--applicationNameが必要とされているのにあなたは、例えば、例を見たことがあるかもしれませWARアプリケーションでちょうど--applicationName

を指定しますhere

この構文は、バッチアプリケーションがWARとしてパッケージ化されていても(EAR内のWARではなく)パッケージ化されている場合に機能します。

ここにある「ユーティリティプロジェクト」の名前は関連しておらず、EJBがないため、--componentNameも該当しません。 ...

POST/IBM/API /バッチ/ jobinstances

のapplicationNameは、バッチ・アプリケーションを識別します

ドキュメントは、セクションでこのhere言及しません。 moduleNameが指定されていない場合は必須です。この場合、applicationNameはmoduleNameの.warまたは.jar接尾辞を切り捨ててmoduleNameから派生します。たとえば、applicationNameおよびmoduleName = SimpleBatchJob.warを指定しない場合、applicationNameのデフォルトはSimpleBatchJobになります。

moduleNameは、JSLなどのジョブ成果物を含むバッチアプリケーション内のモジュールを識別します。ジョブはモジュールのコンポーネントコンテキストの下で提出されます。 applicationNameが指定されていない場合、moduleNameは必須です。この場合、moduleNameはapplicationNameに.warを追加してapplicationNameから派生します。たとえば、applicationName = SimpleBatchJobを指定してmoduleNameを指定しなかった場合、moduleNameのデフォルトはSimpleBatchJob.warになります。

WDTのようなツールでWebプロジェクトとEARプロジェクトの両方を作成している場合は、プロジェクトに同じ名前を付けることは簡単にできません(衝突するため)。これは実際には、EARプロジェクトが別にない場合にのみ有効です。 EARプロジェクトが存在する場合は、両方のパラメータが必要です。

関連する問題