Groovy разметка java.lang.Exception: нет метода с именем проблема

Добрый день.

Я работаю над этим отличным сценарием

import groovy.xml.MarkupBuilder;
import groovy.xml.*;

def writer = new StringWriter();
def xmlResponse = new MarkupBuilder(writer);
def index = 0;

xmlResponse.CalculatePayoutFigureResponse() {
    Identifier([UniqueID:'CalculatedLoanRepayment-1'])
}
String response =  writer.toString();
return XmlUtil.serialize(response);

Каждый раз, когда это вызывается, я получаю ошибку ff:


    SEVERE: java.lang.Exception: No method named 'Identifier' found for arguments [[UniqueID:CalculatedLoanRepayment-1]]
java.lang.Exception: No method named 'Identifier' found for arguments [[UniqueID:CalculatedLoanRepayment-1]]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80)
        at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:74)
        at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247)

Кто-нибудь знаком с этим? Можете ли вы указать мне правильное направление.

Я искал решения, но безрезультатно. Я неправильно строю XML? Я использую Groovy 2.4.4.

Заранее спасибо!
Крис

1 ответ

Решение

После внесения некоторых изменений в код, я смог сделать эту работу. Я использовал объект MarkupBuilder перед каждым элементом, который я пытаюсь добавить. Код стал таким:

xmlResponse.CalculatePayoutFigureResponse() {
    xmlResponse.Identifier(UniqueID:'CalculatedLoanRepayment-1')
}

Я получил результат, который я ожидал.

<CalculatePayoutFigureResponse>
   <Identifier UniqueID='CalculatedLoanRepayment-1' />
</CalculatePayoutFigureResponse>

Хотя понятия не имею, почему это решение работало и что вызвало проблему, с которой я первоначально столкнулся.

Спасибо! -Крис

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