2013-11-25 5 views
0

Я пытаюсь сделать вызов webservice в программе и развернуто на сервере tomcat. Но я получаю сообщение об ошибке «java.lang.NoClassDefFoundError: Не удалось инициализировать класс weblogic.wsee.jaxws.spi.WLSProvider». Но этот класс доступен в weblogic.jar, и тот же есть в папке tomcat/lib. Любое предложение о том, как решить это исключение?java.lang.NoClassDefFoundError: Не удалось инициализировать класс weblogic.wsee.jaxws.spi.WLSProvider

EVERE: Servlet.service() for servlet [test] in context with path [/VTM-Engg-UI] threw exception [Handler processing failed; nested exception is

**java.lang.NoClassDefFoundError: Could not initialize class weblogic.wsee.jaxws.spi.WLSProvider] with root causejava.lang.NoClassDefFoundError: Could not initialize class weblogic.wsee.jaxws.spi.WLSProvider**

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:357) 
at java.lang.Class.newInstance(Class.java:310) 
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:31) 
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:90) 
at javax.xml.ws.spi.Provider.provider(Provider.java:83) 
at javax.xml.ws.Service.<init>(Service.java:56) 
at com.onstar.vcs.services.ws.ProcessVehicleTask.<init>(ProcessVehicleTask.java:42) 
at com.onstar.vtm.manager.GetTaskWs.getTask(GetTaskWs.java:99) 
at com.onstar.vtm.vehType.controller.VehTypeController.getGetTaskAttribute(VehTypeController.java:584) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) 
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) 
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:100) 
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:604) 
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:565) 
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
at java.lang.Thread.run(Thread.java:662)` 

ответ

2

Там могут быть некоторые возможности.

Приложение не может получить доступ к файлу tomcat/lib/weblogic.jar. Может быть, это не в пути класса приложения.

Может быть более одного файла jar, который содержит weblogic.wsee.jaxws.spi.WLSProvider, и это может создать проблему.

Проверьте, чтобы увидеть полное имя класса с именем пакета. Иногда версия файла jar может быть проблемой.

Может быть WLSProvider не инициализирован должным образом. Если вы посмотрите на полную трассировку стека в своих журналах и увидите все ошибки, может возникнуть ошибка, указывающая на ее инициализацию. Аналогичная проблема была опубликована долгое время на JavaRanch - http://www.coderanch.com/t/582814/BEA-Weblogic/initialize-class-weblogic-wsee-jaxws

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

Попробуйте спаренное программирование. Если вы можете найти партнера, рассматривающего вашу проблему, они могут увидеть что-то, что вы, возможно, пропустили. Много раз две головы лучше, чем одна!

Удачи.

+0

Спасибо Инду! Я не уверен, в чем была ошибка. Но я считаю, что есть два разных банка, которые имеют одно и то же имя класса. Я смог отладить эту ошибку. –

Смежные вопросы