在IBM MQ FTE中调用文件传输完成时的Java jar

时间:2014-09-30 19:51:11

标签: websphere-mq-fte

我有一个jar(我无法改变),我希望在IBM MQ File Transfer Edition(FTE)中成功传输文件后调用它。我正在使用MQ FTE 7.0.4。我在commandPath中设置agent.properties以包含java可执行文件的路径以及我想要运行的jar的路径。我得到的最常见的错误是:

  

代理的命令路径   ' /选择/ IBM / WMQFTE / JRE / bin中:/path/to/jar/postTask.jar'没有定义路径   这个命令。只有路径在代理程序命令上的命令   路径可以运行。

当我将post transfer命令设置为:/opt/IBM/WMQFTE/jre/bin/java没有参数时,除了java可执行文件抱怨它没有获取任何参数之外,我没有得到任何错误。当我运行/opt/IBM/WMQFTE/jre/bin/java -jar /path/to/jar/postTask.jar ${FilePath}时,我收到类似上面的错误。

为什么我可以单独运行/调用Java,但是当我尝试包含参数时,它会失败?

我还没有尝试过的事情: 1)编写一个小批处理脚本,执行我想要的java调用。 2)与IBM合作开设PMR。

其他研究: 这个非常有帮助的question解释了呼叫和退出之间的区别。退出需要实现MonitorExit界面,我无法做到这一点。

此问题也可能属于Super User;我不确定。

1 个答案:

答案 0 :(得分:2)

我试图重新创建您的问题,但我可以使用post source program调用成功运行Java程序(打包为Jar文件);这是我相信你想要做的。因此,我认为您的问题可能是配置问题。

根据您提供的信息,您应该设置" commandPath"您的代理的agent.properties文件中的属性如下:

COMMANDPATH = /选择/ IBM / WMQFTE / JRE / bin中

然后应该更改您的代理,然后重新启动更改。

然后,您可以使用fteCreateTransfer命令测试是否成功调用了Java程序;要将可运行的Jar文件作为后源程序调用执行,请在命令中使用以下选项:

-postsrc"可执行文件:/ opt / IBM / WMQFTE / jre / bin / java(-jar,/ path / to / jar / postTask.jar,),,, 0"

(语法在FTE信息中心中描述:http://pic.dhe.ibm.com/infocenter/wmqfte/v7r0/topic/com.ibm.wmqfte.doc/start_new_transfer_cmd.htm

现在,根据您的问题,我假设您正在使用资源监视器(提及$ {FilePath}),因此您需要正确配置资源监视器使用的传输模板XML。如:

...
<transferSet priority="0">
  <postSourceCall>
    <command name="/opt/IBM/WMQFTE/jre/bin/java" retryCount="0" retryWait="0" successRC="0" type="executable">
      <argument>-jar</argument>
      <argument>/path/to/jar/postTask.jar</argument>
      <argument>${FilePath}</argument>
    </command>
  </postSourceCall>
  <item checksumMethod="MD5" mode="binary">
...

请注意,这三个参数被拆分为单独的元素。

您能否确保您的系统配置与上述相同,并再试一次,看看它是否可以解决您的问题?

谢谢!