Исключение инициализации прокси-сервера Java SOAP - PullRequest
0 голосов
/ 06 ноября 2010

Я развертываю набор веб-сервисов AMF на основе Java в GlassFish v3.Все это прекрасно работает в среде разработки, но не работает в промежуточной среде, в которой он в данный момент настраивается:

Dev: Web-профиль GlassFish 3.0.1, Java JDK 1.6.0u22.Стадия: GlassFish 3.0, Java JDK 1.6.0u22.

Я понимаю, что версия и редакция GlassFish отличаются, и я попросил обновить ее, чтобы она соответствовала среде разработки.Поскольку мне трудно представить, что это является причиной проблемы, я решил спросить здесь, есть ли у кого-нибудь какие-либо идеи.

Служба AMF на основе Java взаимодействует с SOAP на основе .NETоказание услуг.Java-сервис имеет прокси, сгенерированные из сервиса SOAP с использованием wsimport.Насколько я могу судить, ошибка возникает при попытке инициализации SOAP-прокси.

Трассировка стека выглядит следующим образом:

org.granite.messaging.service.ServiceException: Could not initialize class com.sun.xml.internal.ws.spi.ProviderImpl
at org.granite.messaging.service.AbstractServiceExceptionHandler.getServiceException(AbstractServiceExceptionHandler.java:42)
at org.granite.messaging.service.DefaultServiceExceptionHandler.handle(DefaultServiceExceptionHandler.java:33)
at org.granite.messaging.service.ServiceInvoker.invoke(ServiceInvoker.java:121)
at org.granite.messaging.amf.process.AMF3RemotingMessageProcessor.process(AMF3RemotingMessageProcessor.java:56)
at org.granite.messaging.amf.process.AMF0MessageProcessor.process(AMF0MessageProcessor.java:79)
at org.granite.messaging.webapp.AMFMessageServlet.doPost(AMFMessageServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
[..cut..]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.internal.ws.spi.ProviderImpl
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:31)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:128)
at javax.xml.ws.spi.Provider.provider(Provider.java:83)
at javax.xml.ws.Service.<init>(Service.java:56)
[..cut..]

Есть идеи?

1 Ответ

1 голос
/ 10 ноября 2010

Решением было установить полный сервер GlassFish вместо веб-профиля сервера GlassFish. Несмотря на то, что среда разработки была настроена с использованием Web Profile, в ней были обнаружены остатки полного GlassFish (в частности, JAR-файлы JAXB и JAXWS), которые были там найдены.

Промежуточная среда была чистой и только когда-либо имела установленный веб-профиль, и поэтому не работала из-за отсутствующих зависимостей.

...