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