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>
Хотя понятия не имею, почему это решение работало и что вызвало проблему, с которой я первоначально столкнулся.
Спасибо! -Крис