GWT - java.security.AccessControlException: доступ запрещен для сериализатора в развертывании ubuntu / tomca6 - PullRequest
1 голос
/ 22 января 2010

Я пытаюсь развернуть мое приложение gwt на tomcat6 под Ubuntu 9.10 и получить (я думаю, что известно многим из вас) Ошибка «java.security.AccessControlException: доступ запрещен» (полный Исключение можно найти в конце). Я искал в сети в целом и обнаружил, что безопасность Java по умолчанию разрешения не позволяют сериализатору получить доступ к моим классам частные члены (у них есть добытчики и сеттеры) и что я должен добавить в политику Tomcat с файлом в /etc/tomcat6/policy.d/60gwt.policy следующие: предоставить codeBase "файл: / var / lib / tomcat6 / webapps / -" { разрешение java.security.AllPermission; }

Хотя я это сделал (и я понимаю последствия), я все еще получить ту же ошибку, независимо от того, сколько раз я перезагружаю сервер. Следующим шагом, вероятно, будет отключение менеджера безопасности Tomcat. полностью, но это приложение в конечном итоге пойдет в производство, и я буду хотел бы знать, что здесь происходит. Кроме того, я бы предпочел не делать никаких переменные-члены public ... Есть идеи? ура

SEVERE: исключение при отправке входящего вызова RPC java.security.AccessControlException: доступ запрещен (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) в com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali ze (ServerSerializationStreamWriter.java:612) в com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.write Object (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) на com.google.gwt.user.server.rpc.RPC.encodeResponse (RPC.java:609) на com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure (RPC.java:383) на com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse (RPC.java:581) на 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) at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в 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) at java.security.AccessController.doPrivileged (собственный метод)в 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.ApplicationFilterChain.access $ 000 (ApplicationFilterChain.java:56) в org.apache.catalina.core.ApplicationFilterChain $ 1.run (ApplicationFilterChain.java:189) at java.security.AccessController.doPrivileged (собственный метод) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:185) в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:128) в org.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) at java.lang.Thread.run (Thread.java:619)

Ответы [ 2 ]

0 голосов
/ 22 января 2010

Ну, в любом случае: GWT не может сериализовать такого рода исключения, потому что этот тип недоступен в эмулируемой библиотеке JRE. Поэтому либо вы сами определяете его через en supersource, либо вы помещаете исключение на сервер и убедитесь, что выкидываете только поддерживаемые исключения.

0 голосов
/ 22 января 2010

Неважно, я решил проблему. Я на самом деле использовал файл: $ {catalina.base} webapps / - вместо файла: / var / lib / tomcat6 / webapps, которые я писал ранее. Конфигурация Tomcat в / etc / default / tomcat говорит, что если вы не устанавливаете catalina.base, тогда / var / lib / tomcat6 / используется по умолчанию но ...

...