当我使用wsgen或apt通过命令在JDK7中生成web服务工件时。
wsgen -s src -cp CLASS_PATH -d OUTPUT_DIRECTORY com.sun.WebServiceSEI
显示以下警告信息
包com.sun.mirror中包含的apt工具及其相关的API自JDK7以来一直被弃用,并计划在下一个主要的JDK版本中删除。使用javac工具中的可用选项以及包javax.annotation.processing和javax.lang.model中包含的API来处理注释。
如何在不使用wsgen或apt删除此警告的情况下生成web服务工件?
javac是替代品。不久前,他们在javac(JSR269:PlugableAnnotationProcessingneneneba API)中添加了一个可插拔注释处理系统(我认为是Java6)。您正在寻找的注释处理器位于jaxws-tools.jar(Metro下载)中。一旦您的类路径上有了这个jar,您就可以使用-processor com.sun.tools.ws.prrocessor.modeler.annotaton.WebServiceAp选项运行javac。还有一个Ant任务,com.sun.tools.ws.Ant.AnnotationProcessingTaskhttp://jax-ws.java.net/nonav/2.2.6/docs/ch04.html#tools-注释处理,但并没有真正解释它。也许JDK附带了所需的注释处理器,但如果是这样的话,我找不到它。
生成警告是因为WsgenTool
类正在使用com.sun.mirror.apt
包中的类,而这些类在JDK7中似乎已被弃用。我认为在一段时间内,JAX-WS团队将发布不使用这个API的jaxws-ri,但它可能发生在更接近JDK8发布的地方。
恐怕这是不可能的。您所能做的就是切换回对您有效的旧JDK,这是您的最佳选择。