1)Eclipse 3.3(I use this one, any other version should also be fine provided you have other plugins)
2)Flex Builder 3 plugin for eclipse
3)BlazeDS files(JARs and XMLs)
4)Google App Engine plugin for eclipse
Ok lets get started...
Create a Google App Engine Project. Enable Flex Nature for it.
Put project_name/war folder for Root Folder in Flex Builder configuration for the project.
Root URL : The URL where the Google App is running.
Root Context : Leave it blank.
Make sure you are running the server and validate the configuration.
Copy the XMLs from BlazeDS Project into WEB-INF/flex folder, heres the list of them
services-config.xml
proxy-config.xml
remoting-config.xml
messaging-config.xml
Copy the JARs into WEB-INF/lib folder, heres the list.
backport-util-concurrent.jar
commons-httpclient-3.0.1.jar
commons-logging-1.1.jar
concurrent.jar
commons-codec-1.3.jar
flex-messaging-common.jar
flex-messaging-core.jar
flex-messaging-opt.jar
flex-messaging-proxy.jar
flex-messaging-remoting.jar
Add xalan.jar also as I had faced the servlet initialisation problem without it.
MessageBrokerServlet failed to initialize due to runtime exception: Exception: java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model:
Add
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuwlnEAIC8xZOQF6p02LS3K_6T3QatA5Pn-l1mgBLPkTLE3-8wlwshJXyAu2sVDaCP5GAobqqDlwVyjlW83oQDPm0LNlYe-IdgJ42B4gy8N1_wltulCp1sYxVfmwPNsjytphDPyQ/s320/appengine.jpg)
to the appengine-web.xml
Add AMF Servlet to the web.xml
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8LEtyNOLhCpx1p4IXqo4tHxNxecAtBODYcf_wzBYHZHlRguOXEE_qtGfuLP1ObYCKM5iTKMQDcEzobLEBm4sv-1lESfz59ry3T5_ZaWiZk0Qmpw5XBLfEEro0JESO8G2amftdRQ/s320/servlets.jpg)
Make sure you have war/classes/META-INF/jdo-config.xml
Disable JMX by making the value false in services-config.xml
Disable the system redeploy by making the value 'false' in services-config.xml
Enabling this creates a thread when you redeploy the application, which is not allowed by GAE
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3ke_BSa5SmHwozYC3egbLBY1WNrhXIq_5DSs-xw6sKvyNvuuEa3y3iRKmR8nPgHcD7jGQovKuNJNtF6jhDmcxO7E28kZkBM1siQvnEmfJ817jIfFis1QGPG5b3zAr1NyvA6NDlg/s320/redeploy.jpg)
These steps are enough to have the Application running.