【问题标题】:TIBCO BW : XML To Java PaletteTIBCO BW:XML 到 Java 调色板
【发布时间】:2016-03-14 13:16:31
【问题描述】:

我正在尝试理解XML To Java 的概念。我不明白在我的流程定义中何时或为什么需要它。
它与在我的模式中处于可重复状态的元素有什么关系吗?

这是我在输入标签中一直面临的错误。

BW-JAVA-100056 配置错误 java 类 [javax.xml.namespace.QName] 不包含默认构造函数或没有参数的构造函数。
对于 XML 到 JAVA 的转换操作,[Process.DemoBillSVC.objects.maintainTestCase] java 类必须只包含具有默认构造函数的类

提前致谢:)

【问题讨论】:

    标签: xml-parsing tibco businessworks


    【解决方案1】:

    XML To Java 活动用于将 XML 文档转换为 Java 对象。为了使 Java 类与此活动兼容,该类必须

    • 有一个没有参数的默认构造函数
    • 实现 java.io.Serializable 接口

    然后BusinessWorks 将解析类以根据类中可用的getter 和setter 方法识别各种字段。这些字段随后将出现在活动属性选项卡的输入选项卡中。处理 XML 的 Schema 是自动创建的,可以在项目的 Schemas 文件夹中找到。

    如果您想将进程中的数据传递给接受 Java 对象的 Java 方法,该方法不能很好地映射到像字符串这样的原始类型,这很有用。例如如果您希望从 BusinessWorks 调用名为 addPerson 的 Java 方法:

    public void addPerson(Person person){....}
    

    那么你也会有一个 Person 类,看起来像

    package org.initrode
    public class Person implements java.io.Serializable{
      //Needs to implement Serializable
      String name;
      String address;
      public Person(){
        //Public default constructor without arguments
      }
      public void setName(String name){
        this.name = name;
      }
      public String getName(){
        return this.name;
      }
      public void setAddress(String address){
        this.address= address;
      }
      public void getAddress(){
        return this.address;
      }
    }
    

    现在您可以将 Java To XML 活动与上面的 Person 类一起使用,以使用您可能从流程中的其他活动(REST、JDBC、文件等)中检索到的值来初始化 Person 对象。然后将此活动的输出映射到 Java Invoke 活动的输入。

    如果您不想在 BW 中重写现有代码,这是一个很好的方法。如果您的类没有默认构造函数或实现 Serializable,则编写包装对象和方法有时比重写整个应用程序业务逻辑更容易和更快。希望这会有所帮助。

    【讨论】:

    • 如果我有一个接受 List 作为参数的方法怎么办?那将如何映射到 XML?
    • 不幸的是,不支持将列表作为本机类型,因此您必须编写一个接受数组的包装器方法,并在组中使用 JavaToXML 活动,并在组中选中累积选项。
    • 谢谢@BusinessWorker,你能帮我个忙,看看我的问题:stackoverflow.com/questions/42236909/…
    • @KyleJV - 我猜这将是一个文档错误。支持列表作为类中的字段,因此在使用 JavaToXml 时,它们显示为该类型的重复元素(List 成员将显示为成员*)。不支持列表作为函数的参数,但是我认为文档应该清楚地说明这一点,但没有。
    猜你喜欢
    • 1970-01-01
    • 2018-07-15
    • 2011-01-21
    • 1970-01-01
    • 2012-01-22
    • 2021-05-09
    • 1970-01-01
    • 2011-11-24
    • 2013-02-19
    相关资源
    最近更新 更多