我有一个jython servlet,它是在tomcat5中运行的大型应用程序的一部分。我测试了一些Spring Framework类,并在Jython servlet中创建了对象。当我尝试在应用程序中创建类的对象时,我收到一条异常消息“类的无可见构造函数”。这些Java类确实具有公共构造函数类,例如:
public SchoolImpl() { }
我在python中创建对象:
from com.dc.sports.entity import SchoolImpl
...
school = SchoolImpl()
我究竟做错了什么?
doublep / cluch在评论中回答了问题:-)
仅添加一些信息:
来自Jython常见问题解答:
3.3为什么我不能执行Java实例的“保护”或“私有”方法或访问Java包中的“保护”或“私有”属性?
默认情况下,如Java中一样,这些方法受到保护,以防止外部访问。可以使用python.security.respectJavaAccessibility注册表设置启用对所有Java字段和方法的访问:
# Setting this to false will allow Jython to provide access to # non-public fields, methods, and constructors of Java objects. python.security.respectJavaAccessibility = false