servicemix部署到websphere中,需注意的問題
1:derby.jar包可能沖突,需刪除項目中的該包2:MBean調用問題
Websphere的MBean注冊路徑包括cell,nodeName和processName,具體可以銅鼓jconsole連接來查看MBean注冊的全路徑。這三個值可以通過Websphere的com.ibm.websphere.management.AdminServiceFactory這個對象來獲取,spring中的配置如下:
<!--
<bean id="adminService" class="com.ibm.websphere.management.AdminServiceFactory" factory-method="getAdminService"/>
<bean id="adminService.cellName" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
<bean id="adminService.nodeName" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
<bean id="adminService.processName" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
<bean id="websphereNamingStrategy" class="com.des.engine.mbean.WebsphereNamingStrategy">
<property name="cellName" ref="adminService.cellName"/>
<property name="nodeName" ref="adminService.nodeName"/>
<property name="processName" ref="adminService.processName"/>
</bean>
WebsphereNamingStrategy為自己創建的對象就包括那三個屬性
3:安全問題
出現如下錯誤,Caused by: javax.management.JMRuntimeException: ADMN0022E: 由于憑證不足或憑證為空,無法對 org.apache.servicemix:Name=ServiceMgtImpl,cell=dvpbNode02Cell,Type=SystemService,ContainerName=ServiceMix,node=dvpbNode02,process=server1 MBean 的 retrieveServiceList 操作進行訪問。
該問題是因為設置了安全控制,把控制臺的【安全性->安全管理、應用程序和基礎結構】里面的所以安全配置都去掉,然后重新啟動服務器主機(注意是重啟主機,不然安全設置不起作用),再啟動websphere服務應該就可以了,還有就是servicemix的應用要跟websphere一起啟動,不要等websphere啟動后再到控制臺啟動