Уместное предупреждение: обработчик аннотаций не найден

Сейчас я просто изучаю веб-сервисы и пытаюсь запустить 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


person sixtyfootersdude    schedule 19.01.2010    source источник


Ответы (1)


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

Чтобы процитировать Начало работы...

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

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

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

person McDowell    schedule 19.01.2010