IntrospectionException: метод не найден: setLastModified

Наш сервер был обновлен до Java 8 и приведенный ниже код больше не работает. Я использую последнюю версию jtopen и не могу заставить его работать в Java 7 или 8.

Код использует jtopen (набор инструментов java) для доступа к интегрированной файловой системе в IBM i.

AS400 as400 = new AS400("myip","myuser","mypassword")
IFSFile file = new IFSFile(as400, params.path);     
if (file.exists()){
    Ifs ifs = new Ifs()
       ifs.CopyFile(as400,params.path,response)
       as400.disconnectAllServices();
}
else {
    redirect(action: "fileNotFound")
}   

Я получаю следующую ошибку:

java.beans.IntrospectionException: метод не найден: setLastModified. Ниже приведено описание стека: java.lang.reflect.InvocationTargetException: пусто в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_77] в java.util.concurrent.Thread $ ThreadPoolExecutor.java:617) ~[na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] Причина : java.lang.Error: java.beans.IntrospectionException: Метод не найден: setLastModified в com.ibm.as400.access.IFSFileBeanInfo.(IFSFileBeanInfo.java:126) ~[jt400-8.7.jar:JTOpen 8.7] в java.lang.Class.newInstance(Class.java:442) ~[na:1.8.0_77] на com.sun.beans.finder.InstanceFinder.instantiate(InstanceFinder.java:96) ~[na:1.8.0_77] на com.sun.beans.finder.InstanceFinder.find(InstanceFinder.java:66) ~[na:1.8.0_77] в java.beans.Introspector.findExplicitBeanInfo(Introspector.java:448) ~[na:1.8.0_77] в java.beans.Introspector.(Introspector.java:398) ~[na:1.8.0_77] в java.beans.Introspector.getBeanInfo(Introspector.java:173) ~[na:1.8.0_77] в PageController.getBoardReport(PageController.groovy:113) ~[main/:na]

Любые иды, как решить эту проблему?

1 ответ

Похоже, что инфраструктура Java-бинов изменилась в 1.7, чтобы требовать, чтобы методы сеттера имели возвращаемый тип void (см. Почему поведение PropertyDescriptor изменилось с Java 1.6 на 1.7?). Метод setLastModified имеет возвращаемый тип boolean для соответствия аналогичному методу в java.io.File. Исправление для IFSFileBeanInfo.java было проверено в репозитории CVS JTOpen. Вам нужно будет либо собрать JTOpen самостоятельно, попросить службу IBM предоставить jt400.jar, содержащий исправление, либо дождаться следующего выпуска JTOpen.

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