J2EE大多数的架子都是基于页面层+服务层(多数会加个逻辑层)+数据库层.如果能够把这几个层分得够细,配置文件管理有条理,那么系统就很好维护.页面层涉及的框架会比较多,这个多数会由开发人员去画,如struct,jsf,报表展示,服务层很多都是spring注入式,库层则由各种各样的访问方式如ibatis,hibernate...当然个人接触较多的也是上面举的这些.web服务器大的有wl(weblogic简称),ws(websphere),jboss,小的常用的就是tomcat,为了测试方便我通常是用tomcat,发布的时候才用诸如wl.当然如果用到其中的一些中间的时候我们就不得不用它来测试了.但这个时候我们如果搞个vm虚拟机来做开发的话相信会事半功倍.包括库层oracle,informix,db2.本人就是搞了个RedHat vm os,里面装了wl10,oracle10,tux8,informix(不知道是哪版本),平时需要测试时,只要resume我的虚拟机,一切就OK了.下面就讲些wl在生产上发布时常碰到的一些问题做些简记,希望有碰到相关问题的朋友们也不要太着急,其实很多问题高手们都已经碰到过了.
1.乱码问题
平时做开发时,大多数都会在是windows下开发的,所以相应的开发工具也都是在 windows下跑的,一旦系统发布时,可能就会涉及到多个操作系统,比如db在A的linux系统,web在B的linux系统,而此时还有一个中间件在C系统里,客户访问数据时通过B,B调用中间件C,C再去访问库A,这个时候可能就会出现不同平台,的编码,也有可能是库的字符集问题.
具体问题如下:
解决办法其实很简单
打开wl目录bin下的startWeblogic.sh(是bin目录下的)加入以下这行 JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.wtc.encoding=GBK"
针对当前问题,其实还有其他很多种类似相关情况,在开发时期会经常碰到类似的,但在上线发布时都会比较棘手,一是因为时间比较紧,二是因为压力比较大.所以如果平时多注意,多做些不同平台的测试,那么就可以让这些相关情况能够及时发现.当然也会因为平台不易移植从而不能达到如上效果,但其实多数我们都是可以尽早发现的.
2.boot.properies
布过生产的人一般都会遇到这个问题,就是当wl启动到一半时会要求输入用户密码,在linux下当然如果我们直接界面是可以输入的,但如果是用后台nohup的情况的呢,它就会一直停留在界面上而不往下执行了,这个时候就需要怎么让它不人工输入密码,而是让它自动较验.
解决办法: