2013-10-07 60 views
1

嘿,我正在關注GWT開發者指南,到目前爲止一切正常,直到我嘗試使用AppEngine。 我在MacOS X 10.7.5上安裝了最新的JDK和Eclipse。 如果我嘗試運行我的教程股票交易所程序我得到這個錯誤:無法讓AppEngine在Eclipse中工作

objc[377]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. 
Initializing App Engine server 
Okt 07, 2013 10:24:00 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml 
Information: Successfully processed /Users/HP/Desktop/StockWatcher/war/WEB-INF/appengine-web.xml 
Okt 07, 2013 10:24:00 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml 
Schwerwiegend: Received exception processing /Users/HP/Desktop/StockWatcher/war/WEB-INF/appengine-web.xml 
com.google.apphosting.utils.config.AppEngineConfigException: appengine-web.xml does not contain a <threadsafe> element. 
See http://code.google.com/appengine/docs/java/config/appconfig.html#Using_Concurrent_Requests for more information. 
You probably want to enable concurrent requests. 
    at com.google.apphosting.utils.config.AppEngineWebXmlReader.readAppEngineWebXml(AppEngineWebXmlReader.java:85) 
    at com.google.apphosting.utils.config.EarHelper.readWebModule(EarHelper.java:166) 
    at com.google.appengine.tools.development.ApplicationConfigurationManager$WarModuleConfigurationHandle.readConfiguration(ApplicationConfigurationManager.java:399) 
    at com.google.appengine.tools.development.ApplicationConfigurationManager.<init>(ApplicationConfigurationManager.java:146) 
    at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:88) 
    at com.google.appengine.tools.development.DevAppServerImpl.<init>(DevAppServerImpl.java:139) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:258) 
    at com.google.appengine.tools.development.DevAppServerFactory.access$000(DevAppServerFactory.java:36) 
    at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:226) 
    at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:224) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:224) 
    at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:76) 
    at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:60) 
    at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:84) 
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509) 
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093) 
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836) 
    at com.google.gwt.dev.DevMode.main(DevMode.java:311) 

    [ERROR] Unable to start App Engine server 
com.google.apphosting.utils.config.AppEngineConfigException: Invalid configuration 
    at com.google.appengine.tools.development.DevAppServerImpl.reportDeferredConfigurationException(DevAppServerImpl.java:445) 
    at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:225) 
    at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:47) 
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:212) 
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:210) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:210) 
    at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97) 
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509) 
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093) 
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836) 
    at com.google.gwt.dev.DevMode.main(DevMode.java:311) 
Caused by: com.google.apphosting.utils.config.AppEngineConfigException: Invalid appengine-web.xml(/Users/HP/Desktop/StockWatcher/war/WEB-INF/appengine-web.xml) - appengine-web.xml does not contain a <threadsafe> element. 
See http://code.google.com/appengine/docs/java/config/appconfig.html#Using_Concurrent_Requests for more information. 
You probably want to enable concurrent requests. 
    at com.google.apphosting.utils.config.EarHelper.readWebModule(EarHelper.java:168) 
    at com.google.appengine.tools.development.ApplicationConfigurationManager$WarModuleConfigurationHandle.readConfiguration(ApplicationConfigurationManager.java:399) 
    at com.google.appengine.tools.development.ApplicationConfigurationManager.<init>(ApplicationConfigurationManager.java:146) 
    at com.google.appengine.tools.development.ApplicationConfigurationManager.newWarConfigurationManager(ApplicationConfigurationManager.java:88) 
    at com.google.appengine.tools.development.DevAppServerImpl.<init>(DevAppServerImpl.java:139) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:258) 
    at com.google.appengine.tools.development.DevAppServerFactory.access$000(DevAppServerFactory.java:36) 
    at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:226) 
    at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:224) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:224) 
    at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:76) 
    at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:60) 
    at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:84) 
    ... 4 more 
Unable to start embedded HTTP server 
com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries) 
    at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:102) 
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509) 
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093) 
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836) 
    at com.google.gwt.dev.DevMode.main(DevMode.java:311) 
[ERROR] shell failed in doStartupServer method 

我無法弄清楚如何解決這一問題。謝謝你的幫助。

回答

1

我相信你需要添加下面一行

<threadsafe>false</threadsafe> 

在這個文件中:

/Users/HP/Desktop/StockWatcher/war/WEB-INF/appengine-web.xml 

這就是告訴GAE如果您的應用程序是線程安全與否。如果你不確定是不是更好,你把它設置爲'錯誤'。

+0

謝謝,它的工作! – user2856188