Я исправил это, создав URLStreamHandler в wsit-client.xml. Теперь я могу определить location = "myprotocol: //foo.xml"
. Я использовал SpringMathingResourcePatternResolver, чтобы найти мой xml.файл в другом проекте / jar.
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.со ссылками на все мои конфигурации веб-сервисов, но по крайней мере мне удалось разделить конфигурацию для всех сервисов в разных проектах maven.