开发笔记
eclipse开发了一个小程序(两个系统的桥梁),有一个主应用,一个图书馆系统,当用户登录主应用后,点击主应用上的图书馆链接(访问我的小程序),直接登录进入图书馆,(之前已经把所有主应用的用户数据同步到图书馆系统了)。
调用图书馆的 webService接口进行登录 需要参数如下:
RUID=(Z469),//用户借书证好
password(md5(RUID+key+time)),//生成的密码,key为图书馆系统提供的key值
time=yyMMddHH,//当时时间,精确到小时
furl=XXXXXXXX;//登录成功后跳转的地址
都做好后,跑了一段时间,出了一个问题,说一个用户登录不了,密码错误,
我代码跟踪了一遍,没找到任何错误,一切正常。跳转到图书馆返回密码错误,感觉很奇怪。
最后和另一个用户的访问链接比较了一下,发现这个用户的RUID(Z469 )后面有空格,我跟踪了程序,发现trim()没有作用,我转成byte数组,发现后面不是一个空格,而是三个异常字符,如下图:
我通过下面的很笨的方法去掉了特殊字符,如下图:
改了之后,我在eclipse下跑了程序,一切正常。但是我把eclipse关掉之后,单独跑tomcat,出问题了,竟然还是密码错误。我把tomcat下编译后的文件拷出来,反编译后,程序是刚才改的,那就TM的撞鬼了。
eclipse下配置的tomcat就是这个tomcat,程序都是一模一样的。结果不一样。郁闷的差点吐血了,网上大搜特搜,找到这么一句话:
项目在eclipse运行正常,但单独部署到tomcat上出现乱码解决办法
1、在bin目录下的catalina.bat文件最开头加上下面这句话
set JAVA_OPTS=-Xms128m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8
rem %JAVA_OPTS%
不知道在说什么,但是我照做了,结果问题解决了!!!
不要问我为什么,因为我也不知道,估计写这句话的人是林正英