ActiveSOAP is a lightweight & easily embeddable, StAX based framework for working with document centric Web Service, REST services and for implementing high performance SOAP intermediaries.
ActiveSOAP uses StAX (the Standard API for pull parsing) to implement the core framework and to implement the SOAP protocol - to parse and process the SOAP headers - which is particularly useful when performance is critical or when you are implementing a SOAP router, load balancer or intermediary.
ActiveSOAP can then delegate the XML events for a specific header or for the SOAP body to a plugin Handler so that messages can be processed using the XML marshalling and/or parsing tool of your choice, such as:-
- SAX, StAX or DOM
- Traditional XML APIs like SAX, TrAX, DOMish APIs
- JAX-RPC / SAAJ via Axis
- alternative SOAP tools like XFire
To get a feel for how you can work with document centric web services using ActiveSOAP and XMLBeans, take a look at some Examples.
There is also a dynamic client invocation API which you can use if you don't want to generate interfaces from your WSDLs such as in this example
We're quite a new project but have been making good progress. We are complying with most of the test cases in SOAP 1.2 conformance tests and have transports for HTTP and JMS with more to come.
We should be able to grow ActiveSOAP to support various SOAP protocols implemented in pure StAX such as WS-Addressing, WS-Eventing, WS-RM etc.
So far we have support for XMLBeans, StAX and SAX but should have other marshalling tools implemented shortly.
REST support and QName routing
One of the core features of ActiveSOAP is when an XML request is processed, the QName of the element is extracted and then passed on to some Handler object for processing. The HandlerRegistry is used to find the correct Handler for a given QName.
This architecture allows us to support multiple different versions of SOAP concurrently as well as supporting pure REST based services. Indeed we can support pure REST services both with and without the SOAP protocol at the same time, allowing you to use the SOAP protocol and other WS-protocols where they make sense - or stick to pure XML REST services where the SOAP overhead is not worth the cost.
Confluence RSS Feed
Confluence Syndication Feed