Building a JSON web service with Java and axis2january 23rd, 2009 ·
9 comments
It is said that in Java usually the easiest things are the hardest. The following is a nice example as it took me some time to figure out how to do it.
I wanted to build a simple URL request based Web Service in Java that returns an JSON object. Yes, you can do that with a simple servlet too, the advantage of using
Axis2 is that you can also call your deployed services using soap without any configuration changes.
- Download axis2 as war and install it in your Servlet Container
- Download the dynamicresponsehandler module and add it to axis by copying it to WEB-INF/modules
- Patch jettison or
Download my patched version and replace it with the one installed in WEB-INF/lib
- Add the dynamicresponsehandler module reference to the axis2.xml configuration (located in WEB-INF/conf ):
<module ref="DynamicResponseHandler"/>
- Add the JSON message formatters to the axis2.xml:
<messageFormatter contentType="application/json" class="org.apache.axis2.json.JSONMessageFormatter"/><messageFormatter contentType="application/json/badgerfish" class="org.apache.axis2.json.JSONBadgerfishMessageFormatter"/>
- Add JSON message builders to the axis2.xml:
<messageBuilder contentType="application/json" class="org.apache.axis2.json.JSONOMBuilder"/><messageBuilder contentType="application/json/badgerfish" class="org.apache.axis2.json.JSONBadgerfishOMBuilder"/>
- Start your servlet container and test the standard version service by calling this URL:
Http: // localhost: 8080/axis2/services/version/getversion? Response = application/JSON
Now you are ready to add your own web services. Here you can find an example
How to deploy a simple pojo service. Have fun!
Update: Zeno (see comments) sent me
Patch for usage with jettison 1.2-otherwise he has ed a nullpointerexception. I haven't checked it, but I hope it helps you! Thanks Zeno!