, , , ,

During summer intern at progress software, I started working on a project through which I came across various open source platforms like Google app engine , Apache-CXF etc. etc.

At the end of the project, I with help of my mentors Prasad Kumbhare and Mahesh Sankaran were able to host CXF-RS app on GAE.

Basically what  we were interested in doing is to provide support for CXF Restful applications on GAE

After browsing through web we made our requirements clear, we understood that

With the launch of Google App Engine, web applications are now very easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it’s ready to serve your users.

CXF is one of the most popular web services framework used currently to develop web services. So a lot of people today are asking for CXF support on GAE. At present, GAE does not support CXF and our goal is to fulfil this requirement.

CXF-RS Support on GAE

Following issues were identified with CXF that prevent it to run on GAE:

1.      CXF and JAXB use file IO at some places for logging purpose which is restricted on GAE

2.      CXF spawns threads for one way operations. Threads are not supported on GAE.

3.      CXF uses JAXB for xml processing. Changes in JAXB source should be integrated with CXF

To use CXF services on GAE, follow the steps below:

1.    Create   GAE project using eclipse plug-in provided by Google.

2.    Add following jars to your class path and also copy them to your projects WEB-INF/lib folder.

  1. CXF Jars from <CSF_ROOT>\lib folder.
  2. Modified CXf.jar and jaxb.jar

3.    Modify web.xml to use CXF-Servlet for handling web requests.

4.    Copy CXF-Servelt.xml from CXF Installation to WEB-INF folder.

So after identifying the issues we first have to make sure that we resolve these issues to get our Apache CXF-RS app running on GAE . In future posts I will tell about the changes I had done to get it running.