在运行时更改应用程序的类?

时间:2012-09-25 07:48:36

标签: java jboss classloader application-server

我想在应用程序服务器上处于活动状态时更改类。我正在使用JBoss 5和JBoss 7.

  • 我们可以在运行时更改类吗?
  • 否则,我会取消部署并重新部署吗?
  • 我需要在JBoss中配置什么?
  • 哪个Application Server支持该功能?
  • 要获得此功能,需要编写自定义ClassLoader

1 个答案:

答案 0 :(得分:0)

  • 我们可以在运行时更改类吗? 实际上,您可以卸载旧类并加载新类。

  • 否则,我会取消部署并重新部署吗? 你可以在不需要重新部署的情况下进行动态操作。但是,您可能知道JBoss和大多数应用程序服务器现在都支持热部署,可能是您想要的: A_Quick_Tour-热deployment_of_services_in_JBoss.html“> HTTPS://access.redhat.com/knowledge/docs/en-US/JBoss_Enterprise_Web_Platform/5/html/Getting_Started_Guide/The_JBoss_Server_A_Quick_Tour-Hot-deployment_of_services_in_JBoss.html 但请注意,部署与“更改类”有很大不同。它远不止于此,如果是这样的话,请阅读文档或撰写新问题。

  • 我需要在JBoss中配置什么? 没什么,你应该在你的代码中做到这一点。此外,您需要创建一些代码以从最新版本的任何位置加载最新的jar文件。 如果热部署足够您,您可以检查上面链接中的配置。

  • 哪个Application Server支持该功能? 自定义类加载可以在任何应用程序服务器中完成,它是Java标准版的一个功能,您只能依赖于您的编码能力。一些应用程序服务器(如JBoss)已经有一些内置功能可以帮助您完成此任务。

  • 要获得此功能,需要编写自定义ClassLoader吗? 除非应用程序服务器在更改时以非常方式加载模块,否则就足以满足您的需求,是的,您需要实现自定义类加载器。通过使用类加载器,您可以从任何软件中选择以您选择的方式加载类的更新版本。例如,您可以从网站的数据库中加载您的类的较新版本。