2

我一直在尝试制作一个简单的 Web 服务,并且一直在关注本教程。不幸的是我被困住了。这是我到目前为止所做的:

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 指定在哪里可以找到用户类文件和注释处理器工厂

我只是不确定要指定哪个工厂。(或者也许我需要配置一些不同的东西)。

4

1 回答 1

2

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

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

于 2010-01-22T22:01:30.100 回答