-1

WebsphereMQ7.5を使用してFTEネットワークを実装しています。

呼び出し前の転送として実行されるJavaプログラムを開発しました。これが私の手順です:java.exeへのパスでagent.propertiesファイルを更新しましたエージェントを再起動します新しい転送を作成します呼び出しパネルで、事前呼び出しを構成します:プログラム:java引数:-jar c:\ PATH \ TO \ MY \ JAR \ myJar.jar myArgument

transfertは失敗し、表示されるエラーはjavaが引数を受け取らないようなものです。

Windowsプロンプトでコマンドをテストすると、機能します。

さらに、最初の試みはjavaコマンドを含むバッチスクリプトを実行することでしたが、どちらも機能しませんでした。

プログラムは転送に固有であるため、出口を使用したくありません。

編集:私は単純なjava -versionコマンドをテストしましたが、それは機能します。

  <preSourceCall>
  <command name="java" retryCount="0" retryWait="0" successRC="0" type="executable">
    <argument>-jar C:\mqfteTest\ExitsJava.jar C:\mqfteTest\userExitTest\FileRef_20121023.txt</argument>
  </command>
</preSourceCall>

エラーが返されました:

  <callResult outcome="failure" retries="0">
    <result outcome="failure" returnCode="1" time="2012-10-24T12:39:52.419Z">
      <stdout>
        <line/>
        <line>Syntaxe : java [-options] class [args...]</line>
        <line>           (pour l'ex‚cution d'une classe)</line>
        <line>   ou  java [-jar] [-options] jarfile [args...]</line>
         ...
       <line>JVMJ9VM007E Option de ligne de commande non identifiee : -jar C:\mqfteTest\ExitsJava.jar C:\mqfteTest\userExitTest\FileRef_20121023.txt</line>
        <line>Could not create the Java virtual machine.</line>
      </stderr>

よろしくお願いします

4

2 に答える 2

0

私はついにプレコールを実行することができました:

Windowsプラットフォームの場合、バッチスクリプトを使用し、パスにスペースがないフォルダーにスクリプトとjarを配置しました。

javaコマンドを使用できなかったので、PMRを開いて理由を理解します。

編集 :

ついにその理由がわかりました!! 実際、いわゆる「argumentS」(precall conf内)は、実際には1つの引数にすぎません。

また、iseriesas400にプリコールを展開することもできました。

コマンドラインは同じですが、シェルの宣言は次のようにする必要があります

 #!/QOpenSys/usr/bin/sh

#!/ bin / shを使用すると、wmq-fteはプログラムの終了をキャッチできません。

今ではすべてがうまく機能しています。

私はまた奇妙な振る舞いを見つけました(これは別のPMRを目指します):

送信するファイルがコマンドパスのサブディレクトリにある場合、転送は失敗します。

これが誰かを助けることを願っています。

よろしく

于 2012-10-26T13:43:20.663 に答える
0

質問を理解したかどうかはよくわかりません。転送が開始する前にJavaクラスを呼び出すことが目的であると仮定すると、MFT出口を使用してそれを実現できます。WMQMFTv7.5サンプルソースエンドユーザー出口へのリンクは次のとおりです。

HTH

于 2012-10-24T11:17:54.337 に答える