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.java:
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.instantiate(ServerSerializationStreamReader.java:
886)
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize(ServerSerializationStreamReader.java:
544)
com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(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.deserializeValue(ServerSerializationStreamReader.java:
384)
com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:296)
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:
186)
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:
709)javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.GeneratedMethodAccessor274.invoke(Unknown
Source)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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(ApplicationFilterChain.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(ApplicationFilterChain.java:
136)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
214)
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:
104)
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
520)
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:
198)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
152)
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.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(StandardValveContext.java:
104)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
117)
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:
102)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
535)
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:
102)
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:
417)
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:
102)
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
520)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.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 [email protected].
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.