websphere上的应用程序在应用程序重新启动时抛出ClassCastException

websphere上的应用程序在应用程序重新启动时抛出ClassCastException,websphere,classloader,websphere-7,classcastexception,Websphere,Classloader,Websphere 7,Classcastexception,我有一个WebSphereApplicationServer7.0的应用程序(上一个) 请通读说明以了解问题 我创建了一个新的websphere概要文件。在上面配置了我的应用程序并启动了应用程序,现在当我测试应用程序时。它工作得很好 现在,我转到websphere控制台并重新启动我的应用程序。这次当我测试我的应用程序时。我犯了一个错误 日志显示classCastException: [3/21/13 6:06:18:616 EDT] 0000001d SystemErr R java.l

我有一个WebSphereApplicationServer7.0的应用程序(上一个)

请通读说明以了解问题

我创建了一个新的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正在缓存类文件,因为我看到了异常

有什么想法吗?想法


如果您需要更多详细信息,请告诉我

您会看到异常,因为有不同的类加载器加载了该类,这在技术上使它们具有不同的类

我们以前解决过这个问题,方法是让类与服务器类路径分开,只让服务器加载它。这样,该类只有一个类装入器,服务器上运行的所有应用程序都可以从那里使用它

我在这里看到的唯一其他选项是,除非您计划重新启动服务器,否则不要重新启动应用程序。我只认为这是开发环境中的一种痛苦,但一旦你投入生产,我怀疑你是否经常重启应用程序