6

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

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

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

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

我的问题是:有没有办法在不添加虚拟方法的情况下解决这个问题?有没有办法控制appc在客户端 JAR 中包含的内容?

4

2 回答 2

0

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

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

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

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

检查这是否有效

于 2010-08-02T14:39:53.987 回答
0

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

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

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

于 2010-07-22T15:51:58.693 回答