通常,wsit-client.xml包含如下导入语句:
<import location="foo.xml" namespace="http://foo.org/" />
我发现他们可以在类路径/ META-INF上联机一个wsit-client.xml,但是我可以在那个wsit-client.xml中引用位于另一个jar中的xml吗?类似的东西:
<import location="classPathResource/WEB-INF/foo.xml" namespace="http://foo.org/" />
我想创建一个wsit-client.xml,其中包含所有web服务的导入,但我想将所有不同Web服务的配置分离到不同的项目中。
答案 0 :(得分:1)
我已经通过在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 to load resources from the classpath in Java
有关编写自己的协议处理程序的更多信息,请访问以下网站:http://java.sun.com/developer/onlineTraining/protocolhandlers/
我还有一个包含单个wsit-client.xml的项目,其中包含对我所有Web服务配置的引用,但至少我已设法将不同maven项目中所有不同服务的配置分开。 / p>