Showing posts with label GWT. Show all posts
Showing posts with label GWT. Show all posts

Wednesday, January 12, 2011

GAE/GWT Book: Google App Engine Java and GWT Application Development

Daniel Guermeur asked me to share some information on this new GAE/GWT book.

As you might know from my GWT blog post about hosting GWT apps you can deploy your app to a simple servlet container like Tomcat.  Recently Google App Engine started supporting GWT applications for deployment, so this gives you the ability to use Google's massive infrastructure to deploy your GWT application.  There are some things that you will need to do differently however when deploying to GAE vs a standard servlet container, and the book 
Google App Engine Java and GWT Application Development is there to help you though the process of building your GWT application and deploying it to Google App Engine.  Through the different chapters of the book you will follow the authors as they build and deploy their GWT app Connectr.


To get a feel for what to expect with this book you can download Chapter 9 - Robustness and Scalability: Transactions, Memcache,and Datastore Design - for free!


Along with the free chapter 9 content you also will find:
  • An overview of what the book covers
  • A listing of the chapters found in the book with information on what topics will be covered
  • A section introducing the two authors Daniel Guermeur and Amy Unru
You can also find a nice description of the book and its chapters here if you prefer not to download the PDF file of chapter 9.


The book is now available for order now from Amazon.com


Amazon Reviews for this book
Use the Connectr App found in the book.


If you already have this book you can also
download the code from Packt.  Enter in your email address and you will receive a link to download link for the Connectr App source as found in the book.  For those of you who are interested Connectr source code is licensed under the Apache License, Version 2.0.

The Authors blog can be found here
 where you will find code updates and errata when they become available. 

Saturday, August 1, 2009

GWT Google Plugin for Eclipse 1.1.0

For those of you using the GWT Eclipse plugin there is a new version. Of course if you installed in Eclipse and have automatic updates enabled then you probably know about this update already.

Here are some of the main features of this release:
- Support for Eclipse 3.5 (Galileo)
- GWT RPC interface validation with quick fixes
- App Engine DataNucleus enhancer console no longer steals focus on save

The GWT group thread on this new version is here.

Depending on your version of Eclipse you have different URLs for installation:

- Eclipse 3.5 (Galileo) - http://dl.google.com/eclipse/plugin/3.5
- Eclipse 3.4 (Ganymede) - http://dl.google.com/eclipse/plugin/3.4
- Eclipse 3.3 (Europa) - http://dl.google.com/eclipse/plugin/3.3

Friday, February 13, 2009

GWT 1.6 Milestone 1 available for download

This is the latest GWT release, it is a milestone release so be sure to only use it for testing.
If you are like me and use Eclipse to develope your GWT application there is a nice change that is part of this release. You no longer need to run these commands to create a new GWT Eclipse project:

C:\Program Files\gwt-windows-1.5.3>applicationCreator.cmd -eclipse MyGWTProject -out c:\MyGWTProject com.mynumnum.client.MyClass
Created directory c:\MyGWTProject\src
Created directory c:\MyGWTProject\src\com\mynumnum
Created directory c:\MyGWTProject\src\com\mynumnum\client
Created directory c:\MyGWTProject\src\com\mynumnum\public
Created file c:\MyGWTProject\src\com\mynumnum\MyClass.gwt.xml
Created file c:\MyGWTProject\src\com\mynumnum\public\MyClass.html
Created file c:\MyGWTProject\src\com\mynumnum\public\MyClass.css
Created file c:\MyGWTProject\src\com\mynumnum\client\MyClass.java
Created file c:\MyGWTProject\MyClass.launchCreated file c:\MyGWTProject\MyClass-shell.cmd
Created file c:\MyGWTProject\MyClass-compile.cmd

C:\Program Files\gwt-windows-1.5.3>projectCreator.cmd -eclipse MyGWTProject -out c:\MyGWTProject

Created directory c:\MyGWTProject\test
Created file c:\MyGWTProject\.project
Created file c:\MyGWTProject\.classpath


Now all you need to do is run the command webAppCreator:

C:\Program Files\gwt-windows-1.6.0>webAppCreator.cmd -out c:\MyGWT16Project com.
mynumnum.MyClass
Created directory c:\MyGWT16Project\src
Created directory c:\MyGWT16Project\war
Created directory c:\MyGWT16Project\war\WEB-INFCreated directory c:\MyGWT16Project\src\com\mynumnum
Created directory c:\MyGWT16Project\src\com\mynumnum\client
Created directory c:\MyGWT16Project\src\com\mynumnum\server
Created file c:\MyGWT16Project\src\com\mynumnum\MyClass.gwt.xml
Created file c:\MyGWT16Project\war\MyClass.html
Created file c:\MyGWT16Project\war\MyClass.cssCreated file c:\MyGWT16Project\war\WEB-INF\web.xml
Created file c:\MyGWT16Project\src\com\mynumnum\client\MyClass.java
Created file c:\MyGWT16Project\src\com\mynumnum\client\EchoService.java
Created file c:\MyGWT16Project\src\com\mynumnum\client\EchoServiceAsync.java
Created file c:\MyGWT16Project\src\com\mynumnum\server\EchoServiceImpl.java
Created file c:\MyGWT16Project\build.xml
Created file c:\MyGWT16Project\.projectCreated file c:\MyGWT16Project\.classpath
Created file c:\MyGWT16Project\MyClass.launch

Your new GWT 1.6 Project will be ready for import into Eclipse. Also you will notice that a simple client and server class is created in the example that demonstrates how to send and receive RPC requests.

Errors when launching your Eclipse GWT project in the GWT shell

You must create a lib folder in your 'project folder'/war/WEB-INF folder and copy gwt-servlet.jar into that folder.
After this is done you should be able to launch your new Project without this nasty error message:


2009-02-13 12:22:51.760::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2009-02-13 12:22:51.901::INFO: jetty-6.1.x
2009-02-13 12:22:52.229::WARN: failed echoServlet
java.lang.NoClassDefFoundError: com/google/gwt/user/client/rpc/RemoteService
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)