我已经通过在 wsit-client.xml 中创建 URLStreamHandler 来修复它我现在可以定义 location="myprotocol://foo.xml"
我使用 spring 的 PathMatchingResourcePatternResolver 在另一个项目/jar 中找到我的 xml 文件。
public class Handler extends URLStreamHandler {
@Override
protected URLConnection openConnection(URL u) throws IOException {
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
final URL resourceUrl = resolver.getResource(u.getPath()).getURL();
if (resourceUrl == null) {
throw new IOException(String.format("File %s not found on the classpath", u.getFile()));
}
return resourceUrl.openConnection();
}
}
我没有使用 VM 参数来定义处理程序,但我已经实现了一个 URLStreamHandlerFActory,就像这里解释的URL 以从 Java 中的类路径加载资源
有关编写自己的协议处理程序的更多信息可以在此站点上找到:http: //java.sun.com/developer/onlineTraining/protocolhandlers/
我仍然有 1 个项目,其中包含单个 wsit-client.xml 并引用了我的所有 Web 服务配置,但至少我已经设法将不同 maven 项目中所有不同服务的配置分开。