thanks!
On 11/13/07, James Mao <[EMAIL PROTECTED]> wrote: > Jax-ws spec allow you to do this: > > ((BindingProvider)port).getRequestContext().put( > *BindingProvider.ENDPOINT_ADDRESS_PROPERY*, > "http://foo.com/blah"); > > See this thread: > http://www.nabble.com/Why-does-a-JAX-WS-client-use-the-WSDL-at-run-time--tf3683059.html#a10315931 > > > Regards, > James > > > > I had some doubts along similar lines. > > > > Suppose that my client needs to access a web service published by > > different servers at multiple endpoint urls. These urls will be known > > only at runtime. How can I achieve this? (because if the wsdl url is a > > file then it has the address of the service) > > > > Arun says that when metro stubs are used the first call is used to > > invoke the wsdl and second to get the results. Can we do the same in > > CXF by specifying WS endpoint at runtime? > > > > Thanks! > > Mayank > > > > On 11/12/07, Abid Hussain <[EMAIL PROTECTED]> wrote: > > > >> Thanks, putting the wsdl in the classpath and using the following code > >> in the ServiceImpl class finally did it: > >> > >> static { > >> URL url = null; > >> try { > >> // url = new URL("file:etc/kvvservice.wsdl"); > >> url = > >> KvvServiceImplService.class.getResource("/kvvservice.wsdl"); > >> System.out.println("Using wsdl from (" + url + ")."); > >> } catch (Exception e) { > >> System.err.println("Can not initialize the default wsdl > >> from classpath:/kvvservice.wsdl"); > >> // e.printStackTrace(); > >> } > >> WSDL_LOCATION = url; > >> } > >> > >> Regards, > >> > >> Abi > >> > >> Glen Mazza schrieb: > >> > >>> Am Montag, den 12.11.2007, 11:08 +0100 schrieb Abid Hussain: > >>> > >>>> Hello everybody, > >>>> > >>>> I generated a client using wsdl2java and packed it in a jar, so that I > >>>> can use it in other applications. When generating the client using > >>>> wsdl2java I indicated that the wsdl file is in etc/kvvservice.wsdl. > >>>> > >>>> Now, when I try to use the client in an other application (using the jar > >>>> file) I get the following error (full stack trace at the end): > >>>> javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem > >>>> parsing 'file:etc/kvvservice.wsdl'.: java.io.FileNotFoundException: > >>>> etc\kvvservice.wsdl (Das System kann den angegebenen Pfad nicht finden) > >>>> > >>>> First, I wonder how to indicate that the wsdl has moved to another place > >>>> when using the client in another application. > >>>> > >>>> > >>> Your WSDL file will need to be in the classpath of the client app that > >>> you are running. Basically, at the root of the classes directory is the > >>> easiest place to put it, but you can also specify other classpaths. > >>> > >>> I find Ant easier to state classpaths, if you look at my "run-client" > >>> target in step 5 of my eBay tutorial this may help you: > >>> > >>> http://www.jroller.com/gmazza/date/20070817 > >>> > >>> Also, in your Service class generated by JAX-WS, you can alter the > >>> syntax used for loading the file. Instead of: > >>> > >>> url = new URL("file:mywsdl.wsdl"); // filepath search, probably won't > >>> work for JARs > >>> > >>> you should be able to use something like: > >>> > >>> URL wsdlURL = getClass().getClassLoader().getResource("mywsdl.wsdl"); > >>> // classpath search, should work for JARs > >>> > >>> > >>> > >>>> Second, I don't get why the CXF Runtime needs the wsdl file at all? The > >>>> clients classes have already been generated using wsdl2java and I > >>>> suppose that all information needed is contained in those generated > >>>> classes. > >>>> > >>>> > >>> Vivek and Arun of Sun Metro have much to say about this, links below. > >>> > >>> http://forums.java.net/jive/message.jspa?messageID=244333#244333 > >>> http://blogs.sun.com/arungupta/date/20071108 > >>> > >>> HTH, > >>> Glen > >>> > >>> > >>> > >>> > >> -- > >> > >> Abid Hussain > >> Mail: [EMAIL PROTECTED] > >> Web: http://www.abid76.de > >> > >> > > > > >
