cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Cohen <sco...@javactivity.org>
Subject Generated javax.jws annotations and file:// URLs
Date Tue, 25 Nov 2008 01:33:17 GMT
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?



Mime
View raw message