Can't start google web app in eclipse, Securit

2019-02-05 15:39发布

问题:

When I try to run the auto generated code in my google web app project using GAE I get the following error:

Mar 19, 2014 5:21:28 PM com.google.appengine.tools.development.agent.AppEngineDevAgent premain
SEVERE: Unable to load the App Engine dev agent. Security restrictions will not be completely emulated.
java.lang.RuntimeException: Unexpected exception during cast.
at com.google.apphosting.utils.clearcast.ClearCast$CasterImpl.cast(ClearCast.java:385)
at com.google.apphosting.utils.clearcast.ClearCast.staticCast(ClearCast.java:252)
at com.google.apphosting.utils.clearcast.ClearCast.staticCast(ClearCast.java:263)
at com.google.appengine.tools.development.agent.AppEngineDevAgent.premain(AppEngineDevAgent.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Unknown Source)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(Unknown Source)
Caused by: java.lang.IllegalAccessException: Class com.google.apphosting.utils.clearcast.ClearCast$CasterImpl can not access a member of class com.google.appengine.tools.development.agent.$Proxy0 with modifiers "public"
at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(Unknown Source)
at java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.google.apphosting.utils.clearcast.ClearCast$CasterImpl.cast(ClearCast.java:383)
... 9 more

Does anyone have any clue how to fix this?

Code:

@SuppressWarnings("serial")
public class Lab7Servlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
    resp.setContentType("text/plain");
    resp.getWriter().println("Hello, world");
    }
}

回答1:

iQue,

I encountered exactly the same problem, and I discovered that my eclipse was using JRE 8 (version 1.8). I didn't intend this, and when I changed it to 1.7, this solved the problem.

Edit: Window -> Preferences -> Java -> Installed JREs. Checked jre7 to make it default.

Relevant note: The App Engine installation instructions say to use 1.7 (but don't say you can't use 1.8): https://developers.google.com/appengine/docs/java/gettingstarted/installing



回答2:

Have you checked to see if App Engine SDK is present on your project?

If not, go to Window -> Preferences -> Google -> App Engine and add it.



回答3:

In my case in addition to what is mentioned in Kevin answer, I also had to modify the value of java to 1.7 in run configurations.