0

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

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

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

我的问题是,

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

我知道这在 WCF 中使用ServiceKnownTypeAttribute(或KnownTypeAttribute)是可能的:

//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);

现在此方法可以返回类型为 :的实体User,但不能返回该方法上方未列出的任何其他类。VendorCustomer

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

4

0 回答 0