2010-06-17 4 views
5

Ho un servlet jython come parte di una grande applicazione in esecuzione in tomcat5. Ho testato alcune classi Spring Framework e creato gli oggetti nel servlet Jython. Quando provo a creare oggetti di classi nell'applicazione, rilevo un messaggio di eccezione "Nessun costrutto visibile per la classe". Queste classi Java hanno una classe costruttore pubblico, come ad esempio:Jython che dice "Nessun costruttore visibile per la classe"

public SchoolImpl() { }

creo l'oggetto in pitone:

from com.dc.sports.entity import SchoolImpl

...

school = SchoolImpl()

Cosa am Sto sbagliando?

+1

è 'SchoolImpl' un pacchetto-privato o di una classe pubblica? – doublep

+0

Ah, sembra un pacchetto privato. Grazie – Clutch

+0

+1 per l'Ahh :-) – Blauohr

risposta

3

doublep/cluch ha risposto alla domanda :-) nel commento

aggiungendo solo un po 'di informazioni:

Dalla FAQ Jython:

3.3 Perché non posso eseguire un 'protetto 'o' privato 'metodo di istanza Java o accedere a un attributo' protetto 'o' privato 'in un pacchetto Java?

Per impostazione predefinita, come in Java, questi metodi sono protetti dall'accesso esterno. L'accesso a tutti i campi e metodi Java può essere attivato con l'impostazione 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

per vedere cosa è "registro": http://www.jython.org/archive/21/docs/registry.html Non sono sicuro se esiste ancora o no 2.5. – n611x007