My initial plan was to use axis and to use the version provided by in jvm in Notes (/Domino? I cannot seem to figure out when to use Notes and when to use Domino, so I'll simply use Notes)... After exhausting trail'n' error I simply gave up and re-wrote everything in Spring.

This gave me the advantage of working without any Notes specific some-what-crappy-and-buggy-versions of axis - a framework which I haven't used for like 5 or 6 years... I use Spring on a daily basis, so this is just top dollah!

Anywho, this also gave me the advantage of being able to do my Java development in a plain Eclipse rather than some really horrible (imho) IDE provided by Notes (also known as the Designer). Again, being free of any specific Notes stuff I started by creating my Jaxb classes. Simply by using the maven-jaxb2-plugin for maven (for architectural reasons I'm stuck on 2.0.9). The power of the plugin is that you add the path to your xsds to the pom.xml and simply do a "mvn install" (read the documentation or catch me on twitter@sunlock). Then you have the model (e.g. xsd types), request, and response classes. Quite neat if I may say so.

Next up is the Spring part. If you have ever done any Spring development this is straight forward. Use Spring-WS and with a simply configuration your done! If you haven't your f*cked! :) Naaa, I have a breif tour on this page - and then your done.

Again, for architectural reasons I'm stuck on a old version of Spring, but that shouldn't stop you for doing some development in the newer versions.

My dependencies (thus being the files added to WEB-INF/lib on the Notes side) are:

  • commons-logging-1.1.1.jar (used by Spring)
  • spring-2.5.6.jar (older version, newest is currently 3.1)
  • spring-ws-1.5.9.jar (older version, newest is currently 2.0.2)
  • my-autogen-jaxb-classes.jar (my classes compiled by Jaxb - added to a jar)
  • my-webservice-consumer.jar (the actual implementation)

Please do notice this bug - currently we haven't had time to figure out what to do as it seems that this bug also exists in 8.5.3, but we're also looking into this.

As always, feel free to catch me on twitter@sunlock.