3

クラスを考えると

public class MyObject {
    public MyObject() {
        System.out.println("true = " + true);
    }
}

そしてJythonスクリプト

import sys
sys.path.append('my-custom.jar')
from my.custom import *
config = MyObject()

WAS ND 6 で実行すると、次のエラーが発生します。wsadmin.bat

Running c:\user\jem\projects\gmm/build/deploy/x.py
    WASX7209I: Connected to process "dmgr" on node dmgr_node using SOAP connector;  The type of process is: DeploymentManager
    WASX7017E: Exception received while running file "c:\user\jem\projects\gmm/build/deploy/x.py"; exception information:

com.ibm.bsf.BSFException: Jython からの例外: トレースバック (最も内側の最後): ファイル ""、7 行目、? org.python.core.PyJavaClass.init_ class _(PyJavaClass.java)の java.lang.Class.isAssignableFrom(Native Method) での java.lang.NullPointerException ... org.eclipse.core での約 20 行のクリップ.launcher.Main.run(Main.java:981) at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:339) at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:94) )

    java.lang.NullPointerException: java.lang.NullPointerException

今何をしますか?

アップデート:

jar を に含めるsys.pathだけでクラスを見つけるには十分だったようですが、インスタンス化するには十分ではありませんでした。jarを既存のパスに解凍すると、機能しました。

だから私の新しい質問は、なぜjarを追加して機能させなかったのsys.pathですか? jythonのバージョンが古すぎるからでしょうか?v2.1だと思います。

4

2 に答える 2

0

通常、はpython モジュール (またはファイル) を含むディレクトリsys.pathに使用されると思います。これが、jar を解凍したときに機能する理由かもしれません。あなたが本当に望んでいるのは、代わりにjarをJavaクラスパスに置くことだと思います。これは、呼び出し時にオプションを介して jar へのパスを指定することで実行できます。.class-wsadmin_classpathwsadmin

于 2012-02-24T15:57:30.343 に答える
0

sys.path は、Java クラス ファイルではなく Python クラス ファイル用です。また、os.path は、有効なフル パスがあることを確認するために組み合わせて使用​​されることがよくあります。それが不可能かどうかはわかりませんが、sys.path (wsadmin 内) を python/jython ファイルに使用したことは一度もありませんが、間違っている可能性があります。

于 2014-07-15T16:28:39.087 に答える