0

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

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

4

1 回答 1

0

使用 JAXBepisode选项,它基本上允许您指示 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) 选项框架下,添加以下内容

自定义 WSImport

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

于 2013-04-15T04:32:40.307 回答