2013-03-21 67 views
0

我的WebSphere Application Server 7.0(父姓)的應用在WebSphere Application拋出ClassCastException異常的應用程序重新啓動

請仔細閱讀說明來理解問題。

我創建了一個新的websphere配置文件。配置我的應用程序,並啓動應用程序,現在當我測試應用程序。它工作良好。

現在,我去了websphere控制檯並重新啓動我的應用程序。這次我測試我的應用程序。我得到錯誤。

日誌說一個ClassCastException:

[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R java.lang.ClassCastException: com.csc.fs.ra.SimpleConnectionSpecImpl incompatible with com.csc.fs.ra.SimpleConnectionSpecImpl 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.ra.ip.ConnectionFactoryImpl.getConnection(ConnectionFactoryImpl.java:69) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.sa.InteractionHandlerBase.getConnection(InteractionHandlerBase.java:165) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.sa.InteractionHandlerBase.execute(InteractionHandlerBase.java:95) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.sa.InteractionHandlerBase.process(InteractionHandlerBase.java:230) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.sa.SystemAccessBase.invokeInteraction(SystemAccessBase.java:374) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.sa.SystemAccessBase.internalInvoke(SystemAccessBase.java:242) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.sa.SystemAccessBase.invoke(SystemAccessBase.java:55) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.sa.SystemAccessBase.login(SystemAccessBase.java:106) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.session.AuthenticatorBase.logonSystemSession(AuthenticatorBase.java:153) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.session.AuthenticatorBase.addSystemSessions(AuthenticatorBase.java:132) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.accel.session.standalone.AuthenticatorBase.logon(AuthenticatorBase.java:224) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.session.AuthenticatorBase.logon(AuthenticatorBase.java:93) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.service.ServiceControllerAbstract.logon(ServiceControllerAbstract.java:387) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.delegate.DirectServiceController.logon(DirectServiceController.java:132) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.delegate.ServiceDelegateDirect.logon(ServiceDelegateDirect.java:133) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.accel.ui.BaseServiceAction.logon(BaseServiceAction.java:124) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.accel.ui.action.desktop.Logon.perform(Logon.java:47) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.accel.ui.ServiceDelegator.execute(ServiceDelegator.java:506) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.accel.ui.ServiceDelegator.processEvent(ServiceDelegator.java:240) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.accel.ui.BeanBase.executeEvent(BeanBase.java:779) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at pagecode.authorization.Logon.submit(Logon.java:66) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at java.lang.reflect.Method.invoke(Method.java:600) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at org.apache.el.parser.AstValue.invoke(AstValue.java:131) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:67) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at javax.faces.component.UICommand.broadcast(UICommand.java:315) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1661) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1595) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.csc.fs.accel.ui.filters.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:82) 
[3/21/13 6:06:18:616 EDT] 0000001d SystemErr  R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188) 

這ClassCastException異常背後的原因是類SimpleConnectionSpecImpl的多個版本。

此類由我通過websphere管理控制檯在外部配置的資源適配器提供。

但是現在,當我停止服務器並重新啓動服務器時,我可以再次使用該應用程序且沒有錯誤。

所以我最近的猜測是websphere緩存類文件,因爲我看到了這個異常。

有什麼想法?想法?

請讓我知道如果您需要任何更多的細節

回答

1

您看到異常,因爲有已經加載的類,這在技術上使他們不同類別不同的​​類加載器。

我們之前解決了這個問題,只是讓服務器類路徑與服務器類路徑分開,並且只讓服務器加載它。這樣,類只有一個類加載器,並且服務器上運行的所有應用程序都可以使用它。

我在這裏可以看到的唯一其他選項是,除非您計劃重新啓動服務器,否則不要重新啓動您的應用程序。我只會認爲這是開發環境中的一個痛苦,但是一旦你碰到產品,我懷疑你經常重新啓動應用程序。

相關問題