16 July 2008 - AjaxToaster Version 1.0.0.RC2 released.
AjaxToaster is an Ajax application server which makes it easy to create RESTful web services for rich web client applications. It runs under any of the main Java servlet containers (tomcat/glassfish/websphere/jboss/jetty) and you can download the war file and release notes now.
9 July 2008 - XMLToaster Version 1.0.12 released. Another small enhancement - You may now choose the type of logging that you want XMLToaster to use - either standard Java logging or Log4J. The jar file is now available for download.
8 July 2008 - XMLToaster Version1.0.11 released. The runtime is now Java 5 and you may now specify a namespace for an XML message that does not have an associated XSD schema.
Read the rest of this entry »
Bookmark & Share:
Share or bookmark this page.
Posted in News | Comments Off
Build a RESTful Web Service in Just a Minute - Part 2
This article is the followup to the post Build a RESTful Web Service in Just a Minute, which showed how to build a REST web service which returned a person record from a database.
This article will show you how you can write and deploy another one-minute web service - this one maintains the person table and in subsequent articles we will see AjaxToaster services that handle complex data structures such as you might find in real world applications.
Read the rest of this entry »
Bookmark & Share:
Share or bookmark this page.
Posted in News | No Comments »
Build a RESTful Web Service in Just a Minute
This article will show you how you can write and deploy a RESTful web service (that does something useful!) in around a minute.
It is planned to be the first part in a series of articles that will use AjaxToaster to demonstrate RESTful web services interacting with a relational database. In this first article we will show you a service that retrieves a simple data structure, in subsequent articles we will move onto a service that updates data and then services that handle complex data structures such as you might find in real world applications.
Read the rest of this entry »
Bookmark & Share:
Share or bookmark this page.
Posted in News | 1 Comment »
We decided that one of the biggest things missing from ajaxToaster was formal descriptions of the web services. Historically WSDL has been used to describe the operations and input/output messages for WS web services, but If you’ve ever looked at a WSDL document, you’ll understand why we have decided to implement Kris Zyp’s JSON service-mapping-description proposal instead. Read the rest of this entry »
Bookmark & Share:
Share or bookmark this page.
Posted in News | No Comments »

The Smell of Burning XML - Introducing XMLToaster
Java can be a very blunt tool when it comes to working with XML - there are lots of concepts to understand, lots of APIs to learn, and lots of code to write. Even when you have made it through the concepts and APIs you’ve only made it to the starting line!
Now you need to get some data to go with your XML, which often means learning yet another API to integrate with your relational database!
In this article I will explain how the XMLToaster can simplify the process of working in the XML and relational database worlds, without giving away any of the power and flexibility of either.
Read the rest of this entry »
Bookmark & Share:
Share or bookmark this page.
Posted in Documentation | No Comments »
We have reviewed how persistance is managed in v1.0.8.
The xmltosql parser has been rewritten to support a more human readable psuedo-sql syntax in addition to the current XML configuration.
An example of updating a table with the new, simplified syntax: If this is the xml message to save to the database….
<message>
<dish id=12>
<dishname>Dry Toast</dishname>
<dishtype>MAIN</dishtype>
<prices>
<retail>1.50</retail>
<wholesale>0.05</wholesale>
</prices>
</dish>
<dish id=14>
:
etc
:
</dish>
</message>
Then the xmltoaster update statement you would need is…
update table menu using (update)
set
dishid = {message.dish.@id, key:1 },
dishname = {message.dish.dishname, type:'string'},
dishtype = {message.dish.type, type:'string'},
price = {message.dish.prices.retail }
;
onError('Error updating the menu table!!.', abort, rollback);
Easy, huh?
Bookmark & Share:
Share or bookmark this page.
Tags: Add new tag
Posted in News | No Comments »