weblogic appc:在ejb客户端jar中包含泛型参数

时间:2010-07-15 14:42:07

标签: java ejb-3.0 weblogic ejb weblogic-10.x

我有一个EJB返回我自己的ValidationMessage个对象的列表:

@Remote
public interface Intf {
    List<ValidationMessage> validateFile();
}

我正在使用weblogic的 appc 实用程序生成EJB客户端JAR。问题是它不包含ValidationMessage类到客户端JAR中。也许它没有看到对这个类的依赖,因为它只查看已编译的代码,当通用信息已被删除时 如果我添加另一个直接返回此类的虚方法到接口,一切都很好。

@Remote
public interface Intf {
    List<ValidationMessage> validateFile();
    ValidationMessage dummy();
}

我的问题是:有没有办法解决这个问题,而无需添加虚拟方法?有没有办法控制客户端JAR中 appc 包含的内容?

2 个答案:

答案 0 :(得分:0)

这不是实际答案,我不了解WebLogic或appc实用程序。

这看起来像是一个泛型擦除问题。 validateFile()方法的实际返回类型是原始类型List;虽然类文件中有额外的信息来重建类型参数,但有些工具不会检查它们。

我预测如果你也在方法参数中引用缺少的类,这个问题就会消失。

答案 1 :(得分:0)

我确实遇到了appc的类似问题,我想覆盖它为JAX-WS客户端生成的一些POJOS。

我使用此选项(-output)生成输出到爆炸目录而不是客户端jar。将所需.class文件的ant副本复制到客户端目录并创建jar属于你自己。

如果你执行'java weblogic.appc'执行setEnv.cmd

,你可以看到这个选项

-output指定备用输出存档或                    目录。如果没有设置,输出将是                    放在源存档或目录中。

检查是否有效