我有一个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;虽然在类文件中有额外的信息可以重建类型参数,但是某些工具不会检查它们。

我预计,如果您还在方法参数中引用缺少的类,则此问题将消失。

10-06 05:02