2010-01-22 8 views
1

Je suis en train de déployer mon application GWT à tomcat6 sous ubuntu 9.10 et obtenir le (je suppose connu beaucoup d'entre vous) « java. security.AccessControlException: accès refusé "erreur (Full exception peut être trouvé à la fin). J'ai recherché le filet en général et ai trouvé que les autorisations de sécurité par défaut de Java empêchent le serializer d'accéder à mes classes des membres privés (ils ont des getters et des setters) et que je devrais ajouter à la politique de tomcat avec un dossier à/etc /tomcat6/policy.d/60gwt.policy ce qui suit: grant codeBase "fichier:/var/lib/tomcat6/webapps/-" { permission java.security.AllPermission; }GWT - java.security.AccessControlException: refus d'accès opposé sérialiseur dans le déploiement ubuntu/de tomca6

Bien que j'ai fait cela (et je comprends les implications) je toujours obtenir la même erreur, peu importe combien de fois je redémarre le serveur. La prochaine étape serait probablement de désactiver complètement le gestionnaire de sécurité de Tomcats mais cette application finira par entrer en production et je voudrais savoir ce qui se passe ici. Aussi, je préfère ne rendre public aucune variable membre ... Des idées? acclamations

GRAVES: Exception lors dispatching appel RPC entrant java.security.AccessControlException: Accès refusé (java.lang.reflect.ReflectPermission suppressAccessChecks) à java.security.AccessControlContext.checkPermission (AccessControlContext.java:323) à java.security.AccessController.checkPermission (AccessController.java:546) à java.lang.SecurityManager.checkPermission (SecurityManager.java: 532) à java.lang.reflect.AccessibleObject.setAccessible (AccessibleObject. java: 107) à com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali zeClass (ServerSerializationStreamWriter.java:694) à com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali zeImpl (ServerSerializationStreamWriter.java:730) à com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali zeClass (ServerSerializationStreamWriter.java:712) à com.google.gwt.user.server. rpc.impl.ServerSerializationStreamWriter.seriali zeImpl (ServerSerializationStreamWriter.java:730) at com.google.gwt.user.server.rpc.impl.ServerSerializa tionStreamWriter.seriali ze (ServerSerializationStreamWriter.java:612) à com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.write objet (AbstractSerializationStreamWriter.java:129) à com.google.gwt.user .server.rpc.impl.ServerSerializationStreamWriter $ ValueWriter $ 8.write (ServerSerializationStreamWriter.java:152) à com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali zeValue (ServerSerializationStreamWriter.java:534) à l'adresse com.google.gwt.user.server.rpc.RPC.encodeResponse (RPC.java:609) à l'adresse com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure (RPC.java: 383) à l'adresse com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse (RPC.java:581) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall (RemoteServiceServlet.java:188) à com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost (RemoteServiceServlet.java:224) à com.google.gwt. user.server.rpc.AbstractRemoteServiceServlet.doPost (AbstractRemoteServiceServlet.java:62) à javax.servlet.http.HttpServlet.service (HttpServlet.java:637) à javax.servlet.http.HttpServlet.service (HttpServlet.java : 717) à sun.reflect.NativeMethodAccessorImpl.invoke0 (Méthode natif) à sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) à sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) à java.lang.reflect.Method.invoke (Method.java:597) à org.apache.catalina.security.SecurityUtil 1.run $ (SecurityUtil.java: 269) à java.security.AccessController.doPrivileged (méthode native) à javax.security.auth.Subject.doAsPrivileged (Subject.java:517) à org.apache.catalina.security.SecurityUtil.execute (SecurityUtil.java:301) à org.apache.catalina.security.SecurityUtil.doAsPrivilege (SecurityUtil.java:162) à org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:283) à org.apache.catalina. core.Applica tionFilterChain.access 000 $ (ApplicationFilterChain.java:56) à org.apache.catalina.core.ApplicationFilterChain 1.run $ (ApplicationFilterChain.java:189) à java.security.AccessController.doPrivileged (Native Method) org .apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:185) à org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) à org.apache.catalina.core.StandardContextValve .invoquer (StandardContextValve.java:191) à org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:128) à ou g.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) à org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) à org.apache.catalina.connector. CoyoteAdapter.service (CoyoteAdapter.java:293) à org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:849) à org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol .java: 583) à org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java: 454) à java.lang.Thread.run (Thread.java:619)

Répondre

0

Peu importe, j'ai résolu le problème. J'utilisais en fait le fichier: $ {catalina.base} webapps/- au lieu du fichier:/var/lib/tomcat6/webapps que j'ai écrit précédemment.Tomcat config dans/etc/default/tomcat dit que si vous n '' t set catalina.base alors/var/lib/tomcat6/est utilisé par défaut mais ...

0

Bien quand même: GWT ne peut pas sérialiser ce genre d'exception car le type n'est pas disponible dans la bibliothèque JRE émulée. Donc soit vous le définissez vous-même via en supersource, soit vous indiquez l'exception sur le serveur et assurez-vous de ne lancer que des exceptions supportées.