NPE는

2012-02-24 2 views
3

클래스NPE는

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

wsadmin.bat

ND 6 WAS 실행시

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

나는 다음과 같은 오류가 자이 썬 스크립트를 감안할 때 (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 : 예외 m 자이 썬 : 추적 (가장 안쪽 마지막) : 파일 "", 7 번 줄? org.python.core.PyJavaClass.init_ 클래스에서 java.lang.Class.isAssignableFrom (기본 방법) 에서 java.lang.NullPointerException이 는 _ (PyJavaClass.java) ... 20 라인립니다 ... at org.eclipse.core.launcher.Main.run (Main.java:981) at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse (WSPreLauncher.java:339) (com.ibm.wsspi.bootstrap). WSPreLauncher.main (WSPreLauncher.java:94는)

java.lang.NullPointerException: java.lang.NullPointerException 

지금 무엇합니까?

업데이트 :

그것은이 sys.path에 항아리를 포함하는 동안 클래스가 발견 할 수 있도록 충분했다 것 같다, 인스턴스화 될 수 있도록하기에 충분하지 않았다. 항아리를 기존 경로에 압축을 풀면 작동했습니다.

그럼 내 새로운 질문은 sys.path에 항아리를 추가하지 않은 이유는 무엇입니까? 자이 썬 버전이 너무 오래 되었기 때문인가요? 나는 이것이 2.1 버전이라고 믿는다.

답변

0

일반적으로, 나는 sys.path은 당신이 병의 압축을 풀 때 왜 작동 될 수있다 디렉토리 포함하는 파이썬 모듈 (또는 .class 파일)에 사용됩니다 믿습니다. 당신이 정말로 원하는 것은 자바 클래스 패스에 항아리를 넣는 것입니다. 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는 java가 아닌 python 클래스 파일 용입니다. 또한 os.path는 종종 유효한 경로와 전체 경로가 있는지 확인하기 위해 함께 사용됩니다. 그것이 불가능한지는 모르겠지만, 파이썬/자이 썬 파일에 대해서도 sys.path (wsadmin에서)를 사용하는 행운은 없었지만, 잘못했을 수도 있습니다.