RAD6.0+EJB+WEBSPHERE+JNDI转eclipse+TOMCAT7+JDK1.7+JNDI+SPRING修改总计

##########################1.去除ejb#######################################################################
1.1:导包:javax.xml.rpc-api-1.1.1.jar (复制到路径:webconent/WEB-INF/lib);
1.2:从websphere的lib中复制j2ee.jar这个jar包,用压缩软件打开,(注意:j2ee.jar这个包不要放到tomcat下的lib内,tomcat服务器会跑不起来)
并且删除其中的:
javax/ejb/EJBLocalObject.class,
javax/ejb/SessionBean.class,
javax/ejb/CreateException.class,
javax/ejb/DuplicateKeyException.class,
javax/ejb/FinderException.class
javax/transaction/SystemException.class
等几个文件,然后导入这个jar包到项目中(复制到路径:webconent/WEB-INF/lib);

说明:此jar包包含了sessionbean,EJBLocalObject。原项目中bean实现了sessionbean,local实现了EJBLocalObject,几乎所有的bean文件都与
sessionbean以及j2ee包下的其他某些类产生了关联,不可能手动一个一个从bean中删除这些关联,因此直接导入j2ee这个jar包用于被bean的引用;
上面列出的几个文件被bean频繁引用,即使jar包中包含有这几个文件,编译时还是会报错导致了项目无法启动!!!
解决思路是:手动新建这几个类,用来被bean引用!
因此,现在我们手动在src下面新建一个package,路径就是javax.ejb,在这个包下新建一个接口EJBLocalObject,接口里面定义一个抽象方法remove;
再在包下新建一个SessionBean的空内容接口;
EJBLocalObject代码如下:
 package javax.ejb;
 public interface EJBLocalObject {
 public void remove();
 }
在javax.ejb包下新建一个类CreateException:
 public class CreateException extends Exception {
 public CreateException(){};
 public CreateException(String msg){};
 }
在javax.ejb包下新建一个类DuplicateKeyException
 package javax.ejb;
 public class DuplicateKeyException extends Exception {
 }
在javax.ejb包下新建一个类FinderException
 package javax.ejb;
 public class FinderException extends Exception {
 }
再新建一个包javax.transaction,在包下新建另一个异常类SystemException:
 package javax.transaction; 
 public class SystemException extends Exception{ 
 }

######################################2:人工操作,有一定工作量######(ejbfactory和spring配置文件已改好可直接采用)#####################################################
###############################################有350多个bean需要人工手动修改###########################################################################################
采用spring管理bean的准备工作:
向项目webconent/WEB-INF/lib导入spring的jar包,aop,aspects,beans,context,context-support,core,expression(主要是bean,core,context,context-support,其他几个应该暂时未用到)
在src目录下面新建一个applicationContext.xml,将所有bean配置进IOC容器,配置成多例模式;

必须的手动工作量:
更新到最新版本,在rad里面编译好能运行,这一步主要是让local和localhome全部编译好。
gen里面包含了编译好的local和localhome,将gen/src里面的com文件夹复制到intrust2015\java\EnfoIntrsutEJB\ejbModule,让2个com文件夹融合
这样所有bean,以及其对应的local和localhome都集合到了各自bean所在目录
准备修改的地方:(此文件夹还未进行以下修改):

2.1:所有bean取消implements sessionbean,改为implements本身的local;
(但是如果bean继承了busibean,而busibean默认是实现了Sessionbean的,如果直接更改busibean让其不实现sessionbean,项目中会蹦出来N多继承busibean的bean报错需要更改,因此不要更改busibean)
2.2:所有bean添加一个remove()的空操作方法(很多jsp末尾执行了local.remove()方法)
 在eclipse中点击红线可以自动生成这个未被实现的remove方法
 
2.3:src目录下新建一个applicationContext.xml,配置所有的bean
2.4:EJBFactory更改getbean,
先类中建一个静态成员属性:
 public static ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
之后所有getbean的方法全部修改为以下这一行:
return (xxxLocal)ctx.getBean("xxxBean");

##############################3:tomcat导包############################################################################
问题:有些jsp测试dwr正常,有些jsp页面测试dwr时报异常
测试jsp页面想调用bankcommandservice这个dwr,结果页面报异常java.lang.ClassNotFoundException: net.sf.json.util.PropertyFilter
而这个jar包json-lib-2.4-jdk15.jar(原jdk1.3)在项目中buildpath中是已经导入过的,为什么在jsp页面上还是会报错?
一开始怀疑是jdk版本的问题,原jsonlib包是jdk1.3的,官网最高jdk1.5,而我们用的jdk1.7,换成1.5的jar包还是报错。
解决方法是:将原项目依赖的jar包库enfolib下的所有包,全部复制放到tomcat下的lib中。(####可能只需要复制对应的json之类的几个jar包就行了,我是全部复制进去的,以防其它地方还是要导入进tomcat)

##########################4.导入所有jsp后编译时eclipse直接卡死##############################################################
导入java部分编译没问题,导入所有jsp后,编译卡住直到eclipse崩溃。

4.1:设置eclipse下的elicpse.ini,(按个人配置)
-Xms2024m
-Xmx2024m
-XX:MaxPermSize=2024m

4.2:去掉验证,参考http://www.cnblogs.com/shangxiaofei/p/5403642.html
重点注意:修改工作空间中,项目内.project文件中,删除掉下面这一行(js验证):
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>

4.3:此时,全部项目可以编译了,但是会有js报红。
右键项目-properties-builders,去掉javascript validator前面的勾,project-build automatically勾选上,项目右键刷新
4.4:修改web.xml
去掉所有ejb-local-ref相关的内容

##############################5.tomcat+sqlserver+jdk1.7的 JNDI配置##########################
5:tomcat+sqlserver的jndi配置

5.1:下载sqlserver的驱动jar包,地址是:http://www.microsoft.com/zh-cn/download/details.aspx?id=11774
 下载其中的exe文件,解压,如果用的是jdk1.7,那么对应的jar包是jre7下面的sqljdbc41.jar
5.2:复制这个驱动包到你的jdk1.7安装目录\jre\lib\ext,比如我的是D:\jdk1.7.0_65\jre\lib\ext;
5.3  复制驱动包到tomcat安装目录的lib中,如我的是D:\Tomcat 7.0\lib
5.4  修改tomcat安装目录\conf\context.xml,在<Context>节点中增加如下JNDI配置:
 <Resource
  name="jdbc/intrust"
  auth="Container"
  type="javax.sql.DataSource"
  maxActive="100"
  maxIdle="30"
  username="sa"
  password="000000"
  dirverClassName="com.microsoft.sqlser.jdbc.SQLServerDriver"
  url="jdbc:sqlserver://127.0.0.1:1433; DatabaseName=intrust"
 />

5.5 如果要在本机eclipse的测试环境中运行项目,那么在eclipse中的server(新建一个server时就会自动生成这个项目),打开context.xml,按5.4一样增加就行了;
 如果加上这些内容后项目跑不起来,尝试把这几行内容都写成一行。

5.6 (可忽略)在webcontent目录下写个测试jsp,里面调用Argument中的一个连接数据库的方法,比如在body中写入下面的java代码
 <%=Argument.getType_content("10010001")%>,(数据表中对应字段是“资金到账”);
 在eclipse左侧项目资源管理器中选中这个jsp文件,右键-run as -run on server,这样会在本地tomcat测试环境中从浏览器打开这个页面,如果页面上显示“资金到账”,说明JNDI配置成功;

########################6.修改项目访问路径,原访问路径包含项目名,必须取消项目名,否则项目中有些页面路径不对报404#####################3
如果是eclipse测试环境:
双击tomcat服务器,弹出测试server的配置页面,点击modules,选择本项目,edit,修改path为"/"(没有双引号)

发布到正式tomcat环境时:

正规的改法应该是配置虚拟目录:(推荐)
项目war包Intrust放到webapp目录下
在tomcat下的server.xml中,找到 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
在下方添加一行:<Context path="" docBase="Intrust" reloadable="true" />
docBase中的值是项目名字;

也可以:
1.删除ROOT下所有文件及文件夹,或者直接重命名默认的ROOT为ROOT_bak
2.把我们项目的war包解压后,项目目录下的所有文件和子目录都拷贝到ROOT目录下即可
或者有更狠的一招:直接删掉ROOT目录,然后把我们的项目打包名称改成ROOT.war,放到webapps下就行

######################7.axis包调整#(已整合到lib包)##################################
调用webservice接口时候会提示class not found
要将enfolib中的axis相关包放到WEBROOT/WEB-INF/lib中
axis.jar,
axis2-adb-1.4.1.jar,
axis2-adb-codegen-1.4.1.jar,
axis2-kernel-1.4.1.jar
commons-discovery.jar
activation-1.1.jar
mail.jar
################8.开始跑项目-细节调整#################################################
1:打开项目首页报错空指针异常,定位到busibean.java,方法:query
原因是rowset一开始并没有被初始化,所以为null,在方法中却直接就调用rowset.close(),所以报空指针异常;
注意:原ejb项目不报异常时因为busibean的EJBCreate方法中对rowset进行的赋值初始化,每个ejb生成时会执行ejbcreate()方法;
最直接的方法:在BUSIBEAN的默认构造方法中,给rowset初始化赋值;
 public BusiBean(){
  try {
   rowset = new sun.jdbc.rowset.CachedRowSet();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 };
或者直接在query之类要用到rowset的方法内部初始化赋值;

2:busibean中修改next时当游标已经在最后时再次next就报异常的问题:
修改所有next使游标后移的方法
 public boolean getNext() throws Exception{
  boolean hasnext=true;
  try{
   hasnext=rowset.next();
   }catch(Exception e){
   return false;
   }
  return hasnext;
 }
同理有:getNextView,getNextZhcx等2个方法;

3:dwr.xml警告消除(可忽略)
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
查看dwr.jar是2.0版本的,上面可能要按下行修改来消除警告:
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">

############################################################################################################################################
####################################9.数据库重点改动:关于页面报异常:该存储过程没有返回结果集################################################
############################################################################################################################################
打开当前产品时,基本信息中,页面异常,提示com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集。
打开页面调用的存储过程:
——————————————————————————————————

WITH ENCRYPTION
AS
下一行补上:   SET NOCOUNT ON   (必须添加)
——————————————————————————————————
说明:几乎绝大部分query查询的存储过程都没有添加SET NOCOUNT ON ,大概有1000多条存储过程需要添加!!!
手动一条一条改,太耗时,所以写了个java代码直接通过程序来更改:
事先准备:将database/PROC/query里面所有存储过程复制到D:/modsql/PROC-query,
 将database/TA/PROC文件夹里面所有的query的存储过程复制到D:/modsql/TA-PROC
在eclipse中建个项目,建个类,将文件夹中ModSQL.java的方法复制进去,执行程序可批量修改sql,速度很快。
==================================================================================================
注意:main中的path路径,要修改哪个文件夹下的存储过程,就修改为对应文件夹的路径!!!

在eclipse里面执行这个小程序时,会将存储过程自动添加上SET NOCOUNT ON,但以下存储过程除外(写法不一样,没有写加密的语句):
执行这个java程序后会在控制台输出需要手动修改的存储过程的列表,可以将这个列表复制到一个txt文件,以便手动添加SET NOCOUNT ON的时候用于对照查看;
列表如下:
PROC-QUERY目录下
SP_QUERY_INVESTSSINFO_TOTAL.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TCHEQUEYE_NO.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TCONTRACTSS.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TDONATEINFO.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TENTCWZBINFO.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TENTCWZBINFO_YEAR.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TENTLEVELINFO.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TENTRELATION.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TINVESTFINANCE_COMM.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TINVESTFINANCE_ENT.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TINVESTSSINFO.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TINVESTSSINFO_LIST.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TINVESTSSJDINFO.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TINVESTSSZXINFO.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TINVESTSS_DETAIL.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TOTHERBUSIFLAG.SQL---需要手动添加SET NOCOUNT ON
SP_QUERY_TOTHERBUSIFLAG_FOR_CHECK.SQL---需要手动添加SET NOCOUNT ON
至此,经过java程序自动修改,手动补漏修改后,下一步就是将这些更改过的存储过程在数据库上执行一遍;
这里不用一个一个的在数据库上执行,利用工具合并,再执行;
工具:udFile.exe,可以将一个文件夹下的所有存储过程合并到一个sql文件中,然后直接在数据库上执行这个合并后的文件即可;
基于数据库,可能有个别存储过程执行时报错,提示xx列名不对什么的,应该要对数据库进行数据维护,先忽略掉。
############################################################################################################################################

############################10.jsp中import包含“,,”导致jsp编译报错的问题######################################

首页:
1:现金管理相关菜单-功能类菜单-基金信息,页面报错打不开
talfund_query.jsp  import中2个连续的",",去掉一个
2:现金管理相关菜单-功能类菜单-基金信息审核,页面报错打不开
talfund_check.jsp  import中2个连续的",",去掉一个

后来发现还是可能存在很多jsp有这种情况,利用问题9的思路,新写一个java程序用于查找所有存在“,,”的jsp文件;
参见文件夹下的modJSP.java,在eclipse中运行这个java程序,会在控制台中打印出所有包含",,c",",,j"的jsp文件,
(所有import中,都是",,com.enfo....."或者",,java.......")
此程序只能打印jsp列表,没有直接将",,"改成",",需要手动修改;我用的项目版本查出来有57个jsp需要手动修改
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\efifs\fee\problem_fee_apply_print.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\efifs\fee\problem_fee_apply_print11.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\efifs\fee\problem_fee_apply_print11_zhongtai.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\efifs\fee\problem_fee_apply_update11.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\efifs\fee\problem_install_pay_list_print.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\efifs\fee\problem_start_tspotaward.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\financing\accountdata\loan_3_2_2.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\financing\finacialcard\finacialcard_info2.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\financing\finacialcard\finacialcard_info_add.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\financing\square\cpoutinfo_update.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\nav_chart\intrustdetail.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\nav_chart\intrustscale.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\newui\employee_main.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\newui\leader_main.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\downloadFile.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\navigator.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\noticeMoreGzts_1.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\noticeMoreGzts_1_1.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\noticeMoreGzts_2.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\noticeMoreGzts_2012.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\notice_form_history.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\notice_form_pages.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\notice_intrust.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_dclsw.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_dplsw.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_fxyj.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_fxyj_dclsw.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_fxyj_yclsw.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_gl_stgm.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_gzjh.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_problem_confirm.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_problem_stat.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_work_warn.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\potal_xmdt.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\sso_param_info.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\zjtdefault.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal\zjt_work_index.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\portal_2012\problem_portal.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\projects\forms\problem_invest_order_applymoney.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\projects\problem_fiduciary_scale.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\projects\problem_fiduciary_scale_1.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\projects\product_fl_list.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\system\systemparam\talfund_check.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\system\systemparam\talfund_query.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\product_intrustreward.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\product_intrustreward_check.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\product_intrustreward_check_back.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\product_intrustreward_check_do.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\product_intrustreward_remove.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\product_statistic.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\project_problem_start_check_info.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\project_problem_start_info.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\project_problem_start_modi.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\project_problem_start_new.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\transaction\project\project_problem_start_uncheck_info.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\webreport\bmgmbc.jsp
D:\enfo\javaeclipse\EnfoIntrsutWeb\WebContent\webreport\xtgmbc.jsp
##################################其他细节问题##################################
前台业务
1:项目产品管理-产品管理-产品设置-简介
ProductBean.java 方法public boolean getNext(String DBdriver) throws BusiException
位置:click_flag = Utility.parseInt(Utility.trimNull(rowset.getObject("click_flag")),new Integer(0));
解决方法:要求SP_QUERY_TPRODUCT_ID返回CLICK_FLAG字段
或者直接将上面这行java改成:
 try{
     click_flag = Utility.parseInt(Utility.trimNull(rowset.getObject("click_flag")),new Integer(0));
     }catch(Exception e){
           click_flag = Integer.valueOf("0");
     }

2:产品核算管理-中间收益-审核-付款打印
sk_print.jsp  乱码
综合查询-缴款查询
pay_collection_print.jsp乱码
//String product_code = Utility.trimNull(request.getParameter("product_code"));
String product_code=request.getParameter("product_code")==null?"":new String(request.getParameter("product_code").getBytes("iso-8859-1"), "GBK");
可以像上述改动这样直接在jsp里面改动,但是如果有其他的jsp也乱码,这种就很麻烦。
原项目是以GBK编码运行的。
最直接的方法是直接在tomcat里面改动,tomcat不论测试环境,正式环境,找到server.xml,以下两个位置改动,都是在后面加上URIEncoding=‘GBK‘这个属性。
<Connector connectionTimeout="20000" port="9080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding=‘GBK‘/>
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" URIEncoding=‘GBK‘/>

###############################关于jdk版本################################################
目前项目修改后成功运行的环境:tomcat7配jdk1.7,elicpse配jdk1.7;
在此基础上,测试:
当tomcat7配jdk1.7,eclipse配1.8时(sqlserver驱动jar包导入到jdk1.8对应的文件夹中,此时tomcat7中的sqlserver驱动jar包配的还是jdk1.7版本的不变),项目可以跑起来
当tomcat7配jdk1.7,eclipse配1.8时(sqlserver驱动jar包没有导入到jdk1.8对应的文件夹中,此时tomcat7中的sqlserver驱动jar包配的还是jdk1.7版本的不变),项目也可以跑起来

附录:修改sql和查找jsp的java代码

----------批量修改sql

package com.enfo.intrust.test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class ModSQL {
public void modify(String path) throws IOException{
File dir=new File(path);
String[] fileList=dir.list();
    for(int i=0;i<fileList.length;i++){
    //读取文件
        File currentFile=new File(path+"\\"+fileList[i]);
    //判断是否包含“NOCOUNT”
        if(!hasnocount(currentFile)){//如果当前文件中不包含NOCOUNT
            setNOCOUNT(currentFile);
        }
    }
}
//判断是否存在SET NOCOUNT ON
public boolean hasnocount(File file) throws IOException{
    boolean flag=false;

    String temp;
    BufferedReader bReader=new BufferedReader(new InputStreamReader(new FileInputStream(file)));
    while((temp=bReader.readLine())!=null ){
        if (temp.contains("NOCOUNT")) return true;
    }
    bReader.close();
    return flag;
}
//添加 SET NOCOUNT ON
 public void setNOCOUNT(File file) throws IOException{
    StringBuffer sb=new StringBuffer();
    String temp;
    BufferedReader bReader=new BufferedReader(new InputStreamReader(new FileInputStream(file)));
    while((temp=bReader.readLine())!=null ){
        if(temp.contains("WITH ENCRYPTION")){
            sb.append(temp.trim()+"\n");
            }else sb.append(temp+"\n");
    }
    bReader.close();
    int start=sb.indexOf("WITH ENCRYPTION");
    if(start!=-1) {
        sb.insert(start+18, "\nSET NOCOUNT ON");
    }else System.out.println(file.getName()+"---需要手动添加SET NOCOUNT ON");

    BufferedWriter bWriter =new BufferedWriter(new FileWriter(file));
    bWriter.write(sb.toString());
    bWriter.close();

}
public static void main(String[] args) throws IOException {
    String path="D:\\modsql\\TA-PROC";
    ModSQL ms=new ModSQL();
    ms.modify(path);
}
}

---------查找jsp

package com.enfo.intrust.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class modJSP {

public void modify(String path) throws IOException{
File dir=new File(path);
String[] fileList=dir.list();
 for(int i=0;i<fileList.length;i++){
 //读取文件
  File currentFile=new File(path+"\\"+fileList[i]);
  if(currentFile.isFile()){ //如果是文件
   if( currentFile.getName().contains("jsp")&&hasnocount(currentFile)){//如果是jsp文件并且当前文件中包含,,
    System.out.println(currentFile.getAbsolutePath());
   }
  }else{//如果是文件夹,递归操作
    String newpath=path+"\\"+currentFile.getName();
   modify(newpath);
  }
 }

}
//判断是否存在SET NOCOUNT ON
public boolean hasnocount(File file) throws IOException{
 boolean flag=false;
 String temp;
 BufferedReader bReader=new BufferedReader(new InputStreamReader(new FileInputStream(file)));
 while((temp=bReader.readLine())!=null ){
  if (temp.contains(",,c")||temp.contains(",,j")) return true;
 }
 bReader.close();
 return flag;
} 

public static void main(String[] args) throws IOException {
 String path="D:\\enfo\\javaeclipse\\EnfoIntrsutWeb\\WebContent";
  modJSP mj=new modJSP();
 mj.modify(path);
}
}
时间: 2024-09-29 23:24:10

RAD6.0+EJB+WEBSPHERE+JNDI转eclipse+TOMCAT7+JDK1.7+JNDI+SPRING修改总计的相关文章

Ubuntu12.04 配置Java开发环境:JDK1.7+Eclipse+Tomcat7.0

软硬件环境 Ubuntu12.04+JDK1.7+Eclipse+Tomcat7.0 内容列表 1.安装JDK1.7,配置JAVA环境 2.安装Eclipse 3.安装Tomcat7.0 1.安装JDK1.7,配置JAVA环境 step 1:下载JDK step 2:解压到/usr/local中 sudo tar -zxvf jdk-7u67-linux-x64.tar.gz -C /usr/local step 3:配置环境变量 打开/etc/profile文件:sudo gedit /etc

EJB3.0 EJB开发消息驱动bean

(7)EJB3.0 EJB开发消息驱动bean JMS 一: Java消息服务(Java Message Service) 二:jms中的消息 消息传递系统的中心就是消息.一条 Message 由三个部分组成:             头(header),属性(property)和主体(body). 消息有下面几种类型,他们都是派生自 Message 接口.           StreamMessage:一种主体中包含 Java 基元值流的消息.其填充和读取均按顺序进行.          

Eclipse开发环境设置(Maven+Spring MVC+Flex)

1. 环境设置 1.1. Java环境设置 1)JAVA_HOME D:\GreenSoftware\Java\Java8X64\jdk1.8.0_91 2)PATH ;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin 3)CLASSPATH .;%JAVA_HOME%/lib;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar 1.2. Mave环境设置 1.2.1. Maven环境变量 4)MAVEN_HOME D:\Gre

在eclipse中安装maven和spring boot

在eclipse中安装maven和spring boot 1.打开help->install new software 2.点Add,Name(maven),Location(http://download.eclipse.org/technology/m2e/releases),OK,select然后next到安装中,等待安装完成. 3.新建maven项目 File->New->Project, 选择Maven Project next到 输入artifact id(项目名).grou

在Eclipse中复制导入项目并且修改原来的项目名字,项目后面的括号显示原来项目的名字!

eclipse中Tomcat导入项目并且修改了项目名字,把项目add到Tomcat上面,发现现在的项目后面带了个括号显示原来项目的名字,并且在访问的时候也只能用原来的项目名访问.问题来了,要想用新的项目名访问该怎么办呢?这个问题当初刚遇到时,也很苦恼,询问众多前辈及各种资源,才得于顺利解决.现将完整解决方法总结如下,该方法仅用于学习交流.如有相似之处,请海涵! 1.打开你的项目目录,找到一个.project文件,打开后修改<name> test</name>中的值,将test修改成

Eclipse(MyEclipse)使用技巧——修改注释字体大小

Eclipse在安装完成后,注释的字体大小远远小于代码的大小,按照网上查的相关信息 窗口--首选项--常规--外观--颜色和字体--基本--文本字体--编辑 Window -->Preferences --> General --> Appearance --> Colors and Fonts -->Basic --> Text Font --> Edit --> 大小 ,进行了修改后,代码与注释字体是整体都变大了,但是注释的字体还是小于代码,这跟我想要的

eclipse tomcat7.0 start 常见错误警告

十月 24, 2013 9:47:06 上午 org.apache.catalina.core.AprLifecycleListener initINFO: Loaded APR based Apache Tomcat Native library 1.1.27 using APR version 1.4.6.十月 24, 2013 9:47:06 上午 org.apache.catalina.core.AprLifecycleListener initINFO: APR capabilitie

eclipse+tomcat7解决项目中文乱码的一个思路

1. 在代码层面进行编码的修改操作,参考博文的方法一:http://www.cnblogs.com/longshiyVip/p/4873058.html 2. 如果项目使用了struts2等前端框架,可以利用框架的一些编码过滤器进行编码转换工作. 3. eclipse环境本身进行配置UTF-8编码的工作,参考博文方法二:http://www.cnblogs.com/longshiyVip/p/4873058.html 和博文:http://www.cnblogs.com/longshiyVip/

Cocos2dx 3.0开发环境的搭建--Eclipse建立在Android工程

一.前言: 这部分描述了Cocos2d-x 3.0的一些基础内容,以及在Eclipse上上编译我们的Cocos2d-x项目,成功把Helloworld执行起来了.看完本篇博客之后.你就会知道Cocos2d-x 3.0居然发生了如此大的变化.变得如此简单,环境搭建.项目创建.编译的方式更加人性化了. 二.环境准备: 1.下载ADT Bundle(Eclipse捆绑了SDK和ADT).或者是安装Eclipse了ADT插件. 2.安装JDK.NDK.Ant .Python.然后配置环境. 3.Coco