1、加载hibernate映射文件问题
在tomcat中可以通过以下形式来加载:
但在WAS中是加载不了的,启动WAS时在WAS的错误日志中会记录映射文件找不到,可以把以上内容修改如下。
<property name="mappingDirectoryLocations">
<list>
<value>classpath:/com/thunisoft/cms/model/</value>
<value>classpath:/com/thunisoft/core/model/customGroup/ </value>
<value>classpath:/com/thunisoft/core/model/duban/</value>
<value>classpath:/com/thunisoft/core/model/im/</value>
<value>classpath:/com/thunisoft/core/model/jbpm/</value>
<value>classpath:/com/thunisoft/core/model/log/</value>
<value>classpath:/com/thunisoft/core/model/notify/</value>
</list>
</property>
以上配置的是hibernate映射文件所在的目录。这里需要注意的是当父文件夹和子文件夹都有*.hbm.xml映射文件的情况,如果父文件夹已经配置了,子文件夹就不需要配置了,要不子文件夹里的配置文件会被加载两次,这样就会报错:
Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping com.thunisoft.dynamicform.model.ex.process.NodeLayoutVO
2、加载queryConfig文件夹下的*.xml
在tomcat中可以通过以下方式加载:
String queryFile = context.getInitParameter("queryConfig");
if ((queryFile == null) || (queryFile.trim().length() == 0)) {
queryFile = "/WEB-INF/queryConfig/*.xml";
}
但在WAS中就不能正常加载了。正因为不能正常加载,所有当进入系统时左边树和右边工作区间的列表全都是空的。为了解决此问题,本人改用File类来循环读取queryConfig的所有*.xml文件。如下:
String queryFile = context.getInitParameter("queryConfig");
String appPath = context.getRealPath("/");
String realPath = appPath + "/WEB-INF/queryConfig/";
String realPath2 = realPath.replace("//", "/");
File file = new File(realPath2);
File[] files = file.listFiles();
if(files != null || files.length>0){
for(int i=0; i<files.length; i++){
QueryFactory qf = QueryFactory.getInstance();
try {
qf.parseXML(files[i]);
} catch (Exception e) {
e.printStackTrace();
}
}
}else{
log.warn("系统找不到查询语句的配置文件***");
}
此时加载问题得到解决。
3、配置文件中的注释问题:
queryConfig文件夹下的*.xml文件如果文件中的注释出现乱码也会出现解释异常,把所有的注释去掉就好了!其实就算是文件中的中文没出现乱码现象,也还是把中文注释去掉更好。至于其中的英文注释是否会出现解释错误现象,这请读者自己去验证。
4、IBM websphere6.1 不支持泛型、for_each 、int-Integer类型的自动装箱和拆箱问题
Websphere6.1默认的JSP编译器为JDK1.3,所以必须手动更改为1.5,否则不能识别JDK1.5的语法。解决办法如下:
1、找到 D:/Program Files/IBM/WebSphere/AppServer/profiles/AppSrv01 /config/cells/201012221903Node01Cell
/applications/baseApp_war.ear/deployments/baseApp_war/baseApp.war/WEB-INF/ibm-web-ext.xmi
在最后面的 </webappext:WebAppExtension> 前添加下面一行:
<jspAttributes xmi:id="JSPAttribute_113" name="jdkSourceLevel" value="15"/>
2、找到D:/Program Files/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/20101222-1903Node01Cell/baseApp_war.ear
/baseApp.war/WEB-INF/ibm-web-ext.xmi
在最后面的 </webappext:WebAppExtension> 前添加下面一行:
<jspAttributes xmi:id="JSPAttribute_113" name="jdkSourceLevel" value="15"/>
5、卸载一个应用程序后重新安装,提示“配置库中已存在应用程序”。
解决办法:D:/Program Files/IBM/WebSphere/AppServer/profiles/AppSrv01/temp/20101222-1903Node01/server1
把该目录下对应的文件删掉即可,本应用删除baseApp_war文件夹里的所有内容。
6、websphere 端口修改
部署到websphere上的项目默认的端口号9080,要改为其他的端口号的话只要修改以下两个文件即可:
文件一:
WebSphere/AppServer/profiles/AppSrv01/config/cells/sunNode01Cell/nodes/sunNode01/serverindex.xml
<specialEndpoints xmi:id="NamedEndPoint_1213602610369" endPointName="WC_defaulthost">
<endPoint xmi:id="EndPoint_1213602610369" host="*" port="9080"/>
</specialEndpoints>
把9080改成8080
文件二:
WebSphere/AppServer/profiles/AppSrv01/config/cells/sunNode01Cell/virtualhosts.xml
<aliases xmi:id="HostAlias_1" hostname="*" port="9080"/>
<aliases xmi:id="HostAlias_2" hostname="*" port="80"/>
<aliases xmi:id="HostAlias_3" hostname="*" port="9443"/>
<aliases xmi:id="HostAlias_6" hostname="*" port="5060"/>
<aliases xmi:id="HostAlias_7" hostname="*" port="5061"/>
<aliases xmi:id="HostAlias_8" hostname="*" port="443"/>
把9080改成8080
端口修改应该可以在控制台修改的,好像就在“websphere的变量”中,请读者自己去试验
待续。。。。。。