我在 Tomcat 服务器中部署了两个不同的应用程序。一个应用程序的目的是调用另一个使用规则引擎处理数据的应用程序。基本上,它通过反射调用另一个应用程序的静态方法。
这在 Jboss 中运行良好。但现在由于某种原因,我需要在 Tomcat 上部署相同的应用程序。在这里它失败了。似乎一个应用程序类无法找到另一个应用程序类。Tomcat不支持反射吗?或者不同应用程序之间无法进行反射?
谢谢,尼朋
我在 Tomcat 服务器中部署了两个不同的应用程序。一个应用程序的目的是调用另一个使用规则引擎处理数据的应用程序。基本上,它通过反射调用另一个应用程序的静态方法。
这在 Jboss 中运行良好。但现在由于某种原因,我需要在 Tomcat 上部署相同的应用程序。在这里它失败了。似乎一个应用程序类无法找到另一个应用程序类。Tomcat不支持反射吗?或者不同应用程序之间无法进行反射?
谢谢,尼朋
我认为您依赖于每个应用服务器的类加载结构。类加载器结构/层次结构是可配置的,但通常这 2 个应用程序将占用不同的类加载器,并且跨类加载器使用反射很可能会出现问题。
为什么要使用反射在这些应用程序之间进行通信?这听起来不切实际,甚至不合适。您有 2 个 Web 应用程序,那么为什么不使用它们的 HTTP API 进行通信呢?如果您可以/不想这样做,我会研究其他解决方案,例如 RMI。
我怀疑这个问题的原因是反射,而是类加载器层次结构。
一个 webapp 不应该调用另一个的方法,这是一个主要的设计缺陷。