我们在JBoss EAP 6.4中部署了几个开关站jar。一切正常,但是我们想创建一个事件侦听器,以在应用程序部署后执行一些代码,在取消部署后执行一些其他代码,但是诚挚的,我不知道从哪里开始。 这是我们的基本switchyard.xml
<?xml version="1.0" encoding="UTF-8"?> <sy:switchyard xmlns:bean="urn:switchyard-component-bean:config:2.0" xmlns:resteasy="urn:switchyard-component-resteasy:config:2.0" xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:sy="urn:switchyard-config:switchyard:2.0" name="esb-empty" targetNamespace="urn:it.empty.esb:esb-empty:1.0"> <sca:composite name="esb-empty" targetNamespace="urn:it.empty.esb:esb-empty:1.0"> <sca:component name="Component"> <bean:implementation.bean class="it.empty.esb.service.EmptyServiceBean"/> <sca:service name="EmptyService"> <sca:interface.java interface="it.empty.esb.service.EmptyService"/> </sca:service> </sca:component> <sca:service name="EmptyService" promote="Component/EmptyService"> <sca:interface.java interface="it.empty.esb.service.EmptyService"/> <resteasy:binding.rest name="REST"> <resteasy:contextMapper class="it.empty.esb.util.RestContextMapper"/> <resteasy:interfaces>it.empty.esb.service.EmptyResource</resteasy:interfaces> <resteasy:contextPath>esb-empty</resteasy:contextPath> </resteasy:binding.rest> </sca:service> </sca:composite> <sy:domain> <sy:properties> <sy:property name="org.switchyard.handlers.messageTrace.enabled" value="false"/> </sy:properties> </sy:domain> </sy:switchyard>
我想做的是自动实例化org.springframework.context.annotation.AnnotationConfigApplicationContext 而不是在第一个rest调用期间手动设置。 服务器上的每个esb管理一个不同的AnnotationConfigApplicationContext,因此我认为事件监听器必须位于每个esb内。
有可能吗?你能给我一些提示吗? 还有其他信息吗?
答案 0 :(得分:0)
我认为您有几种选择,我不确定您要在部署后和取消部署后要做什么,这是我认为最好的两种方法:
将您的SwitchYard应用程序部署为WAR或EAR,并使用相关性来订购SwitchYard应用程序和部署后的应用程序。我想您甚至不必将SwitchYard应用程序部署为WAR或EAR-如果您进行WAR或EAR就足够了,该模块取决于要加载的Switchyard应用程序来获取部署挂钩。
最简单的方法:使用您用于部署/取消部署的任何脚本,或用于启动/停止EAP的任何脚本进行操作