1

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

这是我在输入选项卡中一直面临的错误。

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

提前致谢 :)

4

1 回答 1

2

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,则编写包装对象和方法有时比重写整个应用程序业务逻辑更容易和更快。希望这可以帮助。

于 2016-11-30T10:08:33.293 回答