NPE при попытке создать экземпляр объекта Java из Jython (WAS) - PullRequest
3 голосов
/ 24 февраля 2012

Учитывая класс

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

* 1010 я получаю следующую ошибку*

com.ibm.bsf.BSFException: исключение из Jython: обратная трассировка (самая последняя внутри): файл "", строка 7, в?java.lang.NullPointerException в java.lang.Class.isAssignableFrom (собственный метод) в org.python.core.PyJavaClass.init_ class _ (PyJavaClass.java) ... около 20 строк обрезано ...на org.eclipse.core.launcher.Main.run (Main.java:981) на com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse (WSPreLauncher.java:339) на com.ibm.wsspi.bootstrap.WSPreaunc(WSPreLauncher.java:94)

    java.lang.NullPointerException: java.lang.NullPointerException

Делать что сейчас?

ОБНОВЛЕНИЕ:

Похоже, что при включении банки в sys.pathэтого было достаточно, чтобы позволить найти класс, этого было недостаточно, чтобы его можно было создать.Если я разархивировал банку в существующий путь, он работал.

Итак, мой новый вопрос: почему не добавилось банку в sys.path?Это потому, что версия Jython слишком старая?Я считаю, что это v2.1.

Ответы [ 2 ]

0 голосов
/ 15 июля 2014

sys.path для файлов классов Python, а не Java.Также os.path часто используется вместе, чтобы убедиться, что у вас есть правильный и полный путь.Я не знаю, возможно ли это, но мне никогда не удавалось использовать sys.path (в wsadmin) для файлов python / jython, но я мог просто делать это неправильно.

0 голосов
/ 24 февраля 2012

Как правило, я считаю, что sys.path используется для каталогов , содержащих модули python (или .class файлы), что может быть причиной того, что это работает, когда вы распаковываете jar Я думаю, что вы действительно хотите поставить вместо этого jar java classpath . Это можно сделать, указав путь к банке с помощью опции -wsadmin_classpath при вызове wsadmin.

...