Saturday, March 29, 2008

Netbeans Platform based Web Service client

I'm writing my diploma thesis and I have choosed Netbeans Platform as base for my program. It will be client-server application. Client will invoke web service methods provided by server. My troubles started here. I strugled a lot with these kind of messages:

interface com.sun.xml.ws.developer.WSBindingProvider is not visible from class loader

Unable to create Provider: com.sun.xml.ws.spi.ProviderImpl cannot be cast to javax.xml.ws.spi.Provider

There is no exact tutorial (for Netbeans 6.x and JAX-WS 2.1) describing how to invoke web service from Netbeans Platform application.

So here are steps:
  1. Create web service and client using this tutorial
  2. Create library wrapper module for web service client (you don't need to include JAX-WS libs, only your client jar)
  3. In your wrapper module add following dependencies (important):
    • JAX-WS 2.1 API
    • JAX-WS 2.1 and JAXB 2.1 Library (for this you have to check Show Non-API Modules in "Add Module Dependency" window)
  4. If you try to build module after these steps it will fail telling you that your module is not friend of "path-to-netbeans"/java2/modules/org-netbeans-modules-websvc-jaxws21.jar
  5. Right click on JAX-WS 2.1 and JAXB 2.1 Library and choose Edit. Select Implementation Version.
That's all. Happy web service-ing :) By the way it would be nice if we could add web service client in module project like we do that in j2se project. There would not be need for client wrapper.

Tuesday, March 4, 2008

Netbeans T-shirt

I've got it. Thank you James! :)