2010-12-10 33 views
0

編輯一些代碼時,開發人員在Weblogic 10.3.3中重新編譯後注意到了這個錯誤。底層對象是一個DimensionLabel。我們在Weblogic 9.2中嘗試了這一點,它毫無例外地正常工作。開發人員簡單地重新編譯調用DimensionLabel和SearchServiceProcessor的類並重新調用應用程序。重新編譯後的WebLogic 10.3.3中的java.lang.ClassCastException

net.nrj.service.SearchServiceProcessor java.lang.ClassCastException: net.nrj.alf.DimensionLabel 
java.lang.ClassCastException: net.nrj.alf.DimensionLabel 
    at net.nrj.service.SearchServiceProcessor.setRefinements(SearchServiceProcessor.java:911) 
    at net.nrj.service.SearchServiceProcessor.process(SearchServiceProcessor.java:134) 
    at net.nrj.service.ServiceController.processRequest(ServiceController.java:323) 
    at net.nrj.service.ServiceController.doGet(ServiceController.java:307) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:821) 
    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:300) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184) 
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:529) 
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:253) 
    at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:719) 
    at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:591) 
    at weblogic.servlet.FileServlet.findSource(FileServlet.java:270) 
    at weblogic.servlet.FileServlet.doGetHeadPost(FileServlet.java:191) 
    at weblogic.servlet.FileServlet.service(FileServlet.java:173) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:821) 
    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:300) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3686) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650) 
    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:2268) 
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174) 
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) 

這裏是我的代碼:

DimensionLabel dimLabel = (DimensionLabel); 
dimensionLabel.get(currentDimension.getName()); 
currentRefinementDimension = new Refinement(); // Exception here 
currentRefinementDimension.setExpanded(true); 

我調試到代碼和哈希表dimensionLabel中有一個DimensionLabel。

+0

給我們在該行(及其周圍)的代碼怎麼樣 – Bozho 2010-12-10 14:30:35

+0

DimensionLabel dimLabel =(DimensionLabel)dimensionLabel.get(currentDimension.getName()); CCE here << currentRefinementDimension = new Refinement(); \t \t \t \t \t currentRefinementDimension.setExpanded(true); 我調試到代碼和散列表dimensionLabel中有一個DimensionLabel。 – 2010-12-10 15:55:42

+0

對問題添加了您的評論 – 2010-12-10 16:30:21

回答

0

如果你可以調試代碼,然後檢查你的類從哪裏被調用。一般而言,您需要致電

this.getClass().getProtectionDomain().getCodeSource().getLocation() 

這會告訴您從哪個jar中加載類。檢查是否存在jar衝突(舊jar等)

+0

此文件不是來自它在文件系統上的JAR。我運行了你建議的代碼:/opt/work/nrj/webapps/jobsearch/WEB-INF/classes/ne/nrj/service/SearchServiceProcessor.class。 – 2010-12-10 16:31:02

+0

我已經看過weblogic 10緩存類(jar)並從各種位置(tmp等)中挑選它們,所以也許你應該深入挖掘並試圖找出你的維度標籤類從哪裏挑選出來?去地點,看到這是你想要的課程等。 – Pushkar 2010-12-10 16:38:44