2010-12-10 6 views
0

Beim Bearbeiten von Code bemerkte ein Entwickler diesen Fehler nach einer Neukompilierung in Weblogic 10.3.3. Und das zugrunde liegende Objekt ist ein DimensionLabel. Und wir haben dies in Weblogic 9.2 versucht und es funktioniert ohne Ausnahme. Der Entwickler kompilierte einfach die Klasse, die das DimensionLabel den SearchServiceProcessor aufruft, und wiederholte die Anwendung erneut.java.lang.ClassCastException in WebLogic 10.3.3 nach Neukompilierung

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) 

Hier ist mein Code:

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

ich in den Code debuggen und die Hash-Tabelle dimensionLabel hat darin eine DimensionLabel.

+0

was ist mit dem geben uns den Code in dieser Zeile (und um ihn herum) – Bozho

+0

DimensionLabel dimLabel = (DimensionLabel) dimensionLabel.get (currentDimension.getName()); CCE hier << currentRefinementDimension = new Refinement(); \t \t \t \t \t currentRefinementDimension.setExpanded (true); Ich debuggte in den Code und die hashtable DimensionLabel hat ein DimensionLabel drin. –

+0

hat der Frage –

Antwort

0

Wenn Sie in den Code debuggen können, überprüfen Sie, woher Ihre Klasse aufgerufen wird. Im Allgemeinen müssen Sie

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

Dies wird Ihnen sagen, das Glas, aus dem Ihre Klassen geladen sind. Überprüfen Sie, ob es einen JAR-Konflikt gibt (altes JAR etc.)

+0

Ihren Kommentar hinzugefügt Diese Datei stammt nicht von einer JAR, die sich auf dem Dateisystem befindet. Ich habe den Code ausgeführt, den Sie vorgeschlagen haben: /opt/work/nrj/webapps/jobsearch/WEB-INF/classes/ne/nrj/service/SearchServiceProcessor.class. –

+0

Ich habe Weblogic 10 Caching-Klassen (Jars) gesehen und sie von allen möglichen Orten (tmp etc) ausgewählt, also sollten Sie vielleicht tiefer graben und versuchen herauszufinden, wo Ihre Dimensions-Label-Klasse ausgewählt wird? Zu den Orten zu gehen und dies zu sehen, ist die Klasse, die du willst usw. – Pushkar

Verwandte Themen