代码之家  ›  专栏  ›  技术社区  ›  javamonkey79

如何使用JAVA EE 6资源注释

  •  4
  • javamonkey79  · 技术社区  · 14 年前

    Java EE 6 API具有注释 @Resource 但是,使用属性“查找”,Java SE 6 API也是如此( here )然而,由于Java EE 6依赖于Java SE 6,所以似乎无法获得EN版本的注释和“查找”属性。

    这是一个bug还是有其他方法可以使用我缺少的注释?

    蒂亚

    3 回复  |  直到 13 年前
        1
  •  7
  •   Pascal Thivent    14 年前

    你的JDK(和我的)没有最新版本的 javax.annotation.Resource JSR-250 . 要在编译过程中使用最新版本,必须重写编译器的已背书目录(例如指向GlassFishv3已背书目录):

    -Djava.endorsed.dirs=${GLASSFISH_HOME}/modules/endorsed
    
        2
  •  2
  •   skaffman    14 年前

    两种情况下都是同一班的( javax.annotation.Resource )这两套API文档都有,只是为了方便起见。实际的Javae6实现将只使用Javase6中的类。

        3
  •  2
  •   LeChe    13 年前

    最好是穿上Necro的线,但对我来说——试着做干净整洁的事情——JavaMonkey79的方法太简单了。

    这就是我在pom.xml中所做的工作:

    <profiles>
            <profile>
                <id>endorsed</id>
                <activation>
                    <property>
                        <name>sun.boot.class.path</name>
                    </property>
                </activation>
                <build>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <configuration>
                                <!-- javaee6 contains upgrades of APIs contained within the JDK itself.
                                     As such these need to be placed on the bootclasspath, rather than classpath of the
                                     compiler.
                                     If you don't make use of these new updated API, you can delete the profile.
                                     On non-SUN jdk, you will need to create a similar profile for your jdk, with the similar property as sun.boot.class.path in Sun's JDK.-->
                                <compilerArguments>
                                    <bootclasspath>${settings.localRepository}/javax/javaee-endorsed-api/6.0/javaee-endorsed-api-6.0.jar${path.separator}${sun.boot.class.path}</bootclasspath>
                                </compilerArguments>
                            </configuration>
                            <dependencies>
                                <dependency>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>6.0</version>
                                </dependency>
                            </dependencies>
                        </plugin>
                    </plugins>
                </build>
            </profile>
        </profiles>
    

    顺便问一下,我找到这个了 here . 非常感谢,弗雷德里克!