apt предупреждение: процессор аннотаций не найден - PullRequest
2 голосов
/ 19 января 2010

Я просто сейчас изучаю веб-сервисы и пытаюсь запустить helloWorld. Я думаю, что для настройки всего веб-сервиса мне нужно запустить apt.

Я запускаю это так:

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? Он также должен вызывать процессор аннотаций?

Обновление : Учебное пособие , которое я читал, гласит:

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 (при условии, что я передаю правильные аргументы). Однако я думаю, что мне нужно передать ему процессор аннотаций (?). Я действительно хотел бы использовать по умолчанию (процессор аннотаций веб-служб), хотя.

Обновление 2 : Может быть, мне стоит использовать asant или wsgen? Я посмотрел, но у меня нет ни одного из них на моей машине .. Что-то, чтобы посмотреть .. Может быть, учебник, который я использую / использовал, неправильно. Вот ссылка на ссылку asant: http://java.sun.com/webservices/docs/2.0/tutorial/doc/JAXWS3.html

1 Ответ

1 голос
/ 19 января 2010

apt не является компилятором. Он обрабатывает исходные файлы и при необходимости вызывает обработчики аннотаций .

Цитировать Начало работы ...

Утилита командной строки apt, инструмент обработки аннотаций, находит и выполняет процессоры аннотаций на основе аннотаций, присутствующих в наборе указанных исследуемых исходных файлов.

Вы можете запустить apt для исходных файлов, чтобы сгенерировать новые исходные файлы или файлы метаданных во время сборки. Вы можете запустить apt через javac.

Аннотации в Java могут служить нескольким целям. Не все из них должны быть обработаны во время сборки. Некоторые служат маркерами, которые можно использовать с помощью инструментов для преобразования классов во время загрузки. Большинство из них просто используются во время выполнения маркеров, которые могут использоваться инструментами самоанализа (например, многие контейнеры и инжекторы зависимостей). Как именно вы используете аннотацию, зависит от API, из которого она получена. В руководстве по JEE5 описывается как использовать аннотацию WebService .

...