NPEは

2012-02-24 6 views
3

がクラスNPEは

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

wsadmin.bat

ND 6にあった実行している場合

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

は、私は次のエラーを取得するJythonスクリプトを考える(WAS)

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:exception m Jython: トレースバック(最後の最後): ファイル ""、行7、? java.lang.Class.isAssignableFromで java.lang.NullPointerExceptionが (ネイティブメソッド) org.python.core.PyJavaClass.init_ クラス _(PyJavaClass.java) で...約20行が切り取られ... at org.eclipse.core.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 

今何をしますか?

UPDATE:

sys.pathにjarファイルを含めることはクラスが見つからすることを可能にするのに十分だった一方で、インスタンス化することを可能にするのに十分ではなかったようです。 jarファイルを既存のパスに解凍した場合、jarファイルは機能しました。

私の新しい質問は、なぜsys.pathにjarファイルを追加しなかったのですか? jythonのバージョンが古すぎるからですか?私はそれがv2.1だと信じています。

答えて

0

は一般的に、私はsys.pathはあなたがjarファイルを解凍したときにそれが動作する理由かもしれディレクトリ含むPythonモジュール(または.classファイル)、のために使用されていると信じています。あなたが本当に望んでいるのは、Javaクラスパスにあなたのjarファイルを置くことです。 wsadminを呼び出すときに、-wsadmin_classpathオプションを使用してjarファイルへのパスを指定すると、これを行うことができます。

+0

私はクラスパスを変更できません(むしろ、私はしたくありません)。このQ/Aは私が何をしようとしているのかを述べています。 http://stackoverflow.com/questions/1730885/how-can-i-add-jars-dynamically-to-jython-inside-script – Synesso

0

sys.pathはpythonクラスファイルであり、javaではありません。また、os.pathは、あなたが有効で完全なパスを持っていることを確認するために、しばしば一緒に使用されます。私はそれが不可能かどうかは分かりませんが、私はPython/jythonファイルのsys.path(wsadminで)を使っても決して幸運を祈ることはありませんでしたが、私は間違っているかもしれません。