0

Websphereアプリケーションサーバー7.0(Parent Last)のアプリケーションがあります

説明を読んで問題を理解してください。

新しい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は、クラスファイルをキャッシュしているため、例外が発生しています。

何かご意見は?アイデア?

詳細が必要な場合はお知らせください

4

1 に答える 1

1

そのクラスをロードしたさまざまなクラスローダーがあり、技術的にはそれらをさまざまなクラスにするため、例外が表示されます。

クラスをサーバーのクラスパスの一部にし、サーバーにのみロードさせることで、この問題を以前に解決しました。このように、クラスにはクラスローダーが1つだけあり、サーバーで実行されているすべてのアプリケーションがそこからそれを使用できます。

ここで確認できる他の唯一のオプションは、サーバーを再起動する予定がない限り、アプリを再起動しないことです。これは開発環境での苦痛としか思えませんが、本番環境に移行すると、アプリを頻繁に再起動しているとは思えません。

于 2013-03-21T18:42:51.827 に答える