【问题标题】:apt warning: no annotation processor foundapt 警告:未找到注释处理器
【发布时间】:2011-01-06 23:23:57
【问题描述】:

我现在只是在自学 Web 服务并尝试运行一个 helloWorld。我认为要设置我需要运行 apt 的所有 Web 服务。

我是这样运行的:

apt HelloImpl.java -classpath /<path>/jsr181-api.jar

但我收到了警告(见下文)。我是否也需要指定注释处理器?我认为 apt 命令应该生成几个文件,但这并没有发生(只是生成一个 .class 文件)。谢谢您的帮助。

警告:

warning: No annotation processors found but annotations present.
1 warning

代码:

package server;

import javax.jws.WebService;

@WebService
public class HelloImpl {

  /**
   * @param name
   * @return Say hello to the person.
   */
   public String sayHello(String name) {
     return "Hello, " + name + "!";
   }
}

额外问题:apt 是做什么的?我假设它调用javac?它还应该调用注释处理器吗?

更新:我关注的tutorial 说:

The next step is to run apt on the above Java code, resulting in several artifacts:

HelloServiceImpl.wsdl
schema1.xsd
classes/server/HelloImpl.class
classes/server/jaxrpc/SayHello.class
classes/server/jaxrpc/SayHelloResponse.class
classes/server/jaxrpc/SayHello.java
classes/server/jaxrpc/SayHelloResponse.java

我认为这就是 apt 应该产生的结果(假设我传递了正确的参数)。但是我认为我需要向它传递一个注释处理器(?)。不过,我真的只想使用默认的(Web 服务注释处理器)。

更新 2:也许我应该使用 asant 或 wsgen?我看了看,但我的机器上没有这些。。需要研究的东西。。也许我正在/正在使用的教程是错误的。这是指向 asant 参考的链接:http://java.sun.com/webservices/docs/2.0/tutorial/doc/JAXWS3.html

【问题讨论】:

    标签: java web-services annotations apt


    【解决方案1】:

    apt 不是编译器。它处理源文件并酌情调用annotation processors

    引用Getting Started...

    命令行实用程序 apt,注释处理工具,根据正在检查的指定源文件集中存在的注释查找并执行注释处理器。

    您可以在源文件上运行 apt 以在构建时生成新的源文件或元数据文件。你可以运行aptvia javac

    Java 中的注解可以有多种用途。并非所有这些都需要在构建时进行处理。有些用作标记,可通过插装使用在加载时转换类。大多数仅用于自省工具(如许多容器和依赖注入器)可以使用的运行时标记。究竟如何使用注解取决于它来自的 API。 JEE5 教程描述了how to use the WebService annotation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2018-10-12
      • 2017-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多