{"id":1056,"date":"2009-10-09T12:50:28","date_gmt":"2009-10-09T10:50:28","guid":{"rendered":"http:\/\/upcenter.de\/wordpress\/?p=1056"},"modified":"2009-10-09T12:50:28","modified_gmt":"2009-10-09T10:50:28","slug":"spas-mit-gwt","status":"publish","type":"post","link":"https:\/\/upcenter.de\/wordpress\/spas-mit-gwt\/","title":{"rendered":"Spa\u00df mit GWT"},"content":{"rendered":"<p>Wie einige vielleicht wissen, investiere ich einen Teil meiner Freizeit derzeit in ein <a href=\"http:\/\/santa-daemonica.de\">Geheimprojekt<\/a>, bei dem unter anderem eine hochinteressante Technologie zum Einsatz kommt, die wir Informatiker nat\u00fcrlich mit einer nichtssagenden Abk\u00fcrzung benennen: <a href=\"http:\/\/code.google.com\/webtoolkit\/\">GWT<\/a>.<br \/>\nUm es kurz zu machen: GWT ist super cool, weil ich damit eine Javascript-Anwendung bauen kann, ohne eine Zeile Javascript zu programmieren. GWT erzeugt n\u00e4mlich Javascript aus Java.<br \/>\nMeistens. Manchmal auch nicht. Manchmal beschwert sich der Java-nach-Javascript-Compiler dar\u00fcber, dass Klassen nicht serialisierbar seien (weil GWT die Objekte \u00fcber seine eigene RPC-Schnittstelle schicken m\u00f6chte).<br \/>\nSchade ist, dass die Fehlermeldung meistens nichts dar\u00fcber aussagt, worin denn der Fehler genau besteht &#8211; oder in welcher Klasse er genau liegt. Letzteres erf\u00e4hrt man nur, wenn man den GWT-Compiler im DEBUG-Modus laufen l\u00e4sst, der eine \u00fcber 6 MB gro\u00dfe Ausgabe erzeugt. Zuviel f\u00fcr das Konsolenfenster von Eclipse, also starte ich den Compiler von der Kommandozeile:<br \/>\n<code>java -cp \/home\/uwe\/Develop\/gwt-sdk\/gwt-dev-linux.jar:\/home\/uwe\/Develop\/gwt-sdk\/gwt-user.jar:src\/:lib\/gwt-fx-v4.0.0.jar:lib\/jdo2-api-2.3-eb.jar com.google.gwt.dev.Compiler -logLevel DEBUG de.ludetis.santadaemonica.SantaDaemonica > gwtc.log<\/code><br \/>\nEine Suche im Logfile nach ERROR zeigt dann endlich das Problem:<br \/>\n<code>Type 'de.ludetis.game.model.Country' is not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' or 'java.io.Serializable' nor does it have a custom field serializer<\/code><br \/>\nLiebe Coder bei Google, diese Ausgabe geh\u00f6rt in ein log.error(), nicht in ein log.debug(). Ich w\u00fcrd&#8217;s ja \u00e4ndern, aber ich finde die Stelle in eurem Code nicht. Deshalb schreib ich jetzt das &#8222;implements Serializable&#8220; in die Country-Klasse und mache weiter.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie einige vielleicht wissen, investiere ich einen Teil meiner Freizeit derzeit in ein Geheimprojekt, bei dem unter anderem eine hochinteressante Technologie zum Einsatz kommt, die wir Informatiker nat\u00fcrlich mit einer nichtssagenden Abk\u00fcrzung benennen: GWT. Um es kurz zu machen: GWT ist super cool, weil ich damit eine Javascript-Anwendung bauen kann, ohne eine Zeile Javascript zu &hellip; <a href=\"https:\/\/upcenter.de\/wordpress\/spas-mit-gwt\/\" class=\"more-link\"><span class=\"screen-reader-text\">Spa\u00df mit GWT<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-1056","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/posts\/1056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/comments?post=1056"}],"version-history":[{"count":2,"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/posts\/1056\/revisions"}],"predecessor-version":[{"id":1058,"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/posts\/1056\/revisions\/1058"}],"wp:attachment":[{"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/media?parent=1056"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/categories?post=1056"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/upcenter.de\/wordpress\/wp-json\/wp\/v2\/tags?post=1056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}