0 Replies Latest reply on Jun 7, 2006 11:06 AM by Thomas Diesler

    Understanding WS4EE clients

    Thomas Diesler Master

      Please remember that with web services the client and the server
      are fundamentally disconnected. There are server side issues
      and client side issues - DO NOT MIX the two.

      In other words, if you setup an ejb3 endpoint using jsr181 any client
      that adhers to the abstract contract in wsdl can talk to that endpoint.

      If you want to implement a WS client using JBossWS (to what server
      impl it talks to does not matter) you use wstools to generate the
      WS4EE required artifacts from wsdl. The artifacts are

      - Service Endpoint Interface (SEI)
      - [User Types]
      - [User Exceptions]
      - jaxrpc-mapping.xml

      The standard JAXRPC ServiceFactory does not have an API that
      takes jaxrpc-mapping.xml into account. That is a flaw in the spec that
      has been fixed with JSR109 preconfigured stubs that can be obtained
      from JNDI in a J2EE-1.4 compliant appserver. Alternatively you use
      the JBossWS propriatary API to point to the
      CLIENT SIDE REQUIRED jaxrpc-mapping.xml.

      Please make sure, you understand J2EE application clients i.e. the
      benefit of runing your client app on a tiny jboss instance.

      http://wiki.jboss.org/wiki/Wiki.jsp?page=JBWSFAQClientModel

      Most folks that have issues with WS clients do not understand the
      WS4EE client side programming model or don't realize that jaxrpc-mapping.xml is needed to bridge the gap between
      wsdl and java.

      Other stacks do java reflection (i.e. guesswork that ignors the
      abstract contract) or have another propriatary way to bridge that gap.