我试图理解XML To Java
的概念。我不知道在我的流程定义中何时或为什么实际需要它
它与我的模式中处于可重复状态的元素有什么关系吗?
这是我在输入标签中遇到的错误。
BW-JAVA-100056 配置错误java类[javax.xml.namespace.QName]不包含默认构造函数或不带参数的构造函数。
对于XML到JAVA的转换操作,[Process.DemoBillSVC.objects.maintainTestCase] java类必须只包含具有默认构造函数的类
提前致谢:)
答案 0 :(得分:2)
XML To Java活动用于将XML文档转换为Java对象。要使Java类与此活动兼容,该类必须
然后,BusinessWorks将解析该类,以根据类中可用的getter和setter方法识别各个字段。然后,这些字段将显示在“活动属性”选项卡的“输入”选项卡中。处理XML的Schema是自动创建的,可以在项目Schemas文件夹中找到。
如果您希望将流程中的数据传递给接受Java对象的Java方法,该Java方法不能很好地映射到像String这样的基本类型,那么它非常有用。对于例如如果您有一个希望从BusinessWorks调用的Java方法,名为addPerson:
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,那么编写包装器对象和方法有时比重写整个应用程序业务逻辑更容易,更快。希望这会有所帮助。