Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
使用JDK 10时未找到javax.annotation.Resource的lookup()方法_Java_Maven_Jakarta Ee_Java 10 - Fatal编程技术网

使用JDK 10时未找到javax.annotation.Resource的lookup()方法

使用JDK 10时未找到javax.annotation.Resource的lookup()方法,java,maven,jakarta-ee,java-10,Java,Maven,Jakarta Ee,Java 10,我有一个JavaEE7应用程序,它在Java8下编译得很好。现在我想迁移到Java10,但在单个类中构建maven时遇到了一个问题。以下是片段: import javax.annotation.Resource; import javax.ejb.Singleton; import javax.inject.Inject; import org.infinispan.Cache; @Singleton public class TestCacheProducer { @Resour

我有一个JavaEE7应用程序,它在Java8下编译得很好。现在我想迁移到Java10,但在单个类中构建maven时遇到了一个问题。以下是片段:

import javax.annotation.Resource;
import javax.ejb.Singleton;
import javax.inject.Inject;

import org.infinispan.Cache;

@Singleton
public class TestCacheProducer {

    @Resource(lookup="java:jboss/infinispan/testcache")
    private org.infinispan.Cache<Long, byte[]> testcache;
我在这个错误中进行了调查,但我只发现使用编译器或JavaEE版本引用(在JavaEE6下面)的人接口类没有“lookup”方法。这里的情况并非如此

我的maven版本信息(mvn-v):

我还使用了
mvn-dependency:tree-Dverbose
来查看是否存在依赖项,哪些引用了较旧的实现。是否有可能看到编译错误来自哪个引用文件

提前感谢您的任何提示或帮助。

谢谢您的帮助。 这个问题是由maven处理器插件引起的,我还必须为JDK10添加编译器参数。(名为“java.se.ee”的模块包括所有JEE模块,您不需要逐个包括它们)


org.bsc.maven
maven处理器插件
3.3.3
过程
过程
生成源
真的
真的
--addmodules=java.se.ee-J--addmodules=java.se.ee
${project.build.directory}/metamodel
org.hibernate.jpamodelgen.jpametamodelenticyprocessor
org.hibernate
冬眠
${hibernate.version}

您是否使用对
模块路径的依赖关系(您的项目模块是否有
模块信息.java
)?不,我没有这样的文件。它是可选的还是必需的?这取决于您是在模块化应用程序,还是只是试图使用不同的JDK执行相同的应用程序。如果文件不存在,您共享的代码应该可以正常工作。感谢您提供的信息,我只想让它在Java 10下编译并运行,只需进行必要的更改即可实现这一点。我无法使用上述maven最小配置重现错误,你能分享一下你失败的全部吗。可能一些可传递的依赖关系实际上是原因。
<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
</dependency>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.0</version>
  <configuration>
      <source>10</source>                                                
      <target>10</target>                                                
      <release>10</release>                                              
      <executable>javac10</executable>                                   
      <encoding>UTF-8</encoding>
      <compilerArgs>
         <arg>-proc:none</arg>
         <arg>--add-modules</arg>
         <arg>java.xml.bind</arg>
         <arg>--add-modules</arg>
         <arg>java.xml.ws.annotation</arg>
      </compilerArgs>
  </configuration>
  <dependencies>                                                         
    <dependency>                                                       
        <groupId>org.ow2.asm</groupId>                                 
        <artifactId>asm</artifactId>                                   
        <version>6.2</version>
    </dependency>                                                      
  </dependencies>
</plugin>
error: cannot find symbol
            @Resource(lookup="java:jboss/infinispan/testcache")
                      ^
      symbol:   method lookup()
      location: @interface javax.annotation.Resource
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T20:33:14+02:00)
Maven home: C:\Softdev\maven\apache-maven-3.5.4\bin\..
Java version: 10, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-10
Default locale: de_AT, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
<plugin>
    <groupId>org.bsc.maven</groupId>
    <artifactId>maven-processor-plugin</artifactId>
    <version>3.3.3</version>
     <executions>
        <execution>
            <id>process</id>
            <goals>
                <goal>process</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
                <fork>true</fork>
                <addCompileSourceRoots>true</addCompileSourceRoots>
                <compilerArguments>--add-modules=java.se.ee -J--add-modules=java.se.ee</compilerArguments>
                <outputDirectory>${project.build.directory}/metamodel</outputDirectory>
                <processors><processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
                </processors>
            </configuration>
        </execution>
    </executions>
    <dependencies>  
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-jpamodelgen</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
    </dependencies>
</plugin>