TIBCO BW: палитра XML в Java

Я пытаюсь понять концепцию XML To Java, Я не понимаю, когда или почему это действительно необходимо в моем определении процесса.
Это как-то связано с тем, что элемент находится в повторяемом состоянии в моей схеме или нет?

Это ошибка, с которой я сталкиваюсь на вкладке ввода.

Ошибка конфигурации BW-JAVA-100056: класс java [javax.xml.namespace.QName] не содержит конструктор по умолчанию или конструктор без аргументов.
Для операции преобразования XML в JAVA java-класс [Process.DemoBillSVC.objects.maintainTestCase] ​​должен состоять только из классов с конструкторами по умолчанию

Заранее спасибо:)

1 ответ

Деятельность XML To Java используется для преобразования документов XML в объекты Java. Чтобы класс Java был совместим с этим действием, класс должен

  • иметь конструктор по умолчанию без аргументов
  • реализовать интерфейс java.io.Serializable

Затем BusinessWorks проанализирует класс, чтобы определить различные поля на основе методов получения и установки, доступных в классе. Эти поля появятся на вкладке "Вход" на вкладке свойств действий. Схема для обработки XML создается автоматически и находится в папке "Схемы проектов".

Это полезно, если вы хотите передать данные, которые есть в вашем процессе, в метод Java, который принимает Java-объект, который плохо сопоставляется с примитивным типом, таким как String. Например, если у вас есть метод Java, который вы хотите вызвать из BusinessWorks с именем 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 выше для инициализации объекта Person со значениями, которые вы могли бы получить из других действий в процессе (REST, JDBC, File и т. Д.). А затем отобразите выходные данные этого действия на вход действия Java Invoke.

Если у вас есть код, который вы не хотите переписывать в BW, это хороший способ сделать это. Если ваши классы не имеют конструкторов по умолчанию или не реализуют Serializable, иногда проще и быстрее писать объекты и методы-оболочки, чем переписывать всю бизнес-логику приложения. Надеюсь это поможет.

Другие вопросы по тегам