这个问题非常简单,所以我希望我很幸运能够清楚地避免为它创建代码示例。我们正在使用Axis2(准确地说是1.5.1),它是通过wsdl2java使用我们手工制作的WSDL / XSD文件创建Java客户端代码和服务器存根。该服务以文档样式模式生成,我们使用ADB bean序列化堆栈。
我们的新Web服务在我们要创建的所有方法中都有一些共同的属性。比如,每个请求都要标记一些accessToken,otherPartyID和其他类似属性。
我能够在模式中使用继承,因此Request / Response类型确实扩展了常见的complexType,并且在为webservice创建模式/ WSDL时我不必重复自己。但是,当我尝试编写实现代码时,我(我完全沮丧)看到所有代码生成的Request / Response对象都继承了java.lang.Object,并且没有具有公共属性的公共超类。
拥有这样一个类是非常好的,因此处理这些常用属性的代码保持通用,我不必使用反射和其他脏技巧来避免猴子编码。
我目前的怀疑是AXIS不支持跨方法请求/响应类型的继承,而它支持参数类型。请分享您对此事的经验。
如果您对AXIS的文档/来源有任何明确/准确的答案,那将非常棒。
提前致谢, 安东
答案 0 :(得分:1)
这不是你问题的直接答案,但你所做的是错误的 继承是面向对象的术语,您不应该部署捕获OO特定机制的Web服务。这违反了面向服务的方法。
因此,如果你的怀疑证明是正确的,这不是Axis的问题,而是你的设计问题 无论如何,我建议直接在Axis2支持中询问这个问题。