【问题标题】:Jython saying "No visible constructors for class"Jython 说“类没有可见的构造函数”
【发布时间】:2010-06-17 20:55:30
【问题描述】:

我有一个 jython servlet 作为在 tomcat5 中运行的大型应用程序的一部分。我测试了一些 Spring Framework 类并在 Jython servlet 中创建了对象。当我尝试在应用程序中创建类的对象时,我收到一条异常消息“类没有可见的构造函数”。这些java类确实有一个公共的构造函数类,比如:

public SchoolImpl() { }

我在 python 中创建对象:

from com.dc.sports.entity import SchoolImpl

...

school = SchoolImpl()

我做错了什么?

【问题讨论】:

  • SchoolImpl 是包私有类还是公共类?
  • 啊,看起来它是包私有的。谢谢

标签: java python tomcat servlets jython


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-04
  • 2010-09-06
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多