Java:向自身(?)进行类型转换时出现异常



我使用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

即使这看起来不可能,我在SO:这里看到了类似的问题作者没有公布解决方案,但一个参与者对不同的类加载器做了一个很好的假设。

同时,如果我使用getResultList,然后在JSP中使用它,它工作得很好。但是我不能让类型转换在servlet代码中工作。

如何在weblogic中修复此问题?

它不能特别解决你的问题,但如果你使用WebLogic Server 10.3。X或左右,有一个web应用程序作为该发行版的一部分,您可以使用它来排除类加载问题。

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

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

查看这个类似的问题和建议的解决方法。

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

我之前的回答解释了如何验证这个假设。

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

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

相关内容

  • 没有找到相关文章

最新更新