You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

SOAP stacks and XML marshaling

We now use JAX-WS and JAXB 2.0 to create POJOs and interfaces for the common WS-* specifications like WS-Addressing, WS-Notification, WS-ReliableMessaging, WS-Resourceframework etc. The only downside of this approach is its Java 5 specific. We hope with a tool like Retroweaver can one day allow JAX-WS and JAXB 2.0 based code to work perfectly on Java 1.4 JVMs. For now if you want a solution for Java 1.4 we have the XMLBeans based solution you can try our previous effort of using XMLBeans.

The wspojo module creates the POJOs and service interfaces for the common WS-* interfaces (WS-Notification, WS-RM, WS-Addressing, WS-Resource*). Here is the javadoc.

WS-Notification

The WS-Notification support is currently implemented as POJOs which can then either be called directly inside an application or can be wrapped up as a remote web service using a JAX-WS compliant SOAP stack. We are currently using the JAX WS RI which is licensed under CDDL.

For more detail, try the javadocs of the code.
We have interfaces for the WS-Notification services in the org. servicemix.ws.notification package. These interfaces just depend on the XMLBeans generated from the WSDLs.

e.g. here's the NotificationConsumer interface

Using WS-Notification

To be able to publish or subscribe you need either a NotificationConsumer or NotificationBroker. The current implementation of both is the ActiveMQNotificationBroker - which will create a connection to an ActiveMQ broker (by default making an embedded broker inside the same JVM].

You can then publish WS-Notification messages as follows...

Error formatting macro: snippet: java.lang.NullPointerException

You can perform a subscription as follows

Error formatting macro: snippet: java.lang.NullPointerException

Runtime dependencies

Apart from the usual ActiveMQ dependencies (either client side only or full server side dependencies depending on if you're using an embedded broker) the WS-Notification provider has the following dependencies

  • xmlbeans-*.jar
  • StAX API (stax-api-*.jar)
  • a StAX implementation (either stax-ri-.jar or woodstox-.jar)
  • activesoap-*.jar (only required for invoking remote WS services when dispatching notifications)
  • No labels