公司的crm运行的虽然比较稳定,但是版本也比较老了。
很多新的功能都用不上去。所以公司也希望能把所有的版本升一下级。
我接下这个任务,打一下前站,看看有多少东西有改的,是否改的功能很多,虽然现在还没有查完,不管怎么样,把过程记录下来,免得忘记吧。
公司crm现有环境:
操作系统:win2000server
数据库:sql2000
jdk版本:1.4.2
java服务器:resin2.16
希望升级后的版本:
操作系统:win2008server
数据库:sql2008
jdk版本:1.6_u12
java服务器:resin3.21
看到这个东东,有点头疼啊。
操作系统:
基本没什么感觉,新安装一个系统就可以了,好在用java开发基于jdk运行。所以感觉不大。
sql:
sql2000升级到sql2008,这里可苦大了。
因为sql2000里写了很多存储过程,有一比较重要的部分还涉及到了业务流程。在以以前的测试里,就发现转移到sql2005下执行时,就出错。现在在sql2008下执行,肯定也会出错的。暂时放开这个问题吧。
jdk升级:
最大问题,jdk1.4下编译的class文件,不能完美的在jdk1.6(1.5)下运行,因为生成的class文件有所差异,需要完全在jdk1.6下重新编译。重新编译完后,基本不报错了。
resin:
没很大感觉,先安装一个resin3.21再说。
因为和resin2.16的配置有一些不一要,对resin的配置也不是很了解,所以花了一点时间
由于现在只是测试是否可以跑通,所以没做优化配置。只是简单做了一下本地主目录配置。
如下:
<host-default>
<!--
- With another web server, like Apache, this can be commented out
- because the web server will log this information.
-->
<access-log path="log/access.log"
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
rollover-period="1W"/>
<!-- creates the webapps directory for .war expansion -->
<web-app-deploy path="webapps"/>
</host-default>
改为了
<host-default>
<!--
- With another web server, like Apache, this can be commented out
- because the web server will log this information.
-->
<access-log path="log/access.log"
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
rollover-period="1W"/>
<!-- creates the webapps directory for .war expansion -->
<web-app-deploy path="webapps"/>
<web-app id="/" root-directory="F:\crmsys\webapps"><!--默认本地目录-->
<jsp fast-jstl="false"/>
</web-app>
</host-default>
同时改了
<host id="" root-directory=".">
<!--
- configures an explicit root web-app matching the
- webapp's ROOT -->
<web-app id="/" root-directory="webapps/ROOT"/>
<web-app id="/resin-admin" root-directory="${resin.root}/doc/admin">
<!--
- Administration application /resin-admin
-->
<prologue>
<resin:set var="resin_admin_external" value="false"/>
<resin:set var="resin_admin_insecure" value="true"/>
</prologue>
</web-app>
<!--
<web-app id="/resin-config" root-directory="${resin.root}/doc/config"/>
-->
<web-app id="/resin-doc" root-directory="${resin.root}/doc/resin-doc"/>
</host>
为:
<host id="" root-directory=".">
<!--
- configures an explicit root web-app matching the
- webapp's ROOT
<web-app id="/" root-directory="webapps/ROOT"/> -->
<web-app id="/resin-admin" root-directory="${resin.root}/doc/admin">
<!--
- Administration application /resin-admin
-->
<prologue>
<resin:set var="resin_admin_external" value="false"/>
<resin:set var="resin_admin_insecure" value="true"/>
</prologue>
</web-app>
<!--
<web-app id="/resin-config" root-directory="${resin.root}/doc/config"/>
-->
<web-app id="/resin-doc" root-directory="${resin.root}/doc/resin-doc"/>
</host>
crm就可以运行起来了。
接下来,就是乱七八糟的问题了。虽然都是小问题,可是要查到原因,改起来,还是很麻烦的。
1.resin3.2启动时,报xml解析错误,根据日志,应该是struts的配置文件
/crm/webapps/WEB-INF/fin/validation.xml
出错。找到验证设置的xml里<formset>标签,发现没有任何配置,删除后再重启resin3.2正常了。
2.resin解析<%@ page contentType="text/html;charset=UTF-8" %>出现的问题
。把页面全面用UltraEdit另存为无BOM格式的utf-8。具体参考http://cnxiaowei.iteye.com/blog
/262766
这个是让我很郁闷的。不过百度和google也不是盖的。只是查了好久都没有发现更好的办法,只能一个一个文件的去转,这是很麻烦的。实在不行,就只能自
己写个java程序去转了,怎么转就自己去查资料,这里就不讨论了。
3.升级el表达式支持问题 更新web.xml配置文件2.3版本到2.4版本
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
升级到
<web-app id="union" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
由于2.4不支持<tablib>标签。解决方法是 把<taglib></taglib>用<jsp-config></jsp-config>包括起来
<jsp-config>
<taglib>
<taglib-uri>ad.tld</taglib-uri>
<taglib-location>/WEB-INF/ad.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>inv.tld</taglib-uri>
<taglib-location>/WEB-INF/inv.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/FCKeditor</taglib-uri>
<taglib-location>/WEB-INF/FCKeditor.tld</taglib-location>
</taglib>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored> <!--这里是为了支持el表达式的设置-->
<page-encoding>utf-8</page-encoding>
</jsp-property-group>
</jsp-config>
这一步里,查了很多资料,了解了一下jsp1.2 2.0 servlet2.3 2.4 el表达式之间的支持与联系。还有配置文件对应的关系。因为考虑到以后el表达式可能会用到,所以也升级上来了。
当然,这里有也jstl的一些东西:具体看http://blog.163.com/new_liu.popo/blog/static/4387092120081031331762/这篇日志更详细
4.对struts等标签格式要求严格,对<html:text property="userPhoneE" maxlength=4
style="width:59%" />不支持,后面参数必须用单引号或者双引号括起来。如:<html:text
property="userPhoneE" maxlength="
4"
style="width:59%" />所有的html都要改。。。这下很惨。平时书写不注意。。。。后果很严重啊。。。。
整个下来以后,东西基本上可以查询出来了。。。。
页面都可以正常看了,但是接下来还要解决数据库连接写入问题:
对于 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知。
这个问题,已经发现了。是因为用Sprinta2000.jar驱动,不支持mssql2005 和
mssql2008的原因。改成最新的版本后,就解决了。提一句的是最新的Sprinta.jar(7.40版)是收费的,默认只开了二个数据连接池。呵
呵,准备自己把它破解了的,虽然查到了他控制连接池数量的代码,可惜反编译Sprinta.jar
的class文件并不完美。又准备用javassist来直接用暴力修改class,终归功底太差。时间又急,就没动那心思。换成jtds-
1.2.2.jar(支持mssql2000 和
mssql2005)虽然官网上并没说支持mssql2008,从我使用的情况上来看。很正常,没有什么不方便的地方。所以就用jtds了。问题也解决
了。
查了一下,应该是连接类的问题,正在解决,好了更新上来,同时看到这篇文章的朋友,如果有这方面的经验的请,也请给我留言啊。谢谢了。
分享到:
相关推荐
JDK_API_1.6_zh_中文JDK_API_1.6_zh_中文JDK_API_1.6_zh_中文JDK_API_1.6_zh_中文JDK_API_1.6_zh_中文JDK_API_1.6_zh_中文
《JDK_API_1.6_中文版本CHM》是一个针对Java开发人员极其重要的参考资料,它包含了Java Development Kit(JDK)1.6版本的官方API文档,且以中文的形式呈现,便于中国开发者理解和使用。这个CHM文件是离线版的API文档...
《JDK 1.6 API 中文开发文档详解》 JDK 1.6,也称为Java Development Kit的第1.6版本,是Java编程语言的重要里程碑,它为开发者提供了丰富的工具和接口,以实现高效、稳定且跨平台的软件开发。这个版本的API中文...
**JDK_API_1.6.CHM 中文版** 是Java开发者的重要参考资料,它包含了Java Development Kit (JDK) 1.6版本的所有公开API的详细文档。这个CHM(Compiled Help Manual)文件是Windows平台下的帮助文件格式,提供了一个...
本文件源自oracle官方网站,jdk1.6最终版本6u45,安装后打包的 环境变量配置: 计算机(右键)-属性-高级系统设置-环境变量 1.新建系统变量 : JAVA_HOME C:\Program Files (x86)\Java\jdk1.6.0_45(你的JDK安装路径...
《JDK API 1.6:Java开发的关键指南》 在Java编程的世界中,JDK(Java Development Kit)是开发者的重要工具,它包含了编写、编译、调试Java应用程序所需的所有组件。而API(Application Programming Interface)是...
Java开发工具包(Java Development Kit,简称JDK)和Java运行环境(Java Runtime Environment,简称JRE)是Java编程的基础,对于任何想要在Java平台上进行开发或运行Java应用程序的用户来说,它们都是必不可少的组件...
mac for jdk1.6 jdk6 安装版 里面有两个jdk1.6的安装包,都可以用 如果电脑上安装有1.7,1.8等高版本jdk就不要再下安装包了,安装包安装会报错 命令是这个:brew install java6或 brew install homebrew/cask-...
JDK_API_1.6 源码文档.chm...................................................................................................................
《JDK1.6 API帮助文档》是Java开发者不可或缺的重要参考资料,它详尽地记录了JDK1.6版本中的所有类、接口、方法和异常等核心组件,为程序员提供了全面而深入的API使用指南。这份文档对于理解和利用Java 1.6版本的...
**JDK API 1.6 知识点详解** JDK (Java Development Kit) 是Java编程语言的核心组件,它包含了开发和运行Java应用程序所需的工具和Java运行环境。JDK 1.6是Oracle公司发布的Java SE(标准版)的一个版本,它的全称...
**JDK_API_1.6中文版** JDK (Java Development Kit) 是Oracle公司发布的用于开发和运行Java应用程序的工具集。JDK 1.6是Java平台的一个重要版本,包含了Java SE(标准版)的核心组件。这个版本的API中文版为开发者...
### JAVA帮助文档全系列_JDK1.5_、JDK1.6、_JDK1.7_官方中英完整版下载 #### 概述 本文档提供了JDK(Java Development Kit)不同版本的下载链接及其相关介绍。JDK作为Java开发的核心组件,对于Java程序员来说至关...
**JDK API 1.6 是Java开发的重要参考资料** JDK API 1.6是Java Development Kit的一个版本,其中包含了Java编程语言的核心类库和接口的详细文档。这个API文档对于任何想要学习或深入理解Java的开发者来说都是至关...
IBM JDK1.6 安装版
本资源"jdk1.6_green_32bit"是一个针对32位操作系统的绿色版JDK,无需安装即可使用,这在某些场景下非常方便,比如在没有管理员权限或者希望快速部署的环境中。 JDK 1.6,也被称为Java SE(标准版)6,是Oracle公司...
1.okhttp3.8源码使用jdk1.6重新编译,已集成了okio,在javaweb项目中使用,未在安卓项目中使用 2.okhttp3.8源码使用jdk1.6重新编译_okhttp3.8.0-jdk1.6.jar
《JDK 1.6 中文API详解》 在Java编程世界中,JDK(Java Development Kit)是开发和运行Java应用程序的基础。JDK 1.6版本是Oracle公司发布的一个重要版本,它包含了编译器、Java运行时环境、各种Java工具以及Java ...
《Java JDK 1.6 API 中文文档解析》 Java JDK 1.6 API文档是Java开发者的重要参考资料,它详细地介绍了JDK 1.6版本中的类、接口、方法和异常,为开发者提供了全面而深入的编程指南。这份中文版的API文档,对于中文...