ibm-midrange - 自省(introspection)异常 : Method not found: setLastModified

标签 ibm-midrange jtopen ibm-ifs

我们的服务器已更新到 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: Method not found: setLastModified. Stacktrace follows: java.lang.reflect.InvocationTargetException: null at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] Caused by: java.lang.Error: java.beans.IntrospectionException: Method not found: setLastModified at com.ibm.as400.access.IFSFileBeanInfo.(IFSFileBeanInfo.java:126) ~[jt400-8.7.jar:JTOpen 8.7] at java.lang.Class.newInstance(Class.java:442) ~[na:1.8.0_77] at com.sun.beans.finder.InstanceFinder.instantiate(InstanceFinder.java:96) ~[na:1.8.0_77] at com.sun.beans.finder.InstanceFinder.find(InstanceFinder.java:66) ~[na:1.8.0_77] at java.beans.Introspector.findExplicitBeanInfo(Introspector.java:448) ~[na:1.8.0_77] at java.beans.Introspector.(Introspector.java:398) ~[na:1.8.0_77] at java.beans.Introspector.getBeanInfo(Introspector.java:173) ~[na:1.8.0_77] at PageController.getBoardReport(PageController.groovy:113) ~[main/:na]

有什么办法可以解决这个问题吗?

最佳答案

看起来 Java bean 基础结构在 1.7 中发生了更改,要求 setter 方法的返回类型为 void(请参阅 Why did PropertyDescriptor behavior change from Java 1.6 to 1.7? )。 setLastModified 方法的返回类型为 boolean,以匹配 java.io.File 中的类似方法。 IFSFileBeanInfo.java 的修复已 checkin JTOpen CVS 存储库。您需要自己构建 JTOpen,向 IBM 服务部门索取包含修复程序的 jt400.jar,或者等待 JTOpen 的下一个版本。

关于ibm-midrange - 自省(introspection)异常 : Method not found: setLastModified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36556722/

相关文章:

sql - DB2-如何在IBM System i Access for Windows GUI工具中使用参数运行临时选择查询

Java ProgramCall.run 挂起

java - 如何使用 Java API(JTOPEN) 读取 QTEMP 文件中的 PF

ibm-midrange - 枚举 QSYS.LIB 内所有库中的对象

db2 - SQLRPGLE 中 OPEN 游标上的 SQL -302

sql - iSeries SQL : current date not allowed when selecting records to create a table

c# - 检查系统 DSN 并创建系统 DSN(如果不存在)(iSeries Access ODBC 驱动程序)

java - 是否可以使用 Java 从 AS400 返回对象列表?

java - 在代码中使用 JT400 复制 IFS 文件

java - 通过 jt400 将文本文件写入 IFS 时出现问题