【问题标题】:Generating instantiation code from in-memory model从内存模型生成实例化代码
【发布时间】:2013-05-16 17:10:58
【问题描述】:

有谁知道在 Java 中逆向工程内存中对象图的快速方法?我需要的是一种遍历内存对象图并创建 Java 实例化/setter 调用以重新创建原始图的方法。

作为与象牙塔建筑师开发的半生不熟的 Web 服务的集成项目所需要的工具。所以我最终得到了一个庞大的 XSD 文档和一堆示例 XML 实例来确认它......现在需要以某种方式将它与我们的域代码桥接......

这是它的外观的序列图。我只需要添加另一个检查用户是否存在于远程服务中。问题是这个调用甚至会产生超过 500 行代码来生成请求。我正在尝试找到一种方法来自动执行此实例化。

提前致谢。

【问题讨论】:

  • 您能否详细说明您正在尝试做什么?
  • 感谢您的观看,Nakosspy!我正在现有的 Web 应用程序和尚未开发的 Web 服务之间构建一个集成层。 WS 有很大的域模型(仅 XSD 就超过 8 MB),当逆向工程给 JAXB 提供了一个非常复杂且难以使用的 Java 模型时(即仅构建请求将需要 500 多行代码,并且有几十个请求)。我正在寻找一种方法来缓解这种情况......
  • 您正试图从 XSD 中丢弃由 JAXB 生成的类并做其他事情?或者只是寻找一种方法来自动创建属于 JAXB 类的对象?
  • 对。创建自动化将是一个很好的解决方案。其他替代方案也可以使用,例如基于模板的方法(XSLT 或 Velocity),其中 XML 消息是使用模板生成的。
  • 如果最终证明在您的情况下可行,您使用模板引擎创建输入文档的想法听起来是个好主意。对象图的逆向工程在哪里适合?

标签: java reverse-engineering domain-model in-memory


【解决方案1】:

在搜索了一堆不同的实用程序(commons、pojobuilder、快速烘焙递归翻译)之后,我最终回溯到起源并创建了 Velocity 模板来生成消息并依赖 JXPath 来快速检索来自生成的模型...

正如 Nakosspy 所指出的(非常感谢您查看这篇文章!),它与逆向工程对象图无关,尽管它似乎可以帮助我完成这个实现。

【讨论】:

    猜你喜欢
    • 2013-10-18
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多