The code generator has a "-wsdlLocation" flag that can be used to specify what 
is put in those annotations.  It might be good to try investigating various 
ways to use that.   A "common" thing to do is to 
specify "/WEB-INF/wsdl/hello.wsdl" or similar to point to a location in the 
current war.

Dan


On Monday 24 November 2008 8:33:17 pm Steve Cohen wrote:
> CXF generates java code with annotations like this:
>
> @WebServiceClient(name = "XyzService",
>                     wsdlLocation = "file:///path/to/XyzService.wsdl",
>                     targetNamespace = "http://xyz.com/";)
> public class XyzService extends Service {
>
>     public final static URL WSDL_LOCATION;
>     public final static QName SERVICE = new QName("http://xyz.com/";,
> "XyzService");
>     public final static QName EmergencyProvisioningPort = new
> QName("http://xyz.com/";, "XyzPort");
>     static {
>         URL url = null;
>         try {
>             url = new URL("file:///path/to/XyzService.wsdl");
>         } catch (MalformedURLException e) {
>             System.err.println("Can not initialize the default wsdl from
> file:///path/to/XyzService.wsdl");
>             // e.printStackTrace();
>         }
>         WSDL_LOCATION = url;
>     }
> ...
> }
>
> Note that the file URL file:///path/to/XyzService.wsdl is repeated three
> times by the generator in different contexts and its reference comes
> from the machine where the generator was run.
>
> But suppose I want to write a JUnit test, say, that tests the client I
> am building, and let's further suppose that I want to run that test on
> different machines, perhaps even on Linux and Windows machines.  I will
> have to modify the generated code, but I am not aware of any file:// URL
> that could be correctly interpreted on both linux and windows unless I
> do something ugly like create a /C: directory in linux.  If I wanted to
> make a requirement that no machine could run this code that did not have
> working web server on it, then I could use an http://localhost URL
> instead, but that is also not optimal.
>
>
> Is there some way to have the generator create more portable code than
> this?  And if not, and I am forced to modify generated code, is there
> any possible file:// URL that will work cross-platform?



-- 
Daniel Kulp
[EMAIL PROTECTED]
http://dankulp.com/blog

Reply via email to