如何在JDK7或JDK6中使用javac来替换弃用的wsgen或apt



当我使用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,这是您的最佳选择。

相关内容

  • 没有找到相关文章