java - 轴2 : employ inheritance for codegenerated request/response objects

标签 java web-services wsdl apache-axis

这个问题非常简单,所以我希望我能足够清楚,以避免为其创建代码示例。我们正在使用 Axis2(准确地说是 1.5.1),它使用我们手工制作的 WSDL/XSD 文件通过 wsdl2java 创建 Java 客户端代码和服务器 stub 。该服务以文档样式模式生成,我们使用 ADB beans 序列化堆栈

我们的新 Web 服务在我们要创建的所有方法中都有一些共同的属性。比如说,每个请求都会被标记一些accessToken、otherPartyID 和其他类似的属性。

我能够在模式中使用继承,因此请求/响应类型确实扩展了常见的复杂类型,并且在为 Web 服务创建模式/WSDL 时我不必重复自己。但是,当我尝试编写实现代码时,我(令我非常沮丧)看到所有代码生成的请求/响应对象都继承了 java.lang.Object,并且没有具有公共(public)属性的公共(public)父类(super class)。

如果有这样一个类,那就太好了,这样处理这些常见属性的代码就可以保持通用,而且我不必使用反射和其他肮脏的技巧来避免猴子编码。

我目前的怀疑是,AXIS 不支持跨方法请求/响应类型的继承,但支持参数类型的继承。请分享您在这件事上的经验。

如果您有任何明确/精确的答案以及 AXIS 文档/来源的链接,那就太好了。

提前致谢, 安东

最佳答案

这不是对您问题的直接答案,但您所做的事情是错误的。
继承是一个面向对象的术语,您不应该部署捕获 OO 特定机制的 Web 服务。这违背了面向服务的方法的概念。

因此,如果您的怀疑被证明是正确的,这不是 Axis 的问题,而是您的设计的问题。
无论如何,我建议直接在 Axis2 支持中询问这个问题。

关于java - 轴2 : employ inheritance for codegenerated request/response objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9875386/

相关文章:

java - 签名和加密策略

java - 如何更改 SOAPBODY 中的子元素

c# - 在 C# 中使用 WSDL 发送和接收

java - 如果语句在操作监听器中使用时不起作用

Java JSpinner时间到MySQL数据库

c# - 如何获取内容类型

java - 解析 xmldsig-core/xmldsig-core-schema.xsd 时出错

web-services - WSDL 2.0、WADL 和 XRD 之间的区别?

java - java中遍历对象

java - Libgdx 在绘制另一个屏幕时加载一个屏幕