当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
将程序从一个容器换到另一个容器,总会有各种意料之外的困难需要解决,近日本人需要将一个Web工程从Tomcat环境转移到WebSphere环境,经历了一番周折,特地将此经过记录下来,也许它能对将要进行如此经历的人其一点帮助作用,另外在此也向网络同仁和工作中的同事表示感谢。

原环境:
程序:SSH
容器:Tomcat6.0
数据库:MySql5

新环境:
程序:SSH
容器:WebSphere6.1
数据库:Oracle10g

移植过程中的第一个困难,是WebSphere不认识Web.xml中的Struts taglib.原文字(适用于Tomcat)如下:
<!-- Struts的TLDS -->
    
<taglib>
        
<taglib-uri>/WEB-INF/tld/app.tld</taglib-uri>
        
<taglib-location>/WEB-INF/tld/app.tld</taglib-location>
    
</taglib>

    
<!-- Struts Tag Library Descriptors -->
    
<taglib>
        
<taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri>
        
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
    
</taglib>

    
<taglib>
        
<taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
        
<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
    
</taglib>

    
<taglib>
        
<taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri>
        
<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
    
</taglib>

这个问题因为之前有所准备,在网络上找到了答案,将上述文字包在<jsp-config>节点中即可,修改后(对Tomcat和WebSphere均适用)的文字如下:
<!-- Struts的TLDS -->
    
<jsp-config>
        
<taglib>
            
<taglib-uri>/WEB-INF/tld/app.tld</taglib-uri>
            
<taglib-location>/WEB-INF/tld/app.tld</taglib-location>
        
</taglib>

        
<!-- Struts Tag Library Descriptors -->
        
<taglib>
            
<taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri>
            
<taglib-location>
                /WEB-INF/tld/struts-bean.tld
            
</taglib-location>
        
</taglib>

        
<taglib>
            
<taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
            
<taglib-location>
                /WEB-INF/tld/struts-html.tld
            
</taglib-location>
        
</taglib>

        
<taglib>
            
<taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri>
            
<taglib-location>
                /WEB-INF/tld/struts-logic.tld
            
</taglib-location>
        
</taglib>
    
</jsp-config>

如此处理后,首页显示出来了,随即翻页遇到了问题,在IE中是翻页出现404错误,在FF中好一点,它告诉我WebSphere无法解析struts配置文件struts-config.xml。
起初我以为是中文问题,删除struts-config.xml中所有中文注释问题依旧,接下来在网络中寻找,还真有和我遇到一样问题的难友,但没人提出解决方案,正在挠头之际,我们的PM忽然说是否JDK不一致,检查一下,本机用的是1.6,而WebSphere自带1.5的,将本机也调成1.5后,问题解决! 真是只有咒语能解开咒语。

再下来,在表单提交时遇到了乱码问题,这是因为之前听信网络意见,将Web.xml中的filter都去掉了,结果自然乱码。此时感觉网络传闻未必可信,于是将filter又重新加上,乱码没有了。看来不经亲自尝试而盲从网络传闻是要吃亏的。

再下来,程序要访问数据库了,于是在WebSphere6.1中设置了数据源,再在Spring配置文件中进行了设置,如下:
<bean id="dataSource"
        class
="org.springframework.jndi.JndiObjectFactoryBean">
        
<property name="jndiName"
            value
="java:comp/env/jdbc/*******DS">
        
</property>
</bean> 


这样写在Tomcat中好用,在WebSphere不好用,正在挠头之际,PM告我别的项目有同样的写法,于是一看,java:comp/env/这部分是不需要的,直接把数据源JNDI名写在Value中就可以了。
<bean id="dataSource"
        class
="org.springframework.jndi.JndiObjectFactoryBean">
        
<property name="jndiName"
            value
="jdbc/*******DS">
        
</property>
</bean> 

其它数据库移植的问题就交给了Hibernate。至此问题全部解决。

事后来看,WebSphere6.1对中文,SSH的支持还是很好的,只是有些特定的地方和传统的Tomcat中的项目不太一样,注意一下就好了,未必有想象中的困难。遇到困难时,向有同样经历的人请教比自己在网络上搜寻要快很多。
posted on 2011-03-16 22:43 何杨 阅读(399) 评论(2)  编辑  收藏

Feedback

# re: 只有咒语能解开咒语--谈一次Web工程的移植 2011-03-31 16:52 鲍国钰
Tomcat6向Weblogic10.3移植,
SQLServer2005向Oracle10g数据库转换折磨了我一个多月。最终还是自己写
了个轮子。二进制数据比较麻烦。  回复  更多评论
  

# re: 只有咒语能解开咒语--谈一次Web工程的移植 2011-04-05 21:53 何杨的股票博客
@鲍国钰

有时候捷径反而是最远的,看似笨办法却是最好的。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: