我有一个EJB返回自己的ValidationMessage
对象的列表:
@Remote
public interface Intf {
List<ValidationMessage> validateFile();
}
我正在使用weblogic的 appc 实用程序生成EJB客户端JAR。问题在于它不将
ValidationMessage
类包含在客户端JAR中。也许它没有看到对此类的依赖,因为当通用信息已被擦除时,它仅查看编译后的代码。如果我向接口(interface)添加另一个直接返回此类的伪方法,则一切都很好。
@Remote
public interface Intf {
List<ValidationMessage> validateFile();
ValidationMessage dummy();
}
我的问题是:有没有一种方法可以解决此问题而无需添加虚拟方法?有没有办法控制客户端JAR中的 appc 包含哪些内容?
最佳答案
这不是实际的答案,我不了解WebLogic或appc实用程序。
看起来像是泛型擦除问题。 validateFile()
方法的实际返回类型是原始类型List
;虽然在类文件中有额外的信息可以重建类型参数,但是某些工具不会检查它们。
我预计,如果您还在方法参数中引用缺少的类,则此问题将消失。