的Java EE有一些不同的版本,其附帶的JDK的API。
爲了克服這個問題,有「認可的API」的概念。
Java SE 7中列出了「Java平臺通用註解」作爲批准API:http://docs.oracle.com/javase/7/docs/technotes/guides/standards/
的Java SE 8沒有列出「Java平臺通用註解」作爲批准API了一些原因,但據我所知它仍然支持(文檔錯誤?):http://docs.oracle.com/javase/8/docs/technotes/guides/standards/
然而要注意的認可API概念已被棄用,可能不會與Java SE 9工作了:https://www.java.com/en/download/faq/release_changes.xml
它可能會取而代之的是拼圖模塊。
遺憾的是,似乎沒有要任何的遷移路徑,所以你必須使用認可的API的概念,現在,即使它否決。
這裏的NetBeans產生什麼(略有修改):
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
...
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>7.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
當然,你的應用服務器還需要指定覈准目錄,但是這通常應配置出的現成的大多數應用服務器。
[34,14] cannot find symbol
[ERROR] symbol : method lookup()
[ERROR] location: @interface javax.annotation.Resource
[ERROR] -> [Help 1]
這就是說,Resource#lookup()是因爲Java SE 7中的JDK版本不支持,所以我想您使用的是較小的JDK版本。
請注意,如果您使用的JDK/JRE版本從Oracle,Java SE的8仍支持的唯一版本。所有其他版本都達到End of Life,如果您想要錯誤/安全更新,您需要與Oracle簽署支持合同。
如果是這樣,我會強烈建議,如果可能將其升級到Java SE 8的情況。
請在您的帖子中的文本中發佈堆棧跟蹤,而不是圖像。 – Tunaki