WebLogic Appc:在EJB客户端jar中包含通用参数

6

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

@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

这不是实际答案,我对WebLogic或appc实用程序一无所知。

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

我预测如果您还在方法参数中引用缺失的类,这个问题将会消失。


这是一个泛型擦除问题,如果您添加一个引用该类的虚拟方法,则可以解决此问题。 - unbeli

0

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

我使用了这个选项(-output)将输出生成到一个解压缩目录而不是客户端jar。将所需的.class文件复制到客户端目录并创建自己的jar文件。

如果执行setEnv.cmd,您可以看到此选项'java weblogic.appc'

-output 指定替代输出存档或目录。 如果未设置,则输出将放置在源存档或目录中。

检查是否有效


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接