我正在使用WebSphere MQ 7.5。
实现FTE网络我已经开发了一个Java程序,以作为precall Transfert运行。这是我的程序: 我已经更新了Agent.properties文件,并使用通往java.exe的路径 重新启动我的经纪人 创建一个新的转换 在呼叫面板中,我配置了一个预处理: 程序: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:mqfteTestExitsJava.jar C:mqfteTestuserExitTestFileRef_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:mqfteTestExitsJava.jar C:mqfteTestuserExitTestFileRef_20121023.txt</line>
<line>Could not create the Java virtual machine.</line>
</stderr>
最好的问候
我不太确定我是否已经了解了这个问题。假设您的目标是在转移开始之前调用Java类,则可以使用MFT退出来实现这一目标。这是WMQ MFT v7.5示例源最终用户出口的链接。
hth
我终于设法执行了我的precall:
对于Windows平台,我使用了批处理脚本,然后将脚本和jar放在路径中没有空间的文件夹中。
我没有设法使用Java命令,并将打开PMR来了解原因。
编辑:
终于我明白了为什么!实际上,所谓的"参数"(在precall conf中)实际上只是一个论点。
我还设法在iSeries as400上部署了我的预处理。
命令行是相同的,但壳的声明必须为
#!/QOpenSys/usr/bin/sh
使用#!/bin/sh wmq-fte无法捕获程序的退出
现在一切都很好。
我还发现了一种奇怪的行为(这将瞄准另一个PMR):
当要发送的文件在命令路径的子目录中时,Transfert失败。
希望这会有所帮助。
问候