2012-09-06 21 views
6

Yakın zamanda Google eclipse eklentisini kullanarak yeni bir gwt/gae projesi oluşturmaya çalıştım. Bunu geçmişte başarıyla yaptım ve geliştirme aşamasında sorun yaşamayan birkaç projem var.boş gösterici istisnası

Web Uygulamasını başlatmaya çalıştığımda NullPointerException alıyorum. İşte yığın izi.

WARNING: EXCEPTION 
java.lang.ClassNotFoundException: com.google.api.server.spi.SystemServiceServlet 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:176) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at org.mortbay.util.Loader.loadClass(Loader.java:91) 
    at org.mortbay.util.Loader.loadClass(Loader.java:71) 
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73) 
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) 
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.jetty.Server.doStart(Server.java:224) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:196) 
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:239) 
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:146) 
    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:1068) 
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811) 
    at com.google.gwt.dev.DevMode.main(DevMode.java:311) 
Sep 6, 2012 2:42:25 PM com.google.appengine.tools.development.ApiProxyLocalImpl log 
SEVERE: javax.servlet.ServletContext log: unavailable 
javax.servlet.UnavailableException: com.google.api.server.spi.SystemServiceServlet 
    at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79) 
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) 
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.jetty.Server.doStart(Server.java:224) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:196) 
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:239) 
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:146) 
    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:1068) 
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811) 
    at com.google.gwt.dev.DevMode.main(DevMode.java:311) 

Sep 6, 2012 2:42:25 PM com.google.apphosting.utils.jetty.JettyLogger warn 
WARNING: failed SystemServiceServlet: java.lang.NullPointerException 
Sep 6, 2012 2:42:26 PM com.google.apphosting.utils.jetty.JettyLogger warn 
WARNING: Failed startup of context c[email protected]75e04ee8{/,/Users/bucky/Documents/workspace/Birthday/war} 
java.lang.NullPointerException 
    at java.lang.Class.isAssignableFrom(Native Method) 
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) 
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.jetty.Server.doStart(Server.java:224) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:196) 
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:239) 
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:146) 
    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:1068) 
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811) 
    at com.google.gwt.dev.DevMode.main(DevMode.java:311) 

Bunu nasıl ayıklayacağımı bilmiyorum. Bu uygun bir çözüm olmayabilir rağmen

+0

Ben JDK 1.6 ve Eclipse indigo kullanarak aynı sorunu yaşıyorum - Nedense uygulama kodu Google'ın App Engine dağıtmadan tarafından bir kez çalışmak için başardı. Eclipse daha sonra herhangi bir sorun olmadan derlerdi. Bir adım daha atmak için şanssız bir şekilde tekrarlamayı denedim ve hata geri geldi. – TeckniX

+0

http://stackoverflow.com/questions/12060233/http-503-error-gwt-jetty-server-service-unavailable – kreker

cevap

0

, o benim ortamında çalışan başardı: indigo son sürümüne

  • Güncelleme tutulma (3.7.2)
  • kaldırma/Google'ı yüklemek App Engine araçları
  • (kontrol 'projesi örnek kod üret' olabilir) öğretici aşağıdakilerden yeni bir proje oluşturun ve o sh sen

Run için ve onu merhaba dünyanın tüm katacak Gitmek için iyi olabilir.

ps: bazı nedenlerden dolayı tutulmam herhangi bir hata ayıklama çıkışı göstermiyor, ancak dev_appserver.sh artık hatalarla ilgili şikayet etmiyor.

+0

Bir yan yorum olarak, Eclipse'nin benimkini neden çalıştırmayacağını anladım. com.appengine.tools.development.DevAppServerMain eksik - Dışarı çıkıyor, basitçe com.google.appengine.eclipse.sdkbundle_1.7.1/appengine-java-sdk adresinden savaşınıza/WEB-INF/lib/dizinine kopyalayabilirsiniz. 1.7.1/lib/appengine-tools-api.jar - Bundan sonra her şey sorunsuz geçti. – TeckniX

4

Google Plugin (GWT + GAE) ile yeni bir Eclipse Juno yüklemesi yaptım. Şimdi eklentinin sürekli web.xml dosyasını değiştirmeye çalıştığını fark ediyorum.

Bu servlet tanımını eklemeye çalışır: Ben olmasını engellemek için nasıl anlamaya edemedik

<servlet> 
    <servlet-name>SystemServiceServlet</servlet-name> 
    <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class> 
    <init-param> 
     <param-name>services</param-name> 
     <param-value/> 
    </init-param> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>SystemServiceServlet</servlet-name> 
    <url-pattern>/_ah/spi/*</url-pattern> 
    </servlet-mapping> 

ama sürekli kontrol önlemek için bu dosyayı geri alma gerekir çünkü bu gerçekten sinir bozucu bu değişikliklerde.

Bu sunucu uygulamasını web.xml dosyasından kaldırmayı deneyin. Herhangi bir amaca hizmet etmiyor gibi görünüyor. Google Cloud

+0

Servlet'i web.xml'den kaldırmak için önerdiğiniz yanıt mı? Bu, bir cevabı bir sorudan daha çok okumak gibi, özetinizi ilk önce biraz daha açık hale getirmiş olabilir. –

+0

teşekkürler SDK 1.7.3'e geçişte aynı problemi yaşadım, gerçekten de web.xml dosyasını değiştirip, sunucuyu bozan SystemServiceServlet'i ekleyerek. Çıkarma işleri. – doright

+1

Web.xml dosyanızı projenize her kaydettiğinizde değiştirmeye devam edecektir. Bunu kapatmak için, proje ayarlarınızı Eclipse'de açın, ardından Yapıcılar'ı seçin ve "Google App Engine Proje Değişikliği Bildiricisi" kutusunun işaretini kaldırın. – bpossolo

2

ile ilgisi olabilir. Eclipse içinden 1.6.4'ten 1.7.3'e güncellediğimde ve bazı nedenlerden dolayı güncelleştirme yanlış gittiğinde ve kütüphanelerde her iki versiyonun bitlerini bıraktığımda bu bana oldu; Bunun herkese olan şeyin olduğunu düşünürdüm. Düzeltme, tüm AppEngine projelerini kapatmak ve güncellemeyi tekrar yapmak, ardından 1.7.3'ü varsayılan sürüm olarak değiştirmektir. Eğer hala bir sorun varsa, sadece kaldırmanız gereken bir 1.6.4 yerel destek kütüphanesi olabileceğinden, özellikler -> derleme yolu -> kütüphanelere bakın, daha sonra bu sunucu ile yerinde çalışır.

Bu sunucu uygulamasının ne yaptığını bilmek güzel olurdu, Google'da hiçbir doküman bulamadım, ancak eklentinin düzgün bir şekilde yapılandırılması durumunda sorun çıkmayacak.

1

Gelecekte aynı soruna sahip olanlar için de çözümüm göndereceğim.

Görünüşe göre benim problemim sadece bozulmuş olan GWT kütüphaneleriydi.> Özellikler - -> Google -> Web Toolkit -> aynı sürümünü belirtmek 'Use belirli SDK'

  • tıklayın yaptım Peki

    • Projesi devam oldu varsayılan (sadece Eclipse GWT kitaplıklarını ve bağlantılarını yeniden oluşturur).

    Her şey bundan sonra iyi çalıştı.

    Alkış

  • İlgili konular