Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA IllegalArgumentException,但预期类型和实际类型相同_Java_Jpa_Eclipselink_Weblogic11g - Fatal编程技术网

Java JPA IllegalArgumentException,但预期类型和实际类型相同

Java JPA IllegalArgumentException,但预期类型和实际类型相同,java,jpa,eclipselink,weblogic11g,Java,Jpa,Eclipselink,Weblogic11g,最近,我和一位同事开始在我们的WebLogic开发环境中遇到问题。突然,我们不能再部署我们的项目了 应用程序在Eclipse中构建,但当我们部署到本地WebLogic实例时,我们会收到一个IllegalArgumentException SEVERE: Critical error during deployment: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! java.util.concurrent.

最近,我和一位同事开始在我们的WebLogic开发环境中遇到问题。突然,我们不能再部署我们的项目了

应用程序在Eclipse中构建,但当我们部署到本地WebLogic实例时,我们会收到一个
IllegalArgumentException

SEVERE: Critical error during deployment: 
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! java.util.concurrent.ExecutionException: java.lang.ExceptionInInitializerError
Caused by: javax.faces.FacesException: java.util.concurrent.ExecutionException: java.lang.ExceptionInInitializerError
Caused by: java.util.concurrent.ExecutionException: java.lang.ExceptionInInitializerError
Caused by: java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalArgumentException: You have attempted to set a value of type class ca.<orgdomain>.domain.FolderTransactionType for parameter 1 with expected type of class ca.<orgdomain>.domain.FolderTransactionType from query string select result from TransactionFee result where result.folderTransactionType = ?1 .
    at org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameterInternal(EJBQueryImpl.java:1202)
严重:部署期间出现严重错误:
com.sun.faces.config.ConfigurationException:配置失败!java.util.concurrent.ExecutionException:java.lang.ExceptionInInitializeError
原因:javax.faces.FacesException:java.util.concurrent.ExecutionException:java.lang.ExceptionInInitializerRor
原因:java.util.concurrent.ExecutionException:java.lang.ExceptionInInitializerError
原因:java.lang.ExceptionInInitializeError
原因:java.lang.IllegalArgumentException:您试图为参数1设置类型为class ca..domain.FolderTransactionType的值,预期类型为class ca..domain.FolderTransactionType from查询字符串选择result from TransactionFee result,其中result.FolderTransactionType=?1。
位于org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameterInternal(EJBQueryImpl.java:1202)
对我来说,关键的混淆点是“调度”类型和“预期”类型是相同的


(可能是转移注意力)我不确定这是否相关,但两个受影响的系统都在不同的开发分支上(我们一周前就分道扬镳了),但我们今天都开始遇到问题。与我在同一分支上的另一个开发人员没有遇到这个问题。

正如@kocko所建议的,这很可能是类加载器问题

对象类型的真正运行时标识取决于类以及加载它的类加载器

如果您的运行时框架有多个(不相关的)类加载器,并且您在其中的两个或多个中加载同一个类,那么最终结果是具有相同名称的不同类。即使类的两个“版本”的代码相同

请注意,同一JVM中的不同“webapps”可能有不同的类加载器。如果一个webapp创建对象并将其传递给另一个webapp,则可能会遇到类型不兼容的问题



你能告诉我一些关于如何追踪这类事情的资源吗

以下是一些提示:

  • 掌握比较中涉及的
    对象,以及 确认它们是否相等。如果没有,请检查它们各自的 类名和类加载器都是可用的

  • 检查所有JAR文件,查看是否存在有问题的类 多个罐子

  • 阅读Weblogic文档,了解它如何管理 类装入器。然后检查配置它们的方式


如果这两个名称相同的类由不同的类加载器加载,那么它们将彼此不同。您能告诉我一些有关如何跟踪类似内容的参考资料吗?据我所知,这些不应该由不同的类加载器(相同的应用)加载。当然,“不应该”和“不是”是完全不同的事情。