У меня есть jython сервлет как часть крупного приложения, работающего в tomcat5. Я протестировал несколько классов Платформы Spring, и создайте объекты в сервлете Jython. Когда я пытаюсь создать объекты классов в приложении, я ловлю Сообщение об исключении "Никакие видимые конструкторы для класса". Эти классы Java действительно имеют общедоступный класс конструктора, такой как:
public SchoolImpl() { }
Я создаю объект в Python:
from com.dc.sports.entity import SchoolImpl
...
school = SchoolImpl()
Что я делаю неправильно?
doublep / cluch ответил на вопрос :-) в комментарии
, добавив немного информации:
Из FAQ Jython:
3.3 Почему не может Я выполняю «защищенный» или «частный» метод экземпляра Java или получаю доступ к «защищенному» или «частному» атрибуту в пакете Java?
По умолчанию, как и в Java, эти методы защищены от внешнего доступа. Доступ ко всем полям и методам Java можно включить с помощью параметра реестра python.security.respectJavaAccessibility:
# Setting this to false will allow Jython to provide access to
# non-public fields, methods, and constructors of Java objects.
python.security.respectJavaAccessibility = false