예전 에 발견 하지 못 했 던 EJB 의 이상 한 문제

어제 프로젝트 중의 EJB 실현 류 를 수정 하여 재 컴 파일 한 후에 발표 하고 발표 하 는 데 성공 한 것 을 보 니 모든 것 이 좋 은 것 같 습 니 다.그리고 클 라 이언 트 를 시작 하여 테스트 를 진행 합 니 다.이상 한 일이 발생 했 습 니 다.EJB 를 호출 하면 콘 솔 은 다음 과 같은 오 류 를 보고 합 니 다.
<BEA-010051> <EJB Exception occurred during invocation from home: cn.com.pansky.xmdswz.system.idgenerator.IDGeneratorEJB_ducnu_HomeImpl@165a43b threw exception: java.lang.IncompatibleClassChangeError
java.lang.IncompatibleClassChangeError
	at cn.com.pansky.xmdswz.system.idgenerator.IDGeneratorEJBBean.getPlBxhByJsqlxAndZlx(IDGeneratorEJBBean.java:64)
	at cn.com.pansky.xmdswz.system.idgenerator.IDGeneratorEJB_ducnu_EOImpl.getPlBxhByJsqlxAndZlx(IDGeneratorEJB_ducnu_EOImpl.java:100)
	at cn.com.pansky.xmdswz.system.idgenerator.IDGeneratorEJB_ducnu_EOImpl_WLSkel.invoke(Unknown Source)
	at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:166)
	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:247)
	at cn.com.pansky.xmdswz.system.idgenerator.IDGeneratorEJB_ducnu_EOImpl_814_WLStub.getPlBxhByJsqlxAndZlx(Unknown Source)
	at cn.com.pansky.xmdswz.utility.SequenceUtility.getPlBxhByJsqlxAndZlx(SequenceUtility.java:76)
	at cn.com.pansky.xmdswz.utility.SequenceUtility.getPlBxhByJsqlxAndZlx(SequenceUtility.java:54)
	at cn.com.pansky.xmdswz.wssb.service.WssbService.getPlBxhByJsqlxAndZlx(WssbService.java:61)
	at cn.com.pansky.xmdswz.wssb.manager.DfsfMgr.add(DfsfMgr.java:72)
	at cn.com.pansky.xmdswz.wssb.command.Dfsf_addCmd.perform(Dfsf_addCmd.java:34)
	at cn.com.pansky.xmdswz.system.frameext.BaseCmd.execute(BaseCmd.java:213)
	at cn.com.ebis.frame.busirealization.facade.CommandBean.sessionProcess(CommandBean.java:169)
	at cn.com.ebis.frame.busirealization.facade.CommandBean.execute(CommandBean.java:66)
	at cn.com.ebis.frame.busirealization.facade.Command_azsdjk_EOImpl.execute(Command_azsdjk_EOImpl.java:100)
	at cn.com.ebis.frame.busirealization.facade.Command_azsdjk_EOImpl_WLSkel.invoke(Unknown Source)
	at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:166)
	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:247)
	at cn.com.ebis.frame.busirealization.facade.Command_azsdjk_EOImpl_814_WLStub.execute(Unknown Source)
	at cn.com.ebis.frame.msgRouter.MsgRouter.execute(MsgRouter.java:142)
	at cn.com.ebis.frame.action.FrameAction.myPerformIt(FrameAction.java:266)
	at cn.com.ebis.frame.action.FrameAction.performIt(FrameAction.java:60)
	at cn.com.ebis.frame.action.ActionBase.perform(ActionBase.java:85)
	at cn.com.ebis.frame.action.ActionBase.execute(ActionBase.java:26)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
	at cn.com.pansky.xmdswz.system.frameext.BaseRequestProcessor.processActionPerform(BaseRequestProcessor.java:82)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
	at cn.com.pansky.xmdswz.protal.sso.SSOFilter.doChain(SSOFilter.java:268)
	at cn.com.pansky.xmdswz.protal.sso.SSOFilter.doFilter(SSOFilter.java:147)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
	at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
	at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> 

 정말 이상 한 일이 다.잘못 을 호 환 하지 않 는 다 고?응용 중의 종 류 는 모두 JDK 1.4 로 컴 파일 된 것 인 데 어떻게 호 환 되 지 않 을 수 있 습 니까?그래서 EJB 를 다시 포장 하고 다시 배치 했다.이렇게 여러 번 괴 롭 혔 지만 문 제 는 아직도 존재 한다.도대체 어떤 힘줄 에 부 딪 혔 을 까?아무리 생각해 도 이해 가 되 지 않 는 다.
      가 고 싶 었 는데 발표 할 때 중복 파일 을 삭제 하기 위해 머리 가 뜨 거 워 지면 클 라 이언 트 류 jar 가방 에서 EJB 의 몇 가지 종 류 를 삭제 했다 는 생각 이 들 었 습 니 다.이런 이유 가 아 닐 까요?그래서 EJB 의 class 파일 을 클 라 이언 트 클래스 jar 패키지 에 다시 넣 고 테스트 를 시작 하면 문제 가 해결 되 었 습 니 다.
      이 문제 의 원인 은 사실 매우 간단 하지만,그렇게 많은 시간 을 들 여 처리 한 것 은 주로 잘못된 제시 정보의 오도 로 인 한 것 이다.나 를 붕괴 시 킨 것 은 왜 시스템 이 클래스 파일 이 부족 하 다 는 것 을 알 리 지 않 는 것 입 니까?

좋은 웹페이지 즐겨찾기