-1

以下のような open 3 を使用しようとしていますが、以下のエラーで失敗します

    0:[/home/gangg/jdk1.6.0_30/jre/bin/java]
1:[ -cp ]
2:[/scratch/agentHome/osbssl/plugins/oracle.sysman.emas.agent.plugin_12.1.0.4.0/archives/em-pp-osbProv-pojo.jar:/scratch/gangg/wls1036/middleware/wlserver_10.3/server/lib/weblogic.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/lib/sb-kernel-api.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/lib/sb-kernel-impl.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/modules/com.bea.common.configfwk_1.6.0.0.jar]
3:[ -Dweblogic.security.SSL.trustedCAKeyStore=/scratch/agentHome/osbssl/agent_inst/sysman/config/montrust/AgentTrust.jks]
4:[oracle.sysman.pp.osbprov.util.OSBResourceImportUtil]
5:[/scratch/agentHome/osbssl/core/12.1.0.3.0/EMStage/PAF/osbprov/A051D1BF44FC91B2B624B08B21932FD6_1367241748834/target_/Farm02_base_domain/base_domain/HelloWorld.jar]
6:[test.com]
7:[7771]
8:[weblogic]
9:[true]
10:[true]
11:[true]
12:[true]
13:[true]
14:[null]
15:[11.1.1.6]
16:[t3s]

     $pid = open3( \*HANDLE_IN, \*HANDLE_OUT, \*HANDLE_ERR, @args);

 open3: exec of /home/gangg/jdk1.6.0_30/jre/bin/java -cp /scratch/agentHome/osbssl/plugins/oracle.sysman.emas.agent.plugin_12.1.0.4.0/archives/em-pp-osbProv-pojo.jar:/scratch/gangg/wls1036/middleware/wlserver_10.3/server/lib/weblogic.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/lib/sb-kernel-api.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/lib/sb-kernel-impl.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/modules/com.bea.common.configfwk_1.6.0.0.jar
-Dweblogic.security.SSL.trustedCAKeyStore=/scratch/agentHome/osbssl/agent_inst/sysman/config/montrust/AgentTrust.jks abc.xyz.OSBResourceImportUtil /scratch/agentHome/osbssl/core/12.1.0.3.0/EMStage/PAF/osbprov/A051D1BF44FC91B2B624B08B21932FD6_1367231855615/target_/Farm02_base_domain/base_domain/HelloWorld.jar test.xyz.com 7771 weblogic true true true true true null 11.1.1.6 t3s failed at 
 /tmp/JOB_DB7E7A13B78883EAE040E80A57827806/deploy.pl line 157
4

1 に答える 1

2

これはperl問題ではないと思います。javaコードが失敗しました。同じコマンド ラインを使用して手動で実行し、戻り値を確認して、画面に表示される内容を確認します。

問題を少し確認しました。呼び出された Java コードが例外をopen3返した場合、 が返さpidれ、stderr を読み取ることができます。javaコードの名前が間違っている場合javaも例外が返されるため、stderr を読み取ることができます。しかし、Java インタープリターのパスが間違っていると、次のperlエラー メッセージが表示されることがあります。

open3: exec of gijx -cp . a x failed at ./a.pl line 8

したがって、 (の代わりjavaに使用する)へのパスが正しくないか、スクリプトに実行する権限がないと思います。gijjavaperl

于 2013-04-29T11:04:12.833 に答える