Я пытаюсь вызвать веб-службу, используя библиотеку Metro из приложения Eclipse RCP. Я связал соответствующие фляги Metro (webservices-tools.jar
, webservices-rt.jar
и webservices-api.jar
) в плагин и сделал свой основной плагин приложения зависимым от этого нового плагина Metro.
Я также добавил webservices-api.jar
в мой каталог $JAVA_HOME/jre/lib/endorsed
. Согласно веб-сайту Metro, это требуется при использовании Metro с Java 1.6.
Теперь, когда я вызываю любой веб-сервис, я получаю следующую ошибку:
javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not found
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.jav a:38)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:133)
at javax.xml.ws.spi.Provider.provider(Provider.java:83)
at javax.xml.ws.Service.<init>(Service.java:56)
...
Caused by: java.lang.ClassNotFoundException: com.sun.xml.ws.spi.ProviderImpl
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301 )
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at org.eclipse.core.runtime.internal.adaptor.ContextFinder.load Class(ContextFinder.java:129)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.jav a:34)
... 43 more
Класс com.sun.xml.ws.spi.ProviderImpl
находится в webservices-rt.jar
, который является частью моего плагина Metro. Кроме того, я убедился, что мой код плагина приложения может успешно загрузить этот класс, поэтому я не уверен, почему javax.xml.ws.spi.FactoryFinder
не может.
Поскольку javax.xml.ws.spi.FactoryFinder
находится в webservices-api.jar
(банку, которую я должен был поместить в одобренный каталог jre), я подозреваю, что это связано с тем, что одобренный код не может загружать классы из плагина Eclipse. *
Это тот случай, когда код, загруженный JVM из одобренного каталога, не может загружать классы из плагинов? Есть ли способ включить это?
Java версия: 1.6.0_16
Версия Eclipse: Eclipse Java EE IDE для веб-разработчиков Идентификатор сборки: 20090920-1017 (версия не отображается)
Версия Metro: в комплекте со Glassfish 2.1
Любая помощь очень ценится. Спасибо.