我正在 Eclipse 中试用 Hello World JAX-WS Web 服务(文档样式,而不是 RPC)。我正在关注这个 tut。
这是我的项目设置:
现在我想创建用于部署 Web 服务的 Web 服务支持类,wsgen
如 tut 中所述。因此,在 Windows 命令提示符中,我导航到了我的应用程序的 bin 目录(>cd bin
),然后执行了给定的命令:
所以在bin\com\Mahesh\ws\jaxws
它创建了以下四个文件
- GetHelloWorldAsString.class
- GetHelloWorldAsString.java
- GetHelloWorldAsStringResponse.class
- GetHelloWorldAsStringResponse.java
由于源文件放在bin\com\Mahesh\ws\jaxws
文件夹中而不是放在文件夹中,因此src\com\Mahesh\ws\jaxws
在 Eclipse 中进行包刷新不会在包资源管理器中显示新生成的源文件
1.我希望这些源文件生成在src\com\Mahesh\wssrc
一个空包中,您可以在第一张图片中看到。
2.当我发布这个 Web 服务并看到它的 WSDL 文件时,我意识到在幕后创建了一个单独的 XSD。所以我想使用 wsgen 创建这个 WSDL 和 XSD 并将它放在另一个空包src\com\Mahesh\rsc
中,你可以在第一张图片中看到。
在阅读wsgen
了'帮助后,我发现了这两个选项:
-r <directory>
: 资源目标目录,指定放置资源文件(如 WSDL)的位置-s <directory>
: 指定放置生成的源文件的位置
但是我仍然无法弄清楚如何做到这一点。
3.还说:
等等,当您运行端点发布者时,您将遇到以下错误消息:
Wrapper class com.mkyong.ws.jaxws.GetHelloWorldAsString is not found. Have you run APT to generate them?
但是,我没有收到任何此类错误,并且我的端点发布时没有任何错误。因此,我们是否仍然需要显式生成用于 Web 服务部署的类,wsgen
或者这由 JAX-WS 内部处理。