JAX-WS返回一个复杂的对象?

时间:2009-08-22 11:30:15

标签: java netbeans jax-ws

我是Java Web Services的新手,但我无法在任何地方找到一个好的解释。

我在NetBeans中有2个Java Web项目 一个是Web服务,另一个是Web服务的客户端 我还创建了自己的名为“Person”的类,它有你所期望的:name,dob等。

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

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

很抱歉n00b的问题,但我很困惑。
实现这一目标的正常方法是什么?

提前致谢

1 个答案:

答案 0 :(得分:2)

  1. 我是否需要在这两个项目中拥有该课程?是。
  2. 我应该首先序列化对象吗?否。
  3. 我应该使用JAXB,如果是这样,我从哪里开始?我不会。我更喜欢javax.oxm接口,因为我不关心JAXB,但那是个人观点。
  4. 我个人的偏好是使用Spring web service。如果您恰好是Spring用户,我认为这是最好的方式。如果没有,也许文档仍然有助于澄清。

    您遇到了我不喜欢您的方法的原因:服务和客户端以及依赖于类和OXM代码。您必须在两个地方都能完美同步。改变一个,你必须改变它们。

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

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

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