使用Apt的Java Web服务。我需要注释处理器吗?怎么了?

时间:2010-01-22 19:52:30

标签: java web-services annotations apt

我一直在尝试制作简单的网络服务并一直关注 this tutorial 。不幸的是我被卡住了。以下是我到目前为止所做的事情:

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 个答案:

答案 0 :(得分:2)

这个5岁的教程可能有点过时了。 jax-ws是jax-rpc的继承者。但是,您可能只需要运行wsgen工具而不是apt。

在这里查看迷你教程In-process SOAP service server for Java