【问题标题】:Java: exception when casting to itself(?)Java:转换为自身时出现异常(?)
【发布时间】:2011-04-07 09:20:39
【问题描述】:

我正在使用 Oracle WebLogic、Netbeans 6.9.1。 我有以下几行代码:

Query query=entityManager.createNamedQuery("Items.findById").setParameter("id", Integer.parseInt((String) request.getParameter("id")));
Items it=(Items) query.getSingleResult();

他们抛出异常:

java.lang.ClassCastException: entity.Items cannot be cast to entity.Items

即使这看起来不可能,我也看到了类似的问题:here 作者尚未发布解决方案,但其中一位参与者对不同的类加载器做出了很好的假设。

同时,如果我使用 getResultList 然后在 JSP 中使用它,它可以正常工作。但我无法在 servlet 代码中进行强制转换。

如何在 weblogic 中解决这个问题?

【问题讨论】:

    标签: netbeans jakarta-ee weblogic entities


    【解决方案1】:

    它并不能专门解决您的问题,但如果您使用的是 WebLogic Server 10.3.x 或更高版本,则作为该发行版的一部分提供了一个 Web 应用程序,您可以使用它来解决类加载问题。

    您可以在此处阅读更多信息:http://download.oracle.com/docs/cd/E17904_01/web.1111/e13706/classloading.htm#WLPRG495

    它应该与早期版本的 WebLogic Server 兼容,因此您可以将它与建议的变通方法结合使用以获得解决方案。

    【讨论】:

      【解决方案2】:

      请参阅此similiar question 以及建议的解决方法。

      【讨论】:

        【解决方案3】:

        这确实看起来像一个类加载问题。

        This earlier answer of mine 解释了如何验证这个假设。

        不幸的是,类加载问题既困难又痛苦。没有简单的解决方法,只能尝试了解哪些类加载器以何种顺序加载哪些类,并尝试使用您的类加载器、类和 jar 来消除问题。此外,在出现此错误之前分析您的应用中的最新更改 - 这些可以提供了解根本原因的关键。

        我不熟悉 WebLogic 中的类加载方案,所以很遗憾我不能给你任何更具体的建议。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-18
          • 1970-01-01
          • 2018-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多