Thursday, September 29, 2005

My JAX-RPC Wishlist

Have you ever implemented a web service with JAX-RPC? I did, and it was not that easy. Our technical requirements were the following:

  1. we needed to be able to send/receive asynchronous (one-way) document/literal SOAP messages

  2. we needed a convenient way to parse/generate the XML

  3. we needed to be able to send custom SOAP faults for asynchronous error conditions

  4. we needed to be able to process header blocks easily

  5. we needed reasonable support for header bindings in the WSDL document

  6. we needed to be able to associate server-side header information with thread-specific information in the service being called

  7. If possible, we wanted to be able to associate handlers with custom, servlet-based endpoints (not JAX-RPC endpoints)

With the current state of the art in Java's JAX-RPC and JAXB, this was certainly possible but not at all straightforward. 1 and 2 are not so much of a problem, but the Java web services stack falls short on all the other items. So if any of the JAX-RPC committee members read this: I hope these comments or experiences can help in improving/clarifying the JAX-RPC technology...