Java Quartz RMI远程类加载是如何工作的?

Java Quartz RMI远程类加载是如何工作的?,java,jar,quartz-scheduler,rmi,codebase,Java,Jar,Quartz Scheduler,Rmi,Codebase,我正在与quartz-2.2.1合作,在代码库中使用http URL,并已与代码库和安全管理器一起使用 关于RMI类加载,我有两个问题: 1) 可以通过http RMI请求JAR吗?我在传递给客户机的代码库URL中指定一个包含完整应用程序的jar。即使jar是由http服务器请求和“服务”的,服务器仍然会继续接收对jar中包含的库中包含的类的请求 你知道这是怎么回事吗?我希望服务器将jar添加到其类路径中,但事实似乎并非如此 我没有注意到RMIClassLoader中有任何方法处理类以外的任何东

我正在与quartz-2.2.1合作,在代码库中使用http URL,并已与代码库和安全管理器一起使用

关于RMI类加载,我有两个问题:

1) 可以通过http RMI请求JAR吗?我在传递给客户机的代码库URL中指定一个包含完整应用程序的jar。即使jar是由http服务器请求和“服务”的,服务器仍然会继续接收对jar中包含的库中包含的类的请求

你知道这是怎么回事吗?我希望服务器将jar添加到其类路径中,但事实似乎并非如此

我没有注意到RMIClassLoader中有任何方法处理类以外的任何东西

2) RMI可以请求类以外的对象吗?我终于想出了如何从JAR服务类(以解决上述问题),但远程作业无法加载“.txt”资源。它包含在应用程序jar中,但http服务器从未看到该请求

我还想知道这些问题是RMI的共同问题还是石英的特有问题

由于这是我第一次涉足RMI,任何和所有评论都将不胜感激

可以通过http RMI请求JAR吗

我在传递给客户机的代码库URL中指定一个包含完整应用程序的jar

这很正常

即使jar是由http服务器请求和“服务”的,服务器仍然会继续接收对jar中包含的库中包含的类的请求

啊哈jar'中包含的库可能无法工作。您应该通过进一步的代码库URL单独提供它们。
java.rmi.server.codebase
属性是URL列表,而不仅仅是一个

你知道这是怎么回事吗?我希望服务器将jar添加到其类路径中,但事实似乎并非如此

它最终将一个
URLClassLoader
添加到它的类加载器集中

我没有注意到RMIClassLoader中有任何方法处理类以外的任何东西

需要注意的是,
RMIClassLoader
并不是真正的
ClassLoader
。这是一个奇怪的野兽,但它的类加载最终被委托给
URLClassLoader。

2) RMI可以请求类以外的对象吗

代码库功能适用于任何可以通过类加载器检索的内容,包括通过
getResource()
和friends获取的资源

我终于想出了如何从JAR服务类(以解决上述问题),但远程作业无法加载“.txt”资源。它包含在应用程序jar中,但http服务器从未看到该请求

不会有这样的要求。它应该直接从已经下载的.jar文件加载。检查您是否正确引用了资源