maven项目 @Resource报错 ava.lang.NoSuchMethodError: javax.annotation.Resource.lookup()Ljava/lang/String;

@Resource 出错 java.lang.NoSuchMethodError: javax.annotation.Resource.lookup()

maven项目中,使用@Resource报错。。。。。。。。。。

原因1:不存在javax.annotation这个包,正常情况不会有这个问题。jdk中有这个包。

原因2:jar包冲突:导入多个jar包,jdk中一个,再导入1个jar包,或者服务器lib中有这个jar包。例如Tomcat服务器下Lib目录下存在这个包,java.annotation.Resource在下图jar包中。

解决办法:去掉一个jar包


3:jar包不让用。。。。。。。。。。

详细问题点击以下链接:

https://stackoverflow.com/questions/46502001/how-to-get-access-to-javax-annotation-resource-at-run-time-in-java-9

jdk 9、10中存在这个jar包,注解类Resource在java.xml.ws.annotation下的

javax.annotation包中,但是不让用。。。。。。。。。。。


解决办法:搬运至上述链接  maven项目:

https://stackoverflow.com/questions/46502001/how-to-get-access-to-javax-annotation-resource-at-run-time-in-java-9

1:亲测可用

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.1</version>
</dependency>

2:没有测试过,应该可以用

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.7.0</version>
    <configuration>
        <release>9</release>
        <compilerArgs>
            <arg>--add-modules</arg>
            <arg>java.xml.ws.annotation</arg>
        </compilerArgs>
    </configuration>
</plugin>

 为啥不让用jdk的包。。。。。。。。。。。。

原文地址:https://www.cnblogs.com/Demonfeatuing/p/9535062.html