# GWT 2.1.1 mit Java 1.6 statt 1.5



## Rahmspinat (24. Jan 2011)

Hallo Leute,

wenn ich mit GWT arbeite habe ich das Problem, dass ich mein Projekt statt mit Java 1.6 mit Java 1.5 kompilieren muss. Das finde ich nicht so schön.

Wenn ich das ganze mit 1.6 kompiliere läuft nichts in bezug auf RPCs, mit 1.5 habe ich allerdings keine probleme. Ich will aber auch nicht freiwillig einen Rückschritt in kauf nehmen...

Ich seh z.B. bei Google dass dort die annotation @Override benutzt wird. Die werden mir aber mit Java 1.5 als fehler angezeigt. Ich hab nirgens gefunden wie das mit Java 1.6 funktionieren soll.

Habt ihr eine Ahnung wie ich mein Projekt trotzdem mit Java 1.6 kompilieren kann?

Ich arbeite mit Eclipse, dem Plugin: "Google Plugin for Eclipse 3.4" und dem Tomcat.

Im hosted mode von google funktionierts allerdings mit 1.6. was ich etwas verwirrend finde...

gruß rahmspinat


----------



## maki (24. Jan 2011)

Java 5 (1.5) unterstützt kein @Override an Methoden die durch Interfaces vorgegeben und implementiert werden (anstatt überladen/überschrieben), das geht erst ab Java 6(1.6).


----------



## Rahmspinat (24. Jan 2011)

Danke für die Antwort, aber das war leider nicht die Frage 


Ich weiß dass es das nicht unterstützt ich sehe nur bei Google im GWT Code  @Override stehen, das mir verrät, dass die Java 1.6 benutzen müssten.

Ich konnte bislang aber nur Java 1.5 für GWT-Projekte nutzen. Jetzt würde ich gerne wissen, wie ich das hinbekomme dass ich GWT-Projekte mit Java 1.6 kompiliere und damit eine gut funktionierende Webanwendung rausbekomme


----------



## MySelV (24. Jan 2011)

Hi,

dafür wäre mal das Problem was du mit Java 1.6 hast ganz hilfreich. Was kompiliert denn nicht? 

Grüße
Erik


----------



## Rahmspinat (24. Jan 2011)

Beim kompilieren werden weder Fehler mit Java 1.5 noch 1.6 angezeigt.

Allerdings funktionieren die RPCs nur bei der Java 1.5 Version, wenn ich das kompilierte Projekt in den Tomcat packe.


Wenn ich das Projekt mit dem hosted-Mode von Google starte (zum testen) funktioniert auch Java 1.6!


----------



## MySelV (24. Jan 2011)

Hi,

was heißt denn "funktioniert nicht"?

1) Wird der RPC abgesetzt, also der Service aufgerufen?
2) Kommt der RPC beim Server an?
3) Wird die Antwort zum Client gesendet?

Alles Punkte wo der Fehler auftreten kann, also mal debuggen. Wobei es seltsam ist, dass es mit 1.5 funktioniert. Achja - die Development Console bringt auch keine Fehler?

Grüße
Erik


----------



## Rahmspinat (24. Jan 2011)

Ach wenn ich mit 1.6 kompiliere stell ich gerade fest, bekomm ich das gar nicht auf den tomcat.

da wird mir folgender Fehler in der "catalina.2011-01-24.log" angezeigt:


```
INFO: Deploying web application archive greeting.war
24.01.2011 16:27:43 org.apache.tomcat.util.modeler.Registry registerComponent
SCHWERWIEGEND: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/greeting,J2EEApplication=none,J2EEServer=none
24.01.2011 16:27:43 org.apache.catalina.startup.HostConfig deployWAR
SCHWERWIEGEND: Error deploying web application archive greeting.war
java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class greeting.server.GreetingServiceImpl)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1854)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108)
	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58)
	at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297)
	at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1068)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4339)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:850)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:518)
	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1288)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:592)
	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
	at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
	at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
	at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1473)
	at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:250)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:574)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1527)
	at java.lang.Thread.run(Thread.java:595)
```

Wenn ichs mit Eclipse direkt also im hosted mode starte, kommt weder bei 1.5 noch 1.6 ein Fehler

Mehr an Fehler logs bekomm ich leider nicht raus.

Eine idee?

EDIT: Das ist übrigens das absolute standardprojekt, dass automatisch angelegt wird wenn man mit dem Eclipseplugin ein GWT Webprojekt anlegt. Da ist man ja eigentlich der Meinung das müsste so funktionieren.


----------



## maki (24. Jan 2011)

Tomcat läuft auf einer JRE/JDK 1.5 und kann deswegen nix mit "1.6 Bytecode" anfangen


----------



## Rahmspinat (25. Jan 2011)

Tadaaaaaaa 

Danke euch alle für die Hilfe und Maki danke für den finalen tipp 

Jap mein Tomcat war das problem, der hat nämlich "nur" java 1.5 gehabt. Ich habe mir ebend den neuen Tomcat (Apache Tomcat/7.0.6) installiert und siehe da! Es geht  der unterstützt nämlich Java 1.6.

Dann hab ich gerade auf meinen Webserver geschaut und der hat tomcat 6 mit java 1.6.

Ich dachte anfangs ich brauche die neue Tomcat version um das aktuelle Java laufen zu lassen.... aber wie man wieder sieht "wer lesen kann ist klar im vorteil": auf dieser seite Apache Tomcat - Which Version Do I Want? steht gar nicht exakt welches java für welchen tomcat gebraucht wird, sonder welches Java Mindestens benötigt wird...


oh man, das sind solche Fehler... die passieren einem auch nur einmal 


Danke für eure Geduld!

gruß Rahmspinat


----------

