【问题标题】:weblogic appc: include generic arguments in the ejb client jarweblogic appc:在 ejb 客户端 jar 中包含通用参数
【发布时间】:2010-07-15 14:42:06
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 这正是我在问题中写的:这是一个泛型擦除问题,如果您添加一个引用该类的虚拟方法,它确实会消失。
    【解决方案2】:

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

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

    如果你执行'java weblogic.appc'执行setEnv.cmd,你可以看到这个选项

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

    检查这是否有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 2019-08-10
      • 2016-09-07
      • 2023-04-04
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      相关资源
      最近更新 更多