ОБНОВЛЕНИЕ: я отправил свой вопрос в список рассылки пользователя CXF, здесь .
ОБНОВЛЕНИЕ: в настоящее время я подписал все свои банки. Мне все еще не удается настроить CXF таким образом, чтобы он мог найти WSDL. Моей последней попыткой было поместить WSDL в мой файл WAr, чтобы я мог получить к нему доступ через веб-браузер. Я установил wsdllocation внутри клиента на URL (http://www.example.com/app/example.wsdl). Теперь я получаю следующее исключение:
Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
at com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(Unknown Source)
at javax.xml.ws.Service.<init>(Unknown Source)
Поиск в Google практически ничего не дал.
Я создаю клиент веб-службы из заданного WSDL с использованием Apache CXF . Я столкнулся с проблемами, однако при попытке получить доступ к службе я получаю следующее исключение:
Can not initialize the default wsdl from ../resource/example.wsdl
Exception in thread "AWT-EventQueue-0" java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
Я не подписываю свое веб-приложение запуска и предпочел бы не делать этого, поскольку я не обращаюсь к каким-либо ресурсам с компьютера клиента. Упомянутый WSDL упакован в мою банку. Проблема вызвана этим из сгенерированного клиентского кода CXF:
URL url = null;
try {
url = new URL("../resource/example.wsdl");
} catch (MalformedURLException e) {
System.err.println("Can not initialize the default wsdl from ../resource/example.wsdl");
// e.printStackTrace();
}
WSDL_LOCATION = url;
Как правильно указать CXF на этот WSDL? Меня также беспокоит аннотация WebService для класса:
@WebServiceClient(name = "Example",
wsdlLocation = "../resource/example.wsdl",
targetNamespace = "http://services.example.com/")
Мне тоже нужно это изменить?