Pergunta

Estou usando o cliente Jersey dentro de um EJB 3 Sessão sem estado Bean. Posso implantar o projeto EJB no WebLogic 11g. Mas quando tento procurar o feijão de um JSP, recebo o seguinte erro

 javax.ejb.EJBException: EJB Exception: ; nested exception is: 
 java.lang.NoClassDefFoundError: com/sun/jersey/api/client/Client; nested exception is: java.rmi.RemoteException: EJB Exception: ; nested exception is: 
 java.lang.NoClassDefFoundError: com/sun/jersey/api/client/Client
 at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.unwrapRemoteException(RemoteBusinessIntfProxy.java:112)
 at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:91)
 at $Proxy66.sayHelloFromServiceBean(Unknown Source)
 at jsp_servlet.__yelpin._jspService(__yelpin.java:92)
 at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
 at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3594)
 at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
 at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
 at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
 at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
 at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
 at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: java.rmi.RemoteException: EJB Exception: ; nested exception is: 
 java.lang.NoClassDefFoundError: com/sun/jersey/api/client/Client
 at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:205)
 at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:345)
 at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
 at com.yelpin.ABCD_xruy6c_ABCDRemoteImpl_1032_WLStub.sayHelloFromServiceBean(Unknown Source)
 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 weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:73)
 ... 15 more
Caused by: java.lang.NoClassDefFoundError: com/sun/jersey/api/client/Client
 at com.yelpin.ABCD.sayHelloFromServiceBean(ABCD.java:26)
 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 com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
 at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
 at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
 at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
 at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
 at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
 at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:55)
 at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
 at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
 at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
 at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
 at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
 at $Proxy67.sayHelloFromServiceBean(Unknown Source)
 at com.yelpin.ABCD_xruy6c_ABCDRemoteImpl.sayHelloFromServiceBean(ABCD_xruy6c_ABCDRemoteImpl.java:61)
 at com.yelpin.ABCD_xruy6c_ABCDRemoteImpl_WLSkel.invoke(Unknown Source)
 at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:174)
 ... 23 more

Eu sou novo no EJB 3, Jersey e WebLogic. O que eu entendo é que, a sessão apátrida Bean não consegue encontrar a classe de clientes Jersey. Alguém pode me ajudar com isso ?

Eu tenho dois projetos no OEPE (Oracle Enterprise Pack for Eclipse). Um é um projeto EJB 3.0 que contém o feijão de sessão sem estado. O outro é um projeto dinâmico da Web que contém o JSP do qual faço um JNDI procurar para obter o feijão de sessão sem estado. Estou usando a classe cliente Jersey dentro de um dos métodos no feijão de sessão sem estado. Este método é chamado do JSP.

Quando verifico as implantações no servidor usando o console do administrador, existem duas implantações. Um é um ouvido automático gerado pelo OEPE. Este ouvido corresponde ao projeto dinâmico da Web. A outra implantação é do tipo EJB.

Também tentei adicionar os arquivos Jersey Jar à pasta Lib no servidor e reiniciei o servidor. Mas ainda assim, recebo o mesmo erro.

Foi útil?

Solução

De fato, o NoClassDefFoundError significa que a definição da camisa Client A classe não pode ser encontrada e carregada em tempo de execução (estava lá no momento da compilação). Portanto, é muito provável que seja um problema de classe ou embalagem.

Coloque seu frasco de camisa no APP-INF/lib Diretório do ouvido e tente novamente (se não funcionar, atualize sua pergunta com a estrutura do seu ouvido).

Ver http://download.oracle.com/docs/cd/e12839_01/web.1111/e13706/libraries.htm#sthref135 e http://download.oracle.com/docs/cd/e12839_01/web.1111/e13706/classloading.htm para mais detalhes.

Atualizar: Jars devem entrar EarContent/APP-INF/lib Isso deveria ter sido criado automaticamente Mas não estou usando OEPE, então não posso confirmar. Observe que de acordo com isso Tópico muito recente, pode haver um bug na editora OEPE que está sob investigação (pelo menos no Linux).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top