2 Replies Latest reply on Nov 6, 2007 10:41 AM by Brad Marshall

    Can I point a wsconsume-generated client to a local WSDL fil

    Brad Marshall Newbie

      I am calling an Axis/Tomcat web service with a JAX-WS client proxy generated by wsconsume (from JBossWs 2.0.1 GA) run against our hand-coded WSDL file. When we execute the client, the constructor of the xxxService class is obtaining the WSDL from the Web service (via the ?WSDL command) and performing a dynamic element binding at run-time (at least we think that?s what happening).

      The problem is that the Axis Web service is returning a WSDL with syntax errors and outright mistakes. This isn?t a problem with a client proxy generated by the Axis WSDL2Java from the hand-coded WSDL. The WSDL2Java client classes are statically bound and do not access the service?s WSDL at run time. WSDL2Java-generated clients have been in production for more than a year without any difficulty. The wsconsume-generated client throws an exception and terminates when it encounters the first error in the WSDL generated by the Axis run-time ? I never get out of the constructor of the xxxService class.

      Yet wsconsume had no difficulty digesting the hand-coded WSDL. We?ve studied the WSDL for a very long time now, and do not believe there is an error in its design. Indeed, the fact that it works with WSDL2Java-generated clients shows that the WSDL is designed properly. We are convinced that the AXIS Web Service run-time is making an error generating the WSDL on demand.

      Can I easily override the Service class?s retrieval of the WSDL from the Web service and point it instead at a local copy of the WSDL file? In out environment, every caller of the Web service also implements their own Web service with the identical interface, so we can enforce a rule that they have a copy local of the valid WSDL file.