如何将Axis2设置为使用自定义模式的(复杂)数据类型?

时间:2012-06-27 05:01:38

标签: java wsdl axis2

我目前正在开发一些Web服务,这些服务将POJO / bean作为将通过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如何将这些OMElements转换为Web服务代码可以使用的Bean。有没有(可能更简单或更符合逻辑/效率?)的方式让它像第一个一样工作?

感谢。

1 个答案:

答案 0 :(得分:0)

您需要员工的对象,其中包含员工对象的列表。

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

相关问题