【问题标题】: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 个子类,所以我非常想跳过这个。

【问题讨论】:

  • 如果你使用远程 WSDL 而不是本地文件呢?

标签: 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 向导

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

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

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

【讨论】:

    猜你喜欢
    • 2011-09-21
    • 2012-05-12
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多