JAX-WS 返回复杂对象?

2024-02-24

我对 Java Web 服务还很陌生,但我在任何地方都找不到很好的解释。

我在 NetBeans 中有 2 个 Java Web 项目。
一种作为 Web 服务,另一种作为该 Web 服务的客户端。
我还创建了自己的类,名为“Person”,其中包含您所期望的内容:姓名、出生日期等。

我想要一个名为“ListPeople()”的 Web 服务方法,它将返回“Person”对象的数组。

我需要在两个项目中都开设该课程吗?
我应该首先序列化对象吗?
我应该使用 JAXB,如果是的话,我应该从哪里开始?

抱歉提出了一些问题,但我很困惑。
完成此任务的正常方法是什么?

提前致谢


  1. 我需要在两个项目中都开设该课程吗?是的。
  2. 我应该首先序列化对象吗?不。
  3. 我应该使用 JAXB,如果是的话,我应该从哪里开始?我不会。我更喜欢 javax.oxm 接口,因为我不关心 JAXB,但这是个人意见。

我个人的偏好是使用春季网络服务 http://static.springsource.org/spring-ws/sites/1.5/reference/html/index.htmls。如果您碰巧是 Spring 用户,我认为这是最好的方法。如果没有,也许文档仍然有助于澄清。

您正在经历我不喜欢您的方法的原因:服务和客户端都依赖于类和 OXM 代码。你必须在两个地方都拥有它,并且完美同步。改变其中之一,就必须同时改变两者。

如果可以的话,我会尽量减少依赖。

在这种情况下,如果您来回发送 XML,就可以实现。从 XSD 架构开始。让客户端和服务来处理这个问题,而不是 Java 对象。您的服务将可用于非 Java 的客户端。

如果采用这种方法,您只需担心服务器端的 OXM 即可。您接收 XML 请求并将其编组到您选择的 Java 对象中,然后将其传递到服务层(注意:不是 Web 服务层)进行处理。将响应对象转换为 XML 响应流,Bob 就是你的叔叔。让客户来处理吧。

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

JAX-WS 返回复杂对象? 的相关文章

随机推荐

  • EditText TextChangeListener问题

    我有一个用于搜索目的的编辑文本 我已经添加了 searchET addTextChangedListener new TextWatcher Override public void onTextChanged CharSequence s
  • 如何使用 bash 命令创建 CPU 峰值

    我想在 Linux 机器上创建接近 100 的负载 它是四核系统 我希望所有核心都全速运行 理想情况下 CPU 负载将持续指定的时间 然后停止 我希望 bash 有一些技巧 我在想某种无限循环 I use stress http linux
  • Java Swing 中的图形绘制仅绘制点

    我目前正在开发一个程序 其中随着时间的推移而演变的某些数值变量在每次迭代中显示它们的值 这已经足够好了 但现在我想绘制一个图表来显示它们随时间的演变 因此 我研究了在 Swing 中绘制图表的代码示例 我的最终代码如下所示 public c
  • 处理ControlCAsInput 问题。这是一个错误吗?

    刚刚遇到了下面描述的问题 如果 Console TreatControlCAsInput true 则必须在 ReadLine 上按 enter 两次 我在下面写了一些演示代码 我对这段代码演示了 NET 4 框架中的错误的猜测是正确的吗
  • 打开 XML SDK 2.0 以按名称访问 Excel 2010 工作表

    我有一个 Excel 2010 电子表格 其中有 3 个工作表 分别名为 Sheet1 Sheet2 和 Sheet3 我正在尝试按名称获取对工作表的引用 我正在使用代码 using SpreadsheetDocument myWorkbo
  • 将 JSON 编码的 PHP 数组解析为 JavaScript JSON.parse() 时的 PHP 或 JavaScript 问题

    我目前正在为我的工作场所制作一个 Web 应用程序 它一次性从 SQL 表中下载大约 40 000 行数据 将数据放入嵌套的 PHP 数组中 然后尝试回显 JSON 编码的数组 其中 JavaScript 变量应该捕获内容 如果我尝试将数据
  • 在repz cmpsb之后,汇编指令'seta'和'setb'做什么?

    我无法理解以下装配线的作用 0x401810 repz cmps BYTE PTR ds rsi BYTE PTR es rdi 0x401812 seta dl 0x401815 setb al 我明白调试后 第一条指令比较寄存器中的字节
  • 为什么 Visual Studio 找不到我的 DLL? [复制]

    这个问题在这里已经有答案了 在 Visual Studio 2010 中 在VC Directories gt Executable Directories 我已经指定了路径glew32d dll 但是 当我运行可执行文件时 它仍然抱怨 另
  • NodeJS Redis 客户端返回错误值

    我正在使用 NodeJS Redis 客户端 Redis节点 https github com mranney node redis并调用 SISMEMBER Redis 命令 但是 当我调用该命令时 无论该值是否是该集合的成员 它总是返回
  • Spring Boot REST API 的指标收集

    我正在尝试收集我的 Spring Boot 2 1 0 RELEASE 应用程序的指标 具体来说我想知道 调用各个 REST 端点的次数 每个端点处理请求所花费的时间 我的请求被处理 出错的平均速率 执行器 actuator metrics
  • 测量缠绕的绳子

    我正在尝试创建一个控件 它基本上允许我在彼此下面绘制不同的字符串 但是 字符串的宽度不能大于控件的宽度 为了解决这个问题 我正在考虑将 RectangleF 对象传递给 Graphics DrawString 方法 这将包装比传递的矩形宽度
  • array_walk_recursive 与数组?

    我有一个菜单数组 它是一个多维数组 我想对每个项目做一些事情 所以我尝试了 array walk recursive 这是菜单 menu array array name gt a url gt b array name gt c url
  • X 没有实现 Y(...方法有一个指针接收器)

    已经有几个关于此的问答 X 没有实现 Y 方法有一个指针接收器 的事情 但对我来说 他们似乎在谈论不同的事情 并不适用于我的具体情况 因此 我没有将问题变得非常具体 而是将其变得广泛和抽象 似乎有几种不同的情况可能会导致此错误发生 有人可以
  • 从 Chrome 打包应用程序读取和写入本地 sqlite 数据库

    是否可以从 chrome 打包应用程序读取和写入本地 sqlite 文件 我目前已经读取并写入了一个 json 文件 其中包含本地存储在硬盘上的应用程序数据 但我也希望能够使用 sqlite 数据库来执行此操作 我需要它在本地而不是在驱动器
  • 从概念上讲,重玩在游戏中是如何运作的?

    我有点好奇如何在游戏中实现重播 最初 我认为游戏中只会有一个包含每个玩家 人工智能操作的命令列表 然后它会 重新玩 游戏并让引擎照常渲染 然而 我查看了 FPS RTS 游戏的重播 经过仔细检查 甚至像粒子和图形 声音故障之类的东西都是一致
  • 如何编辑嵌入不和谐中的图像?

    是否可以更改嵌入内的图像 我正在尝试重新创建一个我在 Reddit 上看到的 蚀刻草图 机器人 并且想知道它是如何完成的 到目前为止 这是我尝试过的 这是在制作图像的函数内部 code that draws the etch a sketc
  • Next.js 路由器对某些页面上的浏览器后退按钮没有反应

    当浏览器的后退按钮打开时 我遇到了难以调查的错误https gart gallery 如果你去https gart gallery artworks 然后是任何艺术品 例如https gart gallery artworks my pla
  • 使用 jquery 创建会话?

    是否可以使用 jquery 或 javascript 创建会话变量 或者我是否必须使用 ajax 来调用执行此操作的 php 您需要使用服务器请求 Javascript仅在客户端运行 会话数据存储在服务器上 example of passi
  • 将 CSV 文件转换为 TF 记录

    我已经运行我的脚本超过 5 个小时了 我有 258 个 CSV 文件想要转换为 TF Records 我编写了以下脚本 正如我所说 我已经运行它超过 5 个小时了 import argparse import os import sys i
  • JAX-WS 返回复杂对象?

    我对 Java Web 服务还很陌生 但我在任何地方都找不到很好的解释 我在 NetBeans 中有 2 个 Java Web 项目 一种作为 Web 服务 另一种作为该 Web 服务的客户端 我还创建了自己的类 名为 Person 其中包