我对WCF(和 C#)有很好的经验。但是我的项目要求我用 Java 编写我的服务(我没有 Java 经验)。我想写一个这样的服务方法:
//Java code!
List<BaseEntity> filter(String dbName, String tableName, String where);
从签名中可以看出,该方法应该从称为数据库的表中返回经过过滤tableName
的实体(即行)列表,并且是过滤行的条件。这里的假设是表示 DB 中表的所有类都派生自基类,因此可以从方法返回任何表的列表。dbName
where
BaseEntity
filter
我的问题是,
- 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
,但不能返回该方法上方未列出的任何其他类。Vendor
Customer
我想知道在任何 Java 框架中是否也有可能(可能使用不同的语法/方法)。如果有任何解决方案,我也想知道它是否与 WSDL 兼容(因为客户端可以用任何语言编写,C++、Python 或 Java,所以我假设解决方案需要与 WSDL 兼容)。