2010-06-17 1 views
5

J'ai une servlet jython dans le cadre d'une grande application s'exécutant dans tomcat5. J'ai testé quelques classes Spring Framework et créé les objets dans le servlet Jython. Lorsque j'essaie de créer des objets de classes dans l'application, j'attrape un message d'exception "Aucun constructeur visible pour la classe". Ces classes Java ont une classe de constructeur public, tels que:Jython indiquant "Aucun constructeur visible pour la classe"

public SchoolImpl() { }

Je crée l'objet en python:

from com.dc.sports.entity import SchoolImpl

...

school = SchoolImpl()

Qu'est-ce que Je fais mal?

+1

est 'SchoolImpl' un paquet-privé ou une classe publique? – doublep

+0

Ahh, on dirait que c'est un paquet-privé. Merci – Clutch

+0

+1 pour le Ahh :-) – Blauohr

Répondre

3

doublep/cluch répondu à la question :-) dans le commentaire

ajouter un peu d'info:

De la FAQ Jython:

3.3 Pourquoi ne puis-je exécuter un « protégé 'ou une méthode d'instance Java' privée 'ou accéder à un attribut' protected 'ou' private 'dans un package Java?

Par défaut, comme en Java, ces méthodes sont protégées contre les accès externes. L'accès à tous les champs et méthodes Java peut être activé avec le paramètre de Registre 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

pour voir ce qui est "registre": http://www.jython.org/archive/21/docs/registry.html Je ne suis pas sûr si elle existe encore ou non 2.5. – n611x007

Questions connexes