Веб-сервис Java с использованием Apt. Нужен ли мне процессор аннотаций? Что случилось? - PullRequest
2 голосов
/ 22 января 2010

Я пытался создать простой веб-сервис и следил за этим руководством . К сожалению, я застрял. Вот что я сделал до сих пор:

1) Я создал этот класс:

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 + "!";
   }
}

2) Я бегал:

apt HelloImpl.java

3) Я получаю это предупреждение:

hostName[username:~/Desktop/webtest][534]% apt HelloImpl.java
warning: Annotation types without processors: [javax.xml.bind.annotation.XmlRootElement, javax.xml.bind.annotation.XmlAccessorType, javax.xml.bind.annotation.XmlType, javax.xml.bind.annotation.XmlElement]
1 warning

Команда apt должна (в соответствии с руководством) создать эти файлы:

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:

HelloImpl.java (not generated but it is still in the directory)
HelloImpl.class
server/jaxws/SayHello.cass
server/jaxws/SayHell.java
server/jaxws/SayHelloResponse.class
server/jaxws/SayHelloResponse.java

(отсутствует:)

HelloServiceImpl.wsdl
schema1.xsd

(пути также немного отличаются)

Я подозреваю, что предупреждение генерируется, а другие файлы не генерируются, потому что у меня есть "Типы аннотаций без процессоров:".

Я думаю, что предупреждение указывает на то, что ему нужна фабрика аннотаций (процессор). Я знаю, что вы можете указать, что такое фабрика по:

enter code here -cp Укажите, где искать файлы классов пользователя и фабрики обработки аннотаций

Я просто не уверен, какую фабрику указывать. (Или, может быть, мне нужно настроить что-то по-другому).

1 Ответ

2 голосов
/ 23 января 2010

Этот 5-летний учебник может быть немного устаревшим. jax-ws является преемником jax-rpc. Хотя, возможно, все, что вам нужно, это запустить инструмент wsgen вместо apt.

Посмотрите здесь мини-учебник Внутрипроцессный сервер службы SOAP для Java

...