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
Eclipse WAS Liberty环境中缺少NamedQueries注释_Eclipse_Jpa_Websphere Liberty - Fatal编程技术网

Eclipse WAS Liberty环境中缺少NamedQueries注释

Eclipse WAS Liberty环境中缺少NamedQueries注释,eclipse,jpa,websphere-liberty,Eclipse,Jpa,Websphere Liberty,我在Java 7下使用的是Liberty 8.5.5.5(在Oracle Java 7-8和IBM Java 7下也尝试过) 当我创建一个名为query的时,代码可以很好地编译、部署和运行。 但是,如果我尝试使用namedquerys注释,我会得到以下结果: java.lang.ArrayStoreException: com.sun.proxy.$Proxy29 at sun.reflect.annotation.AnnotationParser.parse

我在Java 7下使用的是Liberty 8.5.5.5(在Oracle Java 7-8和IBM Java 7下也尝试过)

当我创建一个名为query的
时,代码可以很好地编译、部署和运行。
但是,如果我尝试使用
namedquerys
注释,我会得到以下结果:

java.lang.ArrayStoreException: com.sun.proxy.$Proxy29
                  at sun.reflect.annotation.AnnotationParser.parseAnnotationArray(AnnotationParser.java:765)
                  at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:537)
                  at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
                  at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
                  at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
                  at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
                  at java.lang.Class.createAnnotationData(Class.java:3521)
                  at java.lang.Class.annotationData(Class.java:3510)
                  at java.lang.Class.getAnnotation(Class.java:3415)
经过调查,我发现了以下两个bug:

  • Jboss中的ArrayStoreException:

  • 声明类丢失的批注时出现ArrayStoreException:

环境中似乎缺少
javax.persistence.namedquerys
interface(存在javax.persistence.NameQuery的stangely…)

我使用EclipseKepler进行开发,部署也由IDE处理。 在更多的事情上;使用相同代码库的其他开发人员可以成功地部署和运行应用程序,并使用指定的设置—因此我怀疑部署可能是造成此问题的原因


有没有办法“告诉”WAS包含缺少的类运行时?

这花了一些时间,但我找到了解决方案

我们使用Ecliselink作为JPA提供商,并相应地加载它:

<classloader commonLibraryRef="EclipseLinkLib" delegation="parentLast"/>

Eclipselink(版本2.5.2)似乎包含
javax.persistence.NamedQuery
接口,但不包含
javax.persistence.namedquerys
接口-这种方式不会加载缺少的接口

通过更改
delegation=“parentFirst”
应用程序工作正常