【问题标题】:How to remove auto generated classes in jax-ws clients如何在 jax-ws 客户端中删除自动生成的类
【发布时间】:2013-04-09 16:58:42
【问题描述】:
我有一个在 NetBeans 中使用 jax-ws 创建的 Web 服务。当我从 wsdl 文件创建soap客户端时,Netbeans 会生成用于序列化的映射类。
我的问题是我不想要它们。我自己编写了它们,它们用于应用程序的其他部分。我尝试了一切以使用我的类而不是自动生成的类来发送 SOAP 消息,但没有成功。
繁琐的解决方案是将数据从一个类复制到另一个类,然后发送消息,但我的类有大约 20 个子类,所以我非常想跳过这个。
【问题讨论】:
标签:
soap
netbeans
jax-ws
webservice-client
【解决方案1】:
使用 JAXB episode 选项,它基本上允许您指示 JAXB 重用包中的类。您在 episode 文件中指定所需的包。 “episode”只是 jaxb 绑定文件的一个花哨的名称,它与您的常规 jaxb 配置文件没有太大区别。您的剧集文件看起来像这样(绑定文件摘自 Blaise Doughan 的博客)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bindings version="2.1" xmlns="http://java.sun.com/xml/ns/jaxb">
<bindings scd="x-schema::tns"
xmlns:tns="http://www.example.org/Product">
<schemaBindings map="false"/>
<bindings scd="tns:product">
<class ref="com.you.yourclass"/>
</bindings>
</bindings>
</bindings>
将文件保存为.episode 文件并像这样在您的Netbeans 项目中进行配置。我在这里假设您已经在 Netbeans 中运行了 从 WSDL 创建 Webservice 向导
右键单击项目中的 Webservice 节点。导航到 WSimport 选项 选项卡
在 Jaxb(xjc) options 框架下,添加以下内容
(其中myepisodefile.episode 指的是您之前创建的剧集文件。确保该文件在您的项目中可用)