2010-06-17 23 views
5

Tengo un servlet jython como parte de una aplicación grande que se ejecuta en tomcat5. Probé algunas clases de Spring Framework y creo los objetos en el servlet Jython. Cuando trato de crear objetos de clases en la aplicación, cojo un mensaje de excepción "No hay constructores visibles para la clase". Estas clases de Java tienen una clase constructor público, tales como:Jython diciendo "No hay constructores visibles para la clase"

public SchoolImpl() { }

puedo crear el objeto en Python:

from com.dc.sports.entity import SchoolImpl

...

school = SchoolImpl()

Qué am Estoy haciendo mal?

+1

es 'SchoolImpl' un paquete-privado o una clase pública? – doublep

+0

Ahh, parece que es un paquete privado. Gracias – Clutch

+0

+1 por el Ahh :-) – Blauohr

Respuesta

3

doublep/Cluch respondió a la pregunta :-) en el comentario

añadiendo sólo un poco de información:

Desde el FAQ Jython:

3.3 ¿Por qué no puedo ejecutar un 'protegido 'o' privado 'método de instancia de Java o acceder a un atributo' protegido 'o' privado 'en un paquete de Java?

De forma predeterminada, como en Java, estos métodos están protegidos del acceso externo. El acceso a todos los campos y métodos Java se puede activar con la configuración del registro 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 
+1

para ver lo que es "registro": http://www.jython.org/archive/21/docs/registry.html No estoy seguro de si todavía existe o no en 2.5. – n611x007

Cuestiones relacionadas