Tomcat迁移至WebLogic
1. 连接池的创建
在Weblogic下需先建立一个JNDI数据源。 这里建一个名为jndietl 数据源:
配置连接缓冲池:
2. 包的选择
Weblogic下commons-digester.jar和commons-digester-1.8.jar,
commons-lang.jar和commons-lang-2.3.jar同时存在启动服务时会报错,必须使用高版本的。在Tomcat下没问题。
3. Hibernate配置
Hibernate连接数据库方式改为JNDI方式。
Tomcat下的配置:
name=\ name=\ Weblogic下的配置应该相应的改为: name=\>weblogic.jndi.WLInitialContextFactory 4. quartz.properties配置 quartz使用JDBC方式与JNDI方式连接数据库有所不同,而在Tomcat下使用的是JDBC方式连接,在Weblogic下则是通过JNDI方式连接,因此从Tomcat迁移到Weblogic下也需做一定的修改。JobStore跟DataSources配置信息都必须修改。 Tomcat下配置如下: #========================================================================= # Configure JobStore #========================================================================= org.quartz.jobStore.misfireThreshold = 60000 org.quartz.jobStore.useProperties = false org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX # 指定数据库驱动 org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate org.quartz.jobStore.dataSource = quratzDS org.quartz.jobStore.tablePrefix = QRTZ_ org.quartz.jobStore.isClustered = false #========================================================================= # Configure Datasources #========================================================================= org.quartz.dataSource.quratzDS.driver = oracle.jdbc.driver.OracleDriver org.quartz.dataSource.quratzDS.URL = jdbc:oracle:thin:@127.0.0.1:1521:nias org.quartz.dataSource.quratzDS.user = nias org.quartz.dataSource.quratzDS.password = nias org.quartz.dataSource.quratzDS.maxConnections = 20 Weblogic下应做相应的修改: #========================================================================= # Configure JobStore #========================================================================= org.quartz.jobStore.misfireThreshold = 60000 org.quartz.jobStore.useProperties = false org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX # 这句有所不一样,将驱动指定为weblogic驱动 org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.weblogic.WebLogicOracleDelegate org.quartz.jobStore.dataSource = quratzDS org.quartz.jobStore.tablePrefix = QRTZ_ org.quartz.jobStore.isClustered = false #========================================================================= # Configure Datasources #========================================================================= # 上面配置的jndi数据源的名称 org.quartz.dataSource.quratzDS.jndiURL =jndietl # weblogic的url org.quartz.dataSource.quratzDS.java.naming.provider.url = t3://127.0.0.1:7001 org.quartz.dataSource.quratzDS.jndiAlwaysLookup = DB_JNDI_ALWAYS_LOOKUP # 使用的JNDI InitialContextFactory类名 org.quartz.dataSource.quratzDS.java.naming.factory.initial = weblogic.jndi.WLInitialContextFactory # weblogic控制台的用户名 org.quartz.dataSource.quratzDS.java.naming.security.principal = weblogic # weblogic控制台的密码 org.quartz.dataSource.quratzDS.java.naming.security.credentials = weblogic 5. 编码问题 a).在文件资源模块中(UserfileAction.java) Tomcat下JSP页面传送到后台是ISO-8859-1编码,需强制转化为UTF-8。 148行: String path = new String(req.getParameter(\).getBytes(\),\); WebLogic下JSP页面传送到后台是GBK编码,也需强制转化为UTF-8。 148行: String path = new String(req.getParameter(\).getBytes(\),\); b).在转换/任务监控模块中(TransJobInfoAction.java) WebLogic环境下需对网页上传的编码进行重设: req.setCharacterEncoding(\); 在页面就可以直接getParameter(\ String pauseJobName = req.getParameter(\); 而在Tomcat环境下不需对网页上传的编码进行重设,但必须进行强制转换: String triggerName = new String(pauseJobName.getBytes(\), \); 6. 部署 由于Stetl项目资源管理模块中用到绝对路径,及数据转换中要运行的文件也是基于绝对路径查找的,所以Stetl项目不能够打成war包。