我想解决在用 Java 编写的 Informix 存储过程中加载资源的非常具体的问题。我有 IFX v12 和 IBM Java 1.7,当我想从类路径(即某个属性文件)加载任何资源时,我得到 IOException 并显示消息“找不到资源”。
起初我认为这会是 Java 策略的问题,但是当我允许所有权限时,什么都没有改变。
接下来,当我能够远程调试存储过程时,我观察到,该存储过程使用informix 特定的类加载器informix.jvp.dbapplet.impl.JVPClassLoader。在调试中我发现,这个类加载器没有在其类路径上的数据库中加载 JAR,因此来自这个 JAR 的资源不可用。我无法很好地调试它,因为我没有这个类加载器的可用源代码。
我有两个解决方案,但都很难看。我可以将 JAR 放在为 Informix 启动的 Java 进程的类路径中,但每次我想对 JAR 进行任何更改时,我都必须重新启动这个进程。第二种解决方案是从文件系统加载此资源,但这会使部署过程复杂化,并使其无法抗故障(当然还有特定于环境的)。
感谢任何建议,如何使我的 JAR 资源在类路径上可用!