2010-11-16 75 views
0

我在調試時遇到了這個問題。我將我的代碼從Java 1.4遷移到JDK 6和Weblogic 8.1.5到Weblogic 10.3。我已經使用weblogic的DDConverver實用程序轉換了EJB的部署描述符。 Bean由無狀態會話和實體bean(2.1)組成。應用程序由JSP作爲前端,EJB作爲中間件。在記錄時,我調用一個會話bean,它在內部調用實體bean並加載相同。當Session bean調用實體bean時,我得到以下異常。會話調用成功,只有問題是來自會話bean的實體調用。獲取java.rmi.RemoteException:EJB異常儘管正確定義和部署了類路徑,XML,Beans

我正在爲此使用開發環境。 JSP被保存在 C:\ MisasiaAppln10.3_DEV \ misasia \自動部署\ misasia 部署EJB在 C:\ MisasiaAppln10.3_DEV \ misasia \服務器\的AdminServer \上傳

異常詳細信息:

java.rmi.RemoteException: EJB Exception: ; nested exception is: 
     java.lang.NoClassDefFoundError: com/misasia/admin/setupmaster/SetupMasterHome 
     at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:205) 
     at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:222) 
     at com.misasia.admin.ctrlsession.controlSession_ho24d0_EOImpl_1030_WLStub.login(Unknown Source) 
     at jsp_servlet.__index._jspService(__index.java:197) 
     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.onAddToMapException(ServletStubImpl.java:408) 
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:318) 
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) 
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498) 
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
     at weblogic.security.service.SecurityManager.runAs(Unknown Source) 
     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180) 
     at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086) 
     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) 
Caused by: java.lang.NoClassDefFoundError: com/misasia/admin/setupmaster/SetupMasterHome 
     at com.misasia.admin.ctrlsession.controlBean.loadSetupMaster(controlBean.java:149) 
     at com.misasia.admin.ctrlsession.controlBean.login(controlBean.java:119) 
     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:281) 
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:187) 
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154) 
     at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:126) 
     at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:114) 
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) 
     at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:15) 
     at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54) 
     at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:30) 
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) 
     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:176) 
     at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:126) 
     at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:114) 
     at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) 
     at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210) 
     at $Proxy60.login(Unknown Source) 
     at com.misasia.admin.ctrlsession.controlSession_ho24d0_EOImpl.login(controlSession_ho24d0_EOImpl.java:840) 
     at com.misasia.admin.ctrlsession.controlSession_ho24d0_EOImpl_WLSkel.invoke(Unknown Source) 
     at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:172) 
     ... 18 more 
Caused by: java.lang.ClassNotFoundException: com.misasia.admin.setupmaster.SetupMasterHome 
     at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:283) 
     at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:256) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:251) 
     at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:176) 
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 
     ... 44 more 

示例代碼:從JSP會議
調用(這工作正常)

從會話實體的
env.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); 
env.put(Context.PROVIDER_URL, "t3://localhost:7001"); 
ic = new InitialContext(env); 
ctrlHome = (controlHome)ic.lookup("controlSessionEJB"); 
ctrl = (control)ctrlHome.create(); 

調用(失敗)

Object refsetup = ic.lookup("java:comp/env/ejb/SetupMasterEJB"); 
// This is the line which gives an error 
SetupMasterHome setuph = (SetupMasterHome)PortableRemoteObject.narrow(refsetup, SetupMasterHome.class); 

回答

0

java.lang.NoClassDefFoundError: com/misasia/admin/setupmaster/SetupMasterHome

意味着在執行ControlBean的loadSetupMaster方法SetupMasterHome.class中缺少server/module類路徑。添加適當的jar將解決問題。

+0

謝謝你的回答。但我不明白一件事。所有的罐子都在「C:\ MisasiaAppln10.3_DEV \ misasia \ servers \ AdminServer \ upload」文件夾中。爲什麼它能夠讀取ctrlsessionejb.jar而不是setupmasterejb.jar?這讓我感到困惑。 – Mitesh 2010-11-18 02:50:26

相關問題