6 Replies Latest reply on Mar 23, 2007 5:24 AM by romeufigueira

    dynamic clients for JBossWS/JAX-WS endpoints

    mreis

      Hi,


      can anyone tell me whether it is possible to create dynamic clients (i.e. clients that do not rely on any "stub artefacts" at compile time) for JBossWS/JAX-WS based endpoints and if possible, point out the best way(s) to do that?

      The dynamic client must also work with custom complex datatypes.

      If someone could point me to an example that would be great ...

        • 1. Re: dynamic clients for JBossWS/JAX-WS endpoints
          oskar.carlstedt

          Hi!

          I think you have to create you own web service provider. There is a section about this in the user guide (http://jbws.dyndns.org/mediawiki/index.php/JAX-WS_User_Guide#Endpoint_Provider)

          Doing this gives you the possibility to do whatever you want to do with your request and response - they are all under your control.

          Best
          Oskar

          • 2. Re: dynamic clients for JBossWS/JAX-WS endpoints
            mreis

            Hi,


            isn't @WebServiceProvider something that acts on the server side, that receives SOAP (or XML/HTTP in the case of RESTful services) messages, does something with the incoming message (and probably returns a result as a SOAP or XML/HTTP message)?

            I thought that I wouldn't have to bother about the server side implementation of the WebService (it may be @WebService or @WebServiceProvider or something else) on the client side (that should only interface with the WSDL ServiceContract and not necessarily know anything about the server side expect from that) - Please correct me if that assumption is NOT correct!

            So I think I will have to do something with Dispatch (https://jax-ws.dev.java.net/jax-ws-ea3/docs/dispatch.html) rather than Provider, but it is not clear to me if/how I can avoid writing JavaObjects for my custom complex data types.

            Any further help/guidance is very much appreciated.

            • 3. Re: dynamic clients for JBossWS/JAX-WS endpoints
              oskar.carlstedt

              Hi!!

              Sorry, my mistake - didn't read client. You should go for dispatch when it comes to clients. Then you have full control about everything.

              Best
              Oskar

              • 4. Re: dynamic clients for JBossWS/JAX-WS endpoints
                oskar.carlstedt

                Hi again,

                Have a look at the dispatch section in the JBossWS user guide. here is a link with a code snippet.

                http://jbws.dyndns.org/mediawiki/index.php/JAX-WS_User_Guide#Dispatch

                //Oskar

                • 5. Re: dynamic clients for JBossWS/JAX-WS endpoints
                  mreis

                  After some more research I'm pretty sure that in the case of a truly dynamic client (i.e. no client-side stub generation from a remote WSDL before running the client that then invokes the WebService call) that should interact with a WebService operation, that has one or more custom complex input/output parameters, I can only create ("manually and dynamically") and then send SOAP messages via Dispatch (even JAXB-Dispatch won't help in my case).

                  In the case of simple data types I could still use the "old" JAX-RPC DII client approach.

                  Can you (or someone else) think of other possibilities or tell me if I'm completely wrong?

                  Does anyone know of a Java library that can create "sample" SOAP messages (see Altova XML Spy or Eclipse WebServices Explorer or Web Service Console Eclipse Plugin or ...) given a specific WebService operation in a WSDL (I know this question may be a bit off topic, but it seems as it would be a key building block in order to go with the JAX-WS Dispatch client)?

                  • 6. Re: dynamic clients for JBossWS/JAX-WS endpoints
                    romeufigueira

                    You can always look into SAAJ, with some effort (initial one), you can develop some classes and make a dynamic client.

                    As for generating SOAP messages, try SOAPui, either the standalone app or the Eclipse plugin for JBoss IDE.