Eclipse生成的WSDL中缺少子类

时间:2012-11-09 13:02:14

标签: java eclipse web-services soap wsdl

我正在尝试设置网络服务。

我的方法是:

  • 创建动态Web项目
  • 创建课程“MyService”:

    @WebService
    @XmlSeeAlso({B.class})
    public class MyService {
        public A method() {
            return new B();
        }
    }
    
  • 创建课程“A”:

    @XmlSeeAlso(B.class)
    public class A {
        public int propertyOfA=0;
    }
    
  • 创建课程“B”:

    public class B extends A {
        public int propertyOfB=1;
    }
    
  • 从MyService.java创建Web服务

没有错误,所有文件都被创建。但是,类B不会出现在WSDL中的任何位置。因此,所有Web服务响应都不会包含propertyOfB的任何值,因为它不在服务描述中。

如何将B纳入WSDL?

编辑:我不确定它是否有任何区别,但我正在为Tomcat v7.0创建Web服务,Apache Axis

1 个答案:

答案 0 :(得分:1)

我认为您的要求是告知Web服务的用户,也可以通过method()操作返回B类型对象。所以你需要做的就是在service.xml中添加这样的条目,

 <parameter name="extraClass">B</parameter>

因此它会向WSDL添加条目,提到Web服务操作也将返回这些类型的对象。因此,当代码生成时,也会生成这些代码。您可以通过检查响应的xsi:type来查找返回的类。请阅读此博客以进一步了解http://ssagara.blogspot.com/2011/07/how-to-get-best-use-of-axis2-object.html