2010-02-27 5 views
3

EJB 3 상태 비 저장 세션 빈에서 Jersey 클라이언트를 사용하고 있습니다. Weblogic 11g에 EJB 프로젝트를 배포 할 수 있습니다. 나는 JSP에서 콩을 조회 할 때, 나는 3, 뉴저지와 웹 로직을 EJB하는Weblogic의 EJB 3 상태 비 저장 세션 빈에서 Jersey Client 사용

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 

내가 새로운 오전 다음과 같은 오류를 얻을. 내가 이해하는 것은, 스테이트리스 세션 빈은 Jersey 클라이언트 클래스를 찾을 수 없다는 것이다. 아무도 이것으로 나를 도울 수 있습니까?

나는 OEPE에서 두 개의 프로젝트 (이클립스를위한 오라클 엔터프라이즈 팩)가 있습니다. 하나는 stateless 세션 빈을 포함하는 EJB 3.0 프로젝트이다. 다른 하나는 JNDI lookup을 통해 JSP가 포함 된 동적 웹 프로젝트입니다. JNDI lookup을 통해 무 상태 세션 bean을 얻습니다. 나는 Jersey Client 클래스를 stateless 세션 빈의 메소드들 중 하나에서 사용하고있다. 이 메소드는 JSP에서 호출됩니다.

관리자 콘솔을 사용하여 서버에서 배포를 확인하면 두 가지 배포가 있습니다. 하나는 OEPE에 의해 생성 된 EAR ​​자동입니다. 이 EAR은 동적 웹 프로젝트에 해당합니다. 다른 전개 유형은 EJB입니다.

저지 jar 파일을 서버 아래의 lib 폴더에 추가하고 서버를 다시 시작해 보았습니다. 하지만 여전히 동일한 오류가 발생합니다.

답변

1

실제로 NoClassDefFoundError은 저어지 Client 클래스의 정의를 런타임에 찾을 수없고로드 할 수 없다는 것을 의미합니다 (컴파일 타임에있었습니다). 따라서 클래스 패스 또는 패키징 문제 일 가능성이 큽니다.

EAR의 APP-INF/lib 디렉토리에 저지 항아리를 넣고 다시 시도하십시오 (작동하지 않는 경우 EAR 구조로 질문을 업데이트하십시오).

자세한 내용은 http://download.oracle.com/docs/cd/E12839_01/web.1111/e13706/libraries.htm#sthref135http://download.oracle.com/docs/cd/E12839_01/web.1111/e13706/classloading.htm을 참조하십시오.

업데이트 : JAR 파일이 automatically created 했어야 EarContent/APP-INF/lib에 가야하지만 그래서 난 확신 할 수 없습니다 OEPE를 사용하지 않는. 이 very recent thread에 따르면 조사중인 OEPE 게시자에 버그가있을 수 있습니다 (적어도 Linux에서는).

+0

답장을 보내 주셔서 감사합니다. 구조에 대한 내 질문을 업데이트했습니다. –

+0

@rboorgapally 귀하의 응용 프로그램을 EAR로 배포합니까? –

+0

EAR은 OEPE –