0

我目前正在开发一组将 POJO/bean 作为参数的 Web 服务,这些参数将通过 Axis2 进行部署。问题是生成 WSDL 的 Axis2 的内置代码以不同于我需要的方式表示 POJO。

例如,我有以下课程:

public class Employee {
    private String firstName;
    private String lastName;
    //mutators, accessors
}

public class Department {
    private String name;
    private List<Employee> employees;
    //mutators, accessors
}

我希望 XML 看起来像(减去所有命名空间数据):

<department>
  <name>marketing<name>
  <employees>
    <employee>
      <firstName>Juan</firstName>
      <lastName>dela Cruz</lastName>
    <employee>
    <employee>
      <firstName>Pedro</firstName>
      <lastName>Mahusay</lastName>
    <employee>
  </employees>
<department>

但是,Axis2 将上述 XML 表示为:

<department>
  <name>marketing<name>
  <employees>
    <firstName>Juan</firstName>
    <lastName>dela Cruz</lastName>
  </employees>
  <employees>
    <firstName>Pedro</firstName>
    <lastName>Mahusay</lastName>
  <employees>
<department>

我研究了 MessageBuilders 和 MessageFormatters,但我仍然不确定如何将 XML 处理为 OMElement(在 Builder 的情况下)以使其工作。我不知道 Axis2 如何将这些 OMElement 转换为 Web 服务代码可以使用的 Bean。有没有一种(可能更简单或更合乎逻辑/更有效?)的方法让它像第一个一样工作?

谢谢。

4

1 回答 1

0

您需要一个包含 Employee 对象列表的Employees对象

不过,最好自己编写 WSDL 和 XSD,然后从中生成轴存根,这样您就可以完全控制 xml 格式,这也是一种最佳实践。

于 2012-06-27T12:51:38.500 回答