由於工作原因,原有項目開發時,都是在tomcat8下面運行的,這次開發的項目,告知需要在websphere 8.5.5.14版本下運行,自己以前也沒有弄過websphere的東西,於是從網上找了一些參考資料,資料中均只是介紹瞭如何進行部署,對於部署過程中遇到的問題,描述較少,本次主要記錄實際操作過程中處理的問題。
說明項目開發框架爲:SpringMvc 4.3.17 + mybatis3.2.2 +jdk1.7 開發。
首先安裝websphere的過程就不介紹了,網上比較多,直接安裝就行,通過maven將項目打包成war包,登錄websphere控制檯
如上圖所示,點擊應用程序類型下的WebSphere企業應用程序,即可出現右邊的界面,點擊安裝,上傳打包好的war包。
問題一:
上傳war包出現如下圖提示,經過google後,發現8.5.5版本的websphere不能使用javaee 3以上的,於是修改web.xml文件中的javaee版本爲2.5.
修改完後,在打包上傳就完成了安裝步驟。接下來點擊啓動,啓動過程中可以觀察websphere的日誌文件,通過日誌文件確認服務啓動情況。日誌文件存放目錄爲:
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/下,看SystemOut.log文件即可。
問題二:配置文件加載失敗
在tomcat下面能正常運行的項目,移植到websphere下後,發現配置項加載不到,導致啓動報錯。於是查看了加載配置文件的地方
<bean id="propertyConfigurer" class="******.EncryptablePropertyPlaceholderConfigurer">
<constructor-arg ref="configurationEncryptor" />
<property name="ignoreResourceNotFound" value="true"></property>
<property name="locations">
<list>
<value>classpath:config-*.properties</value>
</list>
</property>
</bean>
如上,可以看出,是通過通配符的形式進行加載配置文件的,但是websphere不支持該種情況,於是改掉了此處加載配置文件的xml,重新打包更新。
問題三:mybatis別名找不到的問題
啓動程序後,日誌文件中報別名找不到,這就奇怪了,Tomcat下明明都沒問題的代碼,結果確找不到別名,代碼如下
通過typeAliasesPackage,掃描了數據庫實體類的包,結果還是不行。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage"
value="***.domain.model" />
<property name="mapperLocations" value="classpath*:mappers/*Mapper.xml" />
<property name="databaseIdProvider" ref="databaseIdProvider" />
</bean>
接下來,只能自己顯示定義各個實體類的別名了,通過mybatis-config.xml文件中進行定義,如下所示
<typeAliases>
<typeAlias type="com.yibi.bank.domain.model.BankArbAgent" alias="bankArbAgent" />
</typeAliases>
修改完,打包更新,啓動後,程序正常啓動,無報錯,websphere默認的端口爲9080,訪問正常。