OK, then ... for the record, the Security Manager settings that
control this in Tomcat 5.5 are:

// These permissions should be inserted into the catalina.policy file
in the conf directory
grant codeBase "file:${catalina.home}/webapps/-" {
    permission java.lang.reflect.ReflectPermission
"suppressAccessChecks";
};

Note that the way this is written, the permission is granted for all
webapps. To refine it further, change the codeBase clause.

Whew!


On Sep 19, 1:38 pm, Jason Essington <[EMAIL PROTECTED]> wrote:
> I thought there was some talk previously about the serializers using  
> the getters/setters rather than directly molesting the fields to get  
> around the security policy issues like you were having ... though that  
> discussion was quite a while ago, and I don't remember the details now.
>
> -jason
>
> On Sep 19, 2008, at 2:25 PM,Barrywrote:
>
>
>
> > Yes, it does, Jason.
>
> > The public getters and setters are there to protect the private member
> > variables. Since I made the member variables public (see reply to
> > Lothar above), I'm having no trouble serializing.
>
> > Why do you ask about the getters and setters???
>
> > Thanks!
>
> > On Sep 19, 8:10 am, Jason Essington <[EMAIL PROTECTED]> wrote:
> >> does your object have public getters and setters?
>
> >> -jason
> >> On Sep 19, 2008, at 12:27 AM,Barrywrote:
>
> >>> Hi ...
>
> >>> I have a (relatively) simple project that demonstrates an RPC  
> >>> failure
> >>> that I don't know how to fix. There are two remote calls. SimpleCall
> >>> returns an integer and succeeds both in host mode and in deployed  
> >>> web
> >>> mode. ClassReturnCall returns a class instance and succeeds in host
> >>> mode but _fails_ in deployed web mode.
>
> >>> The failure message is: Class Return Call Failure:
> >>> com.google.gwt.user.client.rpc.StatusCodeException: The call  
> >>> failed on
> >>> the server; see server log for details.
>
> >>> I built this project from scratch to show this, and haven't used or
> >>> done anything exotic. I created the SimpleService and
> >>> ClassReturnService using the wizards, created the .WAR file using a
> >>> menu item, and deployed with a straight copy into Tomcat 5.5's
> >>> application directory.
>
> >>> The return class is defined in its own class file, is a simple bean,
> >>> and implements IsSerializable.
>
> >>> Can someone take a look at this and give some suggestions/
> >>> reasons?? I
> >>> don't know what to do from here. Could this be some sort of security
> >>> manager problem???
>
> >>> Below are the log details, but the project (as simple as it is) is  
> >>> too
> >>> much to post, so I have put it on the 
> >>> web:http://www.tpsoft.com/RemoteServiceTest.zip
>
> >>> The server log says:
>
> >>> Sep 19, 2008 6:15:31 AM org.apache.catalina.core.ApplicationContext
> >>> log
> >>> INFO: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain:
> >>> [org.apache.webapp.balancer.RuleChain:
> >>> [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string:
> >>> News / Redirect URL:http://www.cnn.com],
> >>> [org.apache.webapp.balancer.rules.RequestParameterRule: Target param
> >>> name: paramName / Target param value: paramValue / Redirect URL:
> >>>http://www.yahoo.com],
> >>> [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect  
> >>> URL:
> >>>http://jakarta.apache.org]]
> >>> Sep 19, 2008 6:16:11 AM org.apache.catalina.core.ApplicationContext
> >>> log
> >>> SEVERE: Exception while dispatching incoming RPC call
> >>> java.security.AccessControlException: access denied
> >>> (java.lang.reflect.ReflectPermission suppressAccessChecks)
> >>>    at
> >>> java
> >>> .security
> >>> .AccessControlContext.checkPermission(AccessControlContext.java:
> >>> 323)
> >>>    at
> >>> java
> >>> .security.AccessController.checkPermission(AccessController.java:
> >>> 546)
> >>>    at  
> >>> java.lang.SecurityManager.checkPermission(SecurityManager.java:
> >>> 532)
> >>>    at
> >>> java
> >>> .lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:
> >>> 107)
> >>>    at
> >>> com
> >>> .google
> >>> .gwt
> >>> .user
> >>> .server
> >>> .rpc
> >>> .impl
> >>> .ServerSerializationStreamWriter
> >>> .serializeClass(ServerSerializationStreamWriter.java:
> >>> 619)
> >>>    at
> >>> com
> >>> .google
> >>> .gwt
> >>> .user
> >>> .server
> >>> .rpc
> >>> .impl
> >>> .ServerSerializationStreamWriter
> >>> .serializeImpl(ServerSerializationStreamWriter.java:
> >>> 655)
> >>>    at
> >>> com
> >>> .google
> >>> .gwt
> >>> .user
> >>> .server
> >>> .rpc
> >>> .impl
> >>> .ServerSerializationStreamWriter
> >>> .serialize(ServerSerializationStreamWriter.java:
> >>> 582)
> >>>    at
> >>> com
> >>> .google
> >>> .gwt
> >>> .user
> >>> .client
> >>> .rpc
> >>> .impl
> >>> .AbstractSerializationStreamWriter
> >>> .writeObject(AbstractSerializationStreamWriter.java:
> >>> 105)
> >>>    at
> >>> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter
> >>> $ValueWriter$8.write(ServerSerializationStreamWriter.java:146)
> >>>    at
> >>> com
> >>> .google
> >>> .gwt
> >>> .user
> >>> .server
> >>> .rpc
> >>> .impl
> >>> .ServerSerializationStreamWriter
> >>> .serializeValue(ServerSerializationStreamWriter.java:
> >>> 520)
> >>>    at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:
> >>> 573)
> >>>    at
> >>> com
> >>> .google.gwt.user.server.rpc.RPC.encodeResponseForSuccess(RPC.java:
> >>> 441)
> >>>    at
> >>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
> >>> 529)
> >>>    at
> >>> com
> >>> .google
> >>> .gwt
> >>> .user
> >>> .server
> >>> .rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:
> >>> 163)
> >>>    at
> >>> com
> >>> .google
> >>> .gwt
> >>> .user
> >>> .server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:
> >>> 85)
> >>>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> >>>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>    at
> >>> sun
> >>> .reflect
> >>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> >>> 39)
> >>>    at
> >>> sun
> >>> .reflect
> >>> .DelegatingMethodAccessorImpl
> >>> .invoke(DelegatingMethodAccessorImpl.java:
> >>> 25)
> >>>    at java.lang.reflect.Method.invoke(Method.java:597)
> >>>    at org.apache.catalina.security.SecurityUtil
> >>> $1.run(SecurityUtil.java:
> >>> 244)
> >>>    at java.security.AccessController.doPrivileged(Native Method)
> >>>    at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
> >>>    at
> >>> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:
> >>> 276)
> >>>    at
> >>> org
> >>> .apache
> >>> .catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:
> >>> 162)
> >>>    at
> >>> org
> >>> .apache
> >>> .catalina
> >>> .core
> >>> .ApplicationFilterChain
> >>> .internalDoFilter(ApplicationFilterChain.java:
> >>> 262)
> >>>    at org.apache.catalina.core.ApplicationFilterChain.access
> >>> $0(ApplicationFilterChain.java:192)
> >>>    at org.apache.catalina.core.ApplicationFilterChain
> >>> $1.run(ApplicationFilterChain.java:171)
> >>>    at java.security.AccessController.doPrivileged(Native Method)
> >>>    at
> >>> org
> >>> .apache
> >>> .catalina
> >>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
> >>> 167)
> >>>    at
> >>> org
> >>> .apache
> >>> .catalina
> >>> .core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> >>> 213)
> >>>    at
> >>> org
> >>> .apache
> >>> .catalina
> >>> .core.StandardContextValve.invoke(StandardContextValve.java:
> >>> 174)
> >>>    at
> >>> org
> >>> .apache
> >>> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:
> >>> 127)
> >>>    at
> >>> org
> >>> .apache
> >>> .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
> >>> 117)
> >>>    at
> >>> org
> >>> .apache
> >>> .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
> >>> 108)
> >>>    at
> >>> org
> >>> .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
> >>> 151)
> >>>    at
> >>> org
> >>> .apache.coyote.http11.Http11Processor.process(Http11Processor.java:
> >>> 874)
> >>>    at org.apache.coyote.http11.Http11BaseProtocol
> >>> $Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
> >>> 665)
> >>>    at
> >>> org
> >>> .apache
> >>> .tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
> >>> 528)
> >>>    at
> >>> org
> >>> .apache
> >>> .tomcat
> >>> .util
> >>> .net
> >>> .LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:
> >>> 81)
> >>>    at org.apache.tomcat.util.threads.ThreadPool
> >>> $ControlRunnable.run(ThreadPool.java:689)
> >>>    at java.lang.Thread.run(Thread.java:619)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to Google-Web-Toolkit@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to