如何使用 JBossWS 3.1.2 将 HashMap 作为 @WebParam

2023-12-26

我正在尝试使用 JBossWS 3.1.2 开发一个 Web 服务,该服务将 HashMap 作为其参数之一。我正在使用这个版本的 JBossWS,因为它是随我正在使用的 JBoss 版本一起分发的。我使用 wsprovide 生成 WSDL,并使用 wsconsume 创建 WS 客户端存根。

我的 WebService 的简化版本是:

@WebService(targetNamespace = "http://localhost/ping", serviceName = "Ping")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class Ping {
    @WebMethod
    @WebResult(name="result")
    public String ping(@WebParam(name="arguments") HashMap arguments) {
        return "pong";
    }
}

wsprovide 创建的 WSDL 包含:

<types>
    <xs:schema targetNamespace='http://localhost/ping' version='1.0' xmlns:tns='http://localhost/ping' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
        <xs:complexType name='hashMap'>
            <xs:complexContent>
                <xs:extension base='tns:abstractMap'>
                    <xs:sequence/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
        <xs:complexType abstract='true' name='abstractMap'>
            <xs:sequence/>
        </xs:complexType>
    </xs:schema>
</types>

生成的客户端代码包含一个空抽象类 AbstractMap.java 和一个空类 HashMap。

我希望生成类似于以下内容的 WSDL:

<complexType>
    <sequence>
        <element name="key" type="anyType" />
        <element name="value" type="anyType" />
    </sequence>
</complexType>

我还尝试使用自定义类(ParameterMap)包装 HashMap,但只是得到了更多相同的结果。

还有我没有看到的下一步吗?我是否遗漏了什么,或者这是使用 JBossWS 开发 Web 服务的自下而上方法的限制?


答案在另一个帖子里如何将数组作为值传递到 PHP Soapclient 请求中? https://stackoverflow.com/questions/2337901/how-can-i-pass-in-an-array-as-a-value-into-a-php-soapclient-request

我从来没有想过要研究 JAX-WS 解决方案的 PHP 问题......

HashMap 需要包装在另一个名为 HashMapWrapper.java(或其他)的 Java 类中。

public class HashMapWrapper {
    public HashMap<String, Object> parameters;
}

需要修改 ping 方法调用以使用包装类而不是 HashMap:

public String ping(@WebParam(name="arguments") HashMapWrapper arguments) {

这会生成适当的 WSDL,进而生成有用的 Java 存根。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JBossWS 3.1.2 将 HashMap 作为 @WebParam 的相关文章

  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • Ruby 中非常便宜的命令行选项解析

    编辑 请 please please在回复之前请阅读本文底部列出的两个要求 人们不断发布他们的新宝石和库等等 这显然不符合要求 有时我想以非常便宜的方式将一些命令行选项修改为一个简单的脚本 一种有趣的方法是 无需处理 getopts 或解析
  • 如何为使用 Vuex 存储的 Vue 表单组件编写 Jest 单元测试?

    我有一个登录表格 当我用数据填写登录表单并单击登录按钮时 表单数据 用户名 密码 被发送到服务器并得到响应 回 如果表单数据无效 则会显示一条消息
  • 在 Rails 中显示两个文本正文之间的差异

    有没有一种简单的方法可以做到这一点 创建标记文本来显示两段文本之间的更改 也许是一个内置的助手 看过但没找到 您可以使用 jsdifflib http snowtide com jsdifflib http snowtide com jsd
  • TabLayout高亮和波纹效果

    我对 TabLayout 有两个问题 1 我可以删除TabLayout突出显示或更改选项卡布局的突出显示颜色吗 2 我可以为选项卡添加涟漪效果吗 每个选项卡都包含 TextView 我尝试添加自定义背景 如下所示
  • 以编程方式更改 Gnome 终端主题

    我想在本地计算机 Ubuntu GNOME 上创建一个设置 终端窗口具有不同的背景颜色 具体取决于我是登录到本地计算机还是通过 ssh 连接到远程计算机 有没有办法做到这一点 这并不能满足您的要求 但它可能会满足您的要求 您可以修改您的 b
  • Material UI v1 - 设置表格列宽

    我想使用 css 在 Material UI 表上设置列宽 而不是在 React 中使用 类 但我不明白如何控制列宽 我尝试设置 TH 列的宽度 但它不起作用 参见示例 Material ui 表示例 https codesandbox i
  • 将 .RData 文件加载到 Python 中

    我有一堆 RData 时间序列文件 希望将它们直接加载到 Python 中 而不需要先将文件转换为其他扩展名 例如 csv 关于实现这一目标的最佳方法有什么想法吗 对于那些不想安装 R 来完成此任务 r2py 需要它 的人来说 作为替代方案
  • 正交投影 Python

    我使用正交投影来绘制地图 我使用这个程序 from mpl toolkits basemap import Basemap import numpy as np import matplotlib pyplot as plt import
  • 在视图模型中实现 IDataErrorInfo

    我有一个 ViewModel 类 其中一个 Phone 对象作为其属性之一 我的主窗口数据上下文设置为 ViewModel 我是否需要在基础 Phone 模型类或包含 Phone 属性的 ViewModel 类上实现 IDataErrorI
  • 设计用户的rails pg db迁移未定义方法“database_authenticatable”

    undefined method database authenticatable for
  • 将屏幕坐标从按钮传递给父级

    我正在为 Android 制作一个钢琴应用程序 作为示例 测试 我的活动中有 4 个按钮 家长是一个Relative Layout我还有一些文本视图可以告诉手指触摸的屏幕坐标 还有一个 textView Entered Button 可以检
  • 无法在 Windows 8 上的 Rails 中通过回形针保存图像

    我使用 回形针 gt 4 1 在 Windows 8 上 将图片保存到我的产品中 我有以下代码 产品控制器 class ProductsController lt ApplicationController before action se
  • Python3 / JS - 如何使用 eel 处理本地文件上传?

    我目前正在开发一个类似 Electron 的本地软件Eel https pypi org project Eel 该软件旨在捆绑为需要在用户本地计算机上运行的独立 Windows 应用程序 在这个软件中 我希望能够在 Python 后端选择
  • 使用 sed 修改 /etc/sudoers

    我正在尝试编写一个 sed 程序来附加Defaults user requiretty行后Defaults requiretty in etc sudoers 我尝试了以下命令 sudo sed i Defaults requiretty
  • Android 中的 Consumer-rules.pro 和 proguard-rules.pro 有什么区别?

    我已经在 Android 中创建了一个模块以在我的主应用程序中使用 并且似乎有两个文件 Consumer rules pro 和 proguard rules pro 我想知道以下事情 所有模块代码是否都会被主模块亲卫规则的规则混淆 即使模
  • iPhone 开发人员:提高 UIWebView 中的滚动速度?

    我有一个应用程序 可以在 UIWebView 中渲染本地 HTML 文件 然而 这些文件有时很大 并且以默认滚动速度到达您想要的位置需要很长时间 有什么方法可以提高 UIWebView 的垂直滚动速度吗 在 iOS 5 中我们可以访问scr
  • 构建器模式是否会做得太多?

    我最近一直在与一个研究小组一起研究设计模式 并且逐渐了解到构建器模式对于创建由许多 可能是可选的 部分组成的复杂对象非常有用 然而 建造者是否在某个时刻做得太多了呢 假设我们有一个包含许多不同对象组合的类 是否有另一种模式可能更适合该类 而
  • SQL-Server 2005:多部分标识符...无法绑定。

    我的错误信息 无法绑定多部分标识符 table2 ValidSince UPDATE table1 SET table1 ValidSince table2 ValidSince WHERE table1 ID 5C954C6F FFD7
  • 什么是“关闭”?

    我问了一个关于柯里化的问题 其中提到了闭包 什么是闭包 它与柯里化有什么关系 变量范围 当您声明局部变量时 该变量就有一个作用域 通常 局部变量仅存在于声明它们的块或函数中 function var a 1 console log a wo
  • 如何使用 JBossWS 3.1.2 将 HashMap 作为 @WebParam

    我正在尝试使用 JBossWS 3 1 2 开发一个 Web 服务 该服务将 HashMap 作为其参数之一 我正在使用这个版本的 JBossWS 因为它是随我正在使用的 JBoss 版本一起分发的 我使用 wsprovide 生成 WSD