返回类型可以是服务方法的基类吗?

时间:2013-08-27 06:10:51

标签: java web-services service soa

我对WCF(和C#)有很好的体验。但我的项目要求我用Java编写我的服务(我没有Java经验)。我想写一个像这样的服务方法:

//Java code!
List<BaseEntity> filter(String dbName, String tableName, String where);

从签名中可以看出,该方法应该从tableName数据库dbName的表中返回过滤的实体(即行)列表并且where是过滤行的条件。这里假设所有表示DB中的表的类派生自BaseEntity基类,以便可以从filter方法返回任何表的列表。

我的问题是,

  • Java中的哪些框架允许我编写这种服务方法?
  • 特别是,返回类型可以是低音类,以便可以返回任何派生类对象吗?

我知道使用ServiceKnownTypeAttribute(或KnownTypeAttribute)在WCF中可以实现这一点:

//C# code
[ServiceKnownType(typeof(User))]     //User is derived from BaseEntity
[ServiceKnownType(typeof(Vendor))]   //Vendor is derived from BaseEntity
[ServiceKnownType(typeof(Customer))] //Customer is derived from BaseEntity
List<BaseEntity> Filter(string dbName, string tableName, string where);

现在,此方法可以返回类型的实体:UserVendorCustomer,但任何其他未列在方法上方的类。< / p>

我想知道在任何Java框架中是否也可以(可能使用不同的语法/方法)。如果有任何解决方案,我也想知道它是否与WSDL兼容(因为客户端可以用任何语言,C ++,Python或Java编写,所以我认为解决方案需要与WSDL兼容)。

0 个答案:

没有答案