2015-12-09 7 views
1

Я пытаюсь понять концепцию XML To Java. Я не понимаю, когда и почему это действительно необходимо в определении моего процесса.
Имеет ли это какое-либо отношение к элементу, находящемуся в повторяющемся состоянии в моей схеме или нет?TIBCO BW: XML To Java Palette

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

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

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

ответ

1

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

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

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

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

+0

Что делать, если у меня есть метод, который принимает список в качестве параметра? Как это будет отображаться в XML? –

+1

К сожалению, списки не поддерживаются как родной тип, поэтому вам придется написать метод-оболочку, который принимает массив и использует активность JavaToXML в группе с параметром накапливания, отмеченным в группе. – BusinessWorker

+0

Спасибо @BusinessWorker, вы можете мне помочь и проверить мой вопрос здесь: http://stackoverflow.com/questions/42236909/tibco-bw-6-3-using-jar-class-from-maven-in- xml-to-java-palette –