Friday, April 22, 2011

Re: Problems with Godaddy hosting and server-side deserialization

I have no experience with GoDaddy, but it looks to me like they have a Java security manager in
place. You could fix your problem by changing the security settings to allow classes in the
com.google.gwt.user.server.rpc.impl package access.

You may have to take this up with GoDaddy, as I suspect they may have a standard security manager
that they use.

As a matter of interest I use tomcat regularly on other hosting providers and have no problems.

HTH

Alan


On 4/22/2011 7:51 AM, Andrew Calleja wrote:
> Unfortunately the appengine doesn't cater for my needs as the 3000
> files limit is too low for the custom skin I need to use.
>
> Is there really no way around the above?
>
> Thanks again,
>
> Andrew
>
> On Apr 21, 6:49 pm, Andrew C<drewcall...@gmail.com> wrote:
>> Will look it up.
>>
>> Thanks David and Nino
>>
>> On Apr 21, 6:18 pm, nino ekambi<jazzmatad...@googlemail.com> wrote:
>>
>>
>>
>>
>>
>>
>>
>>> + 1 for Appengine
>>> You will never regret :)
>>> 2011/4/21 David Chandler<drfibona...@google.com>
>>>> Hi Andrew,
>>>>> Can anyone point me in the right direction?
>>>> May I suggest Google App Engine? :-)
>>>> /dmc
>>>> On Wed, Apr 20, 2011 at 4:55 PM, Andrew C<drewcall...@gmail.com> wrote:
>>>>> Hi there,
>>>>> I have developed an application using GWT and have managed to
>>>>> successfully deploy it on my local tomcat server. Everything works
>>>>> fine here and I am able to transmit serialized data from client to
>>>>> server and vice-versa. However, when I use Godaddy hosting, on a
>>>>> specific call to server, due to what I believe are restrictions on
>>>>> reflection, I am getting the following exception:
>>>>> java.security.AccessControlException: access denied
>>>>> (java.lang.RuntimePermission accessDeclaredMembers)
>>>>> java.security.AccessControlContext.checkPermission(AccessControlContext.jav a:
>>>>> 264)
>>>>> java.security.AccessController.checkPermission(AccessController.java:
>>>>> 427)
>>>>> java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
>>>>> java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:1662)
>>>>> java.lang.Class.checkMemberAccess(Class.java:2125)
>>>>> java.lang.Class.getDeclaredConstructor(Class.java:1952)
>>>>> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.instant iate(ServerSerializationStreamReader.java:
>>>>> 886)
>>>>> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deseria lize(ServerSerializationStreamReader.java:
>>>>> 544)
>>>>> com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readO bject(AbstractSerializationStreamReader.java:
>>>>> 61)
>>>>> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader
>>>>> $ValueReader$8.readValue(ServerSerializationStreamReader.java:137)
>>>>> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deseria lizeValue(ServerSerializationStreamReader.java:
>>>>> 384)
>>>>> com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:296)
>>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServi ceServlet.java:
>>>>> 186)
>>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServi ceServlet.java:
>>>>> 224)
>>>>> com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(Abstract RemoteServiceServlet.java:
>>>>> 62)
>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:
>>>>> 709)javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>>> sun.reflect.GeneratedMethodAccessor274.invoke(Unknown
>>>>> Source)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce ssorImpl.java:
>>>>> 25)
>>>>> java.lang.reflect.Method.invoke(Method.java:
>>>>> 592)org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:
>>>>> 239)
>>>>> java.security.AccessController.doPrivileged(Native
>>>>> Method)javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
>>>>> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:
>>>>> 266)
>>>>> org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:
>>>>> 157)
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio nFilterChain.java:
>>>>> 231)
>>>>> org.apache.catalina.core.ApplicationFilterChain.access
>>>>> $000(ApplicationFilterChain.java:50)
>>>>> org.apache.catalina.core.ApplicationFilterChain
>>>>> $1.run(ApplicationFilterChain.java:140)
>>>>> java.security.AccessController.doPrivileged(Native Method)
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC hain.java:
>>>>> 136)
>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j ava:
>>>>> 214)
>>>>> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java:
>>>>> 104)
>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
>>>>> 520)
>>>>> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContex tValve.java:
>>>>> 198)
>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j ava:
>>>>> 152)
>>>>> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java:
>>>>> 104)
>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
>>>>> 520)
>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
>>>>> 137)
>>>>> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java:
>>>>> 104)
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
>>>>> 117)
>>>>> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java:
>>>>> 102)
>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
>>>>> 535)
>>>>> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java:
>>>>> 102)
>>>>> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:
>>>>> 417)
>>>>> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java:
>>>>> 102)
>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
>>>>> 520)
>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav a:
>>>>> 109)
>>>>> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte xt.java:
>>>>> 104)
>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
>>>>> 520)
>>>>> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>>>>> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:
>>>>> 160)
>>>>> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
>>>>> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
>>>>> org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
>>>>> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
>>>>> 675)
>>>>> org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
>>>>> org.apache.tomcat.util.threads.ThreadPool
>>>>> $ControlRunnable.run(ThreadPool.java:683)
>>>>> java.lang.Thread.run(Thread.java:595)
>>>>> The stack trace seems to indicate a problem with deserialization of
>>>>> the client request. The custom objects I am sending all inherit from
>>>>> Serializable and all have public default constructors and public class
>>>>> members. The only thing different from this call when compared to
>>>>> other (successful) calls is that I am passing to it an ArrayList of
>>>>> one of my custom objects, namely:
>>>>> public class ParticipantT implements Serializable {
>>>>> public Integer p;
>>>>> public Long gID;
>>>>> public Long pID;
>>>>> public ArrayList<Instruction> instructions;
>>>>> public ParticipantT() {
>>>>> }
>>>>> public ParticipantT(Integer p, Long gID, Long pID,
>>>>> ArrayList<Instruction> instructions) {
>>>>> this.p = p;
>>>>> this.gID = gID;
>>>>> this.pID = pID;
>>>>> this.instructions = instructions;
>>>>> }
>>>>> }
>>>>> The class Instruction also implements Serializable and all of its sub-
>>>>> classes do as well. The latter also override the former's methods.
>>>>> Due to Godaddy's settings (Tomcat 5.0.27 and JVM 1.5_22) I am using
>>>>> GWT 2.0.4.
>>>>> Can anyone point me in the right direction?
>>>>> Thanks and regards,
>>>>> Andrew
>>>>> P.S. If more info is required, let me know.
>>>>> --
>>>>> 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
>>>>> google-web-toolkit+unsubscribe@googlegroups.com.
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/google-web-toolkit?hl=en.
>>>> --
>>>> David Chandler
>>>> Developer Programs Engineer, Google Web Toolkit
>>>> w:http://code.google.com/
>>>> b:http://googlewebtoolkit.blogspot.com/
>>>> t: @googledevtools
>>>> --
>>>> 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
>>>> google-web-toolkit+unsubscribe@googlegroups.com.
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/google-web-toolkit?hl=en.
>>> --
>>> GWT API for non Java based platformshttp://code.google.com/p/gwt4air/http://www.gwt4air.appspot.com/


--
Alan Chaney
CTO and Founder, Mechnicality, Inc.
www.mechnicality.com

--
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 google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment