用于 JAX-WS 应用程序的 wsgen 命令

当从 Java 代码启动时,wsgen 命令行工具将生成针对 XML Web Service 的 Java API(JAX-WS)应用程序所必需的可移植工件。仅当请求生成 WSDL 文件时,此工具才会生成 WSDL 文件。

当使用自底向上方法来开发 JAX-WS Web Service 并且是从服务端点实现开始进行开发时,使用 wsgen 工具来生成必需的 JAX-WS 可移植工件。

wsgen 工具接受正确注释的服务端点实现,该实现使用 @WebService 注释作为输入,并且将生成下列可移植工件:
  • 对消息内容进行编组和数据编出所需要的任何其他 Java XML 绑定体系结构(JAXB)类。
  • WSDL 文件(如果指定了可选的 -wsdl 参数)。wsgen 工具并不会自动生成 WSDL 文件。
避免故障: 当多个 XMLType 注释在不同 Java 包中定义了同一个 @XMLType 名称时, wsgen 命令无法在这些注释之间区分 XML 名称空间。如果出现了这种情况,那么将产生以下错误:
Error: Two classes have the same XML type name ....
Use @XmlType.name and @XmlType.namespace to assign different names to them...
此错误指示您具有同名的类或 @XMLType.name 值,但它们存在于不同的 Java 包中。要防止此错误,请将 @XML.Type.namespace 类添加至现有的 @XMLType 注释以区分 XML 类型。 gotcha
语法
命令行语法是:
wsgen [options
] service_implementation_class
参数

service_implementation_class 名称是需要的唯一参数。对于 wsgen 命令,下列参数是可选参数:

-classpath <path>
指定服务实现类所在的位置。
-cp <path>
此参数与 -classpath <path> 的功能相同。
-d <directory>
指定用于放置生成的输出文件的位置。
-extension
指定是否允许对不是由 JAX-WS 规范指定的功能进行定制扩展。使用扩展可能会产生不可移植的应用程序或者不与其他实现互操作的应用程序。
-help
显示帮助菜单。
-keep
指定是否保留已生成的源文件。
-r <directory>
此参数仅与 -wsdl 参数一起使用。它指定用于放置生成的 WSDL 文件的位置。
-s <directory>
指定用于放置生成的源文件的目录。
-verbose
指定此参数以输出一些消息来说明编译器正在执行哪些操作。
-version
打印版本信息。如果指定此选项,那么将只输出版本信息,不会进行正常的命令处理。
-wsdl [:protocol]
缺省情况下, wsgen 不会生成 WSDL 文件。此可选参数将导致 wsgen 生成 WSDL 文件,它通常只用来允许开发者在部署端点之前复查 WSDL 文件。 protocol 是可选的,它指定 wsdl:binding 中所使用的协议。 protocol 的有效值为 soap 1.1 Xsoap 1.2 。缺省值为 soap 1.1 。值 Xsoap 1.2 不是标准的,只能与 -extension 选项一起使用。
-servicename <name>
此参数仅与 -wsdl 选项一起使用。指定要在 WSDL 文件中生成的一个 wsdl:service 名称。例如,
-servicename "{http://mynamespace/}MyService"
-portname
此参数仅与 -wsdl 选项一起使用。指定要在 WSDL 文件中生成的一个 wsdl:port 名称。例如,
-portname "{http://mynamespace/}MyPort"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以按照以下步骤JAX-WS接口替换为JAX-RS接口: 1. 创建JAX-RS接口:创建一个新的Java接口来定义您的JAX-RS服务。在接口上使用`@Path`注解指定资源的URL路径。 ```java import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/your-resource") public interface YourResource { @GET @Produces(MediaType.APPLICATION_JSON) String getResource(); } ``` 2. 实现JAX-RS接口:创建一个类来实现您的JAX-RS接口,并实现接口中定义的方法。 ```java public class YourResourceImpl implements YourResource { @Override public String getResource() { // 实现您的业务逻辑 return "Hello JAX-RS!"; } } ``` 3. 注册JAX-RS服务:将您的JAX-RS服务注册到应用程序中。这可以通过创建一个`javax.ws.rs.core.Application`子类并在其中注册资源类来完成。 ```java import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; import java.util.HashSet; import java.util.Set; @ApplicationPath("/api") public class YourApplication extends Application { @Override public Set<Class<?>> getClasses() { Set<Class<?>> classes = new HashSet<>(); classes.add(YourResourceImpl.class); return classes; } } ``` 4. 配置JAX-RS:根据您使用应用程序服务器,将JAX-RS的实现(如Jersey或RestEasy)添加到您的应用程序的构建配置文件中。您还需要确保在应用程序服务器上正确配置JAX-RS。 5. 测试JAX-RS接口:启动您的应用程序服务器,并使用JAX-RS客户端或浏览器等工具测试您的JAX-RS接口。 请注意,以上步骤是一般的指导,具体步骤可能因您使用的框架和工具而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值