-1

我正在使用 Websphere MQ 7.5 实现 FTE 网络。

我已经开发了一个 java 程序作为 precall tr​​ansfert 运行。这是我的程序:我已经用 java.exe 的路径更新了 agent.properties 文件重新启动我的代理创建一个新的 transfert 在调用面板中,我配置了一个预调用:程序: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

I am not quite sure if I have understood the question. Assuming your aim is to invoke Java class before the transfer begins, you can use MFT exits to achieve that. Here is a link to WMQ MFT v7.5 sample source end user exit.

HTH

于 2012-10-24T11:17:54.337 回答
0

我终于设法执行了我的预调用:

对于 Windows 平台,我使用了一个批处理脚本,并将脚本和 jar 放在一个文件夹中,路径中没有空格。

我没有设法使用 java 命令,将打开 PMR 以了解原因。

编辑 :

终于明白为什么了!!事实上,所谓的“argumentS”(在 precall conf 中)实际上只是一个论点。

我还设法将我的 precall 部署在 iseries as400 上。

命令行是相同的,但 shell 的声明必须是

 #!/QOpenSys/usr/bin/sh

使用 #!/bin/sh wmq-fte 无法捕获程序的退出

现在一切都很好。

我还发现了一个奇怪的行为(它将针对另一个 PMR):

当要发送的文件位于命令路径的子目录中时,传输失败。

希望这会对某人有所帮助。

问候

于 2012-10-26T13:43:20.663 回答