CRM1.0工单割接到2.0全过程经验总结,此文章献给所有为2.0努力奋斗的人。
??????? 经历过一个半月的征战,项目完工。只有身在其中才知道有什么感觉,验证了一句话,没有解决不了的问题。开始总结之前,首先要感谢帮助过我的人,一起决战到天亮的人。(土豆烧牛肉、王磊、鲸等)
?
??????? 1、读原CRM1.0原程序,了解程序结构和过程。 ? 简单说明了程序结构。
?
?
???????
说明: 每个子系统都有完整的一套Web前段程序,它调用后端同名的EJB项目,前段访问不一定只调用一个EJB。可以调用不同命的EJB项目。
使用到的技术:Spring 2 、hibernate2、struts1等,其他都是无关紧要的。
?
??????? 2、割接项目程序结构设计
??????? 割接项目程序结构设计,由于业务逻辑异常复杂,打算用以前现有的代码。当初考虑到有可能更改原有的程序,hibernate维护起来异常费劲,打算用Mybatis提到一些Dao操作。
?????? 所用到的技术:Spring3、Hibernate3、struts1、Mybatis。
?????? 程序结构如下图所示:
?
?说明:比原有结构多了一个持久化库Mybatis,用于以后扩展开发。在EJB项目中,getBean模拟成为静态Service直接调用。
???????? 配置过程很简单,用3大框架配置起来就行了。没有遇到问题。
?
??????? 3、程序摘取 (连接到CRM1.0库)
??????? 1、hibernate与之对应的javabean:由于hibernate配置的一对一关联,一对多关联非常多,要进行摘取不动业务逻辑,不知如何再去。决定一步到位,所有的hibernate配置文件和javabean全部移动到新项目当中,并进行hibernate与spring结合配置。
??????? 2、Action,DAO,Service(原来CRM1.0的getServiceBean)填充代码。具体思路就是用到的就copy进来,此过程需要心细,把所有的代码全部移植过来,排除预编译错误。
??????? 过程经验:不仅仅是copy代码、其中的web.xml的配置文件需要的servlet和filter都要copy过来,以便以后出现莫名其妙的问题。
???????
??????? 4、程序调试 (连接到CRM1.0库)
?1、hibernate2升级到hibernate3.
? <include-coda/>不能使用这种形式< ..../> 只能使用 <></>布置为什么。
3、filter 双参数<init-param>
??? ??? ??? <param-name>singleSession</param-name>
??? ??? ??? <param-value>false</param-value>
??? ??? </init-param>
??? ??? <init-param>
??? ??? ??? <param-name>sessionFactoryBeanName</param-name>
??? ??? ??? <param-value>hibSessionFactory</param-value>
??? ??? </init-param>
4、<jsp-config>包围<taglib>
5、必须注意顺序。
6、Spring连接池就这样配置,其他配置方法都错。
<bean id="dataSource" value="jdbc/oracle/his">
??? ??? </property>
??? </bean>
??????? 7、weblogic配置启动(这里不用多说)???????? 8、Weblogic连接池问题
1、死链接:在crm1.0当中,有的程序有getSession().rollback 情况,这样会照成jndi连接池的死链接,必须注意。
2、无限获取连接问题:在openSessionInViewFilter当中,他是一个多利的类,可以设置为单利模式,也可以设置多利模式, 区别在于:tomcat下 不管是单利还是多利,可以行,连接数稳定。但是在weblogic下,多利会照成连接数暴增,使系统崩溃,所以必须设置单例。
?
以上是总结,其中有很多错别字,望见谅。时间比较紧。最后感谢所有帮助我的人。其中还有许多问题,很多很多,记不住了,等发现时候再来补充。
?
?
?