У меня есть веб-приложение, работающее на WebLogic. Приложение поддерживает JasperReports и отлично работает в течение нескольких лет.
В последнее время некоторые пользователи начали включать более «сложные» файлы JRXML. Закулисные Java-файлы отчета теперь содержат условную операцию"?:".
Выражение:
<variable name="Start_Date" class="java.util.Date">
<variableExpression><![CDATA[]]></variableExpression>
<initialValueExpression><![CDATA[
$P{Period}.intValue()==1 ?
DateUtils.truncate(DateUtils.addMonths(new Date(),-1), java.util.Calendar.MONTH)
:
$P{Period}.intValue()==2 ?
DateUtils.truncate((DateUtils.addWeeks(new Date(),-1)),java.util.Calendar.DATE)
:
$P{Period}.intValue()==3 ?
DateUtils.truncate((DateUtils.addDays(new Date(),-1)),java.util.Calendar.DATE)
: new Date()]]></initialValueExpression>
</variable>
И я получаю ошибку компиляции:
Error evaluating expression :
Source text :
$P{Period}.equals(new Integer(1))
?
DateUtils.truncate(DateUtils.addMonths(new Date(),-1),java.util.Calendar.MONTH)
:
$P{Period}.equals(new Integer(2))
?
DateUtils.truncate((DateUtils.addWeeks(new Date(),-1)),java.util.Calendar.DATE)
:
new Date()
;
В настоящее время я предполагаю, что, поскольку "?:" Из JDK 1.5, возможно, JasperReports устанавливает компилятор для работы в версии 1.4.
- JDT-компилятор установлен по пути Weblogic. Это версия 1.6.
- WebLogic 10,3
- JasperReports 3.5
- iReport 4.1.3 - но установлен на JR 3.5
Пожалуйста, дайте мне знать, что мне не хватает.
Нужно ли мне свойство конфигурации?