ClassCastException - Ошибка в Redhat, а не в Windows - PullRequest
0 голосов
/ 04 октября 2011

Мой сайт работает на Tomcat.Когда я пытаюсь получить доступ к одной из моих страниц для проверки состояния, она проверяет определенный файл JAR.В Red Hat 5, но не в Windows, я получаю следующую ошибку:

java.lang.ClassCastException: LoggingPasshashInfo cannot be cast to PasshashInfo

Я получил этот JAR от третьего лица и использую его так же, как и я.Согласно странице татуировки Apache, RH настроен на Tomcat версии 7.0.22 и JVM версии 1.6.0_27-b07.Windows находится на Tomcat 7.0.19 и JVM 1.6.0_26-b03.Tomcat Red Hat был обновлен с 6.0.33 в ходе попытки исправить это.

В любом случае, я немного новичок в этом и, кроме того, что настройки выглядят максимально похожими, яЯ не уверен, как решить эту проблему.Любая помощь будет в порядке, и если я не смог поделиться какими-либо важными деталями, дайте мне знать.И еще раз повторюсь, JAR, с которым я работаю, это черный ящик.

Полная ошибка:

Java.lang.ClassCastException: com.adobe.adept.fulfillment.test.LoggingPasshashInfo cannot be cast to com.adobe.adept.fulfillment.PasshashInfo
    at com.adobe.adept.fulfillment.servlet.Fulfill.<clinit>(Fulfill.java:130)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:127)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:836)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

1 Ответ

0 голосов
/ 04 октября 2011

Я подозреваю, что на сервере Linux установлено более одной копии файла jar.Результатом этого может быть то, что один и тот же jar загружается несколькими загрузчиками классов.Классы, которые обычно бывают связанными, но загружаются несвязанными загрузчиками классов, не конвертируются через приведение.Внимательно проверьте наличие других копий файла JAR - например, в каталоге верхнего уровня Tomcat "server / lib" - и удалите все, кроме одного.

...