如何在jax-ws客户端中删除自动生成的类

时间:2013-04-09 16:58:43

标签: soap netbeans jax-ws webservice-client

我有一个使用NetBeans中的jax-ws创建的Web服务。当我从wsdl文件创建soap客户端时,Netbeans会生成用于序列化的映射类。

我的问题是我不想要它们。我自己写了它们,它们用在应用程序的其他部分。我尝试使用我的类而不是自动生成的所有内容来发送SOAP消息,但没有成功。 繁琐的解决方案是将数据从一个类复制到另一个类然后发送消息,但我的类有大约20个子类,所以我非常想跳过这个。

1 个答案:

答案 0 :(得分:0)

使用JAXB episode选项,它基本上允许您指示JAXB重用包中的类。您可以在剧集文件中指定所需的包。 “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创建Web服务向导

  1. 右键单击项目中的 Webservice 节点。导航到 WSimport选项标签

  2. Jaxb(xjc)选项框架下,添加以下内容

  3. Customize WSImport

    (其中myepisodefile.episode指的是您之前创建的剧集文件。请确保该项目中的文件可用)