找个线程是通过打开相关JSP,传入参数,然后启动,例如:<% ...........
//fileName,xmltype,bgndt,enddt,userinfo.userId 是传入的变量
ThreadRunner tr = new ThreadRunner(fileName,xmltype,bgndt,enddt,userinfo.userId);
tr.start();
%>
来启动的,启动后,调用run()方法,在run() 里面,调用数据源,但是调用不到,也就是找不到数据源,是不是线程安全的问题造成的?
//fileName,xmltype,bgndt,enddt,userinfo.userId 是传入的变量
ThreadRunner tr = new ThreadRunner(fileName,xmltype,bgndt,enddt,userinfo.userId);
tr.start();
%>
来启动的,启动后,调用run()方法,在run() 里面,调用数据源,但是调用不到,也就是找不到数据源,是不是线程安全的问题造成的?
解决方案 »
- 怎样判断jms的Connection是否可用
- struts2 上传任意多个文件,可以动态的添加,删除
- 讨论----大家在单纯使用Servlet,jsp,JavaBean做开发时都是使用那种方式来精简大量Servlet的?
- 如何在程序正常运行时获取堆栈信息?
- 100分求韩文乱码问题
- 数据库连接池问题请教 一百分啊
- struts1.1下多个模块配置struts-config.xml,不认jsp,how to?
- 请问EJB返回的COLLECT结果集里 怎么排序呀~
- 怎么用JDOM输出<?xml:stylesheet ....?>这样的处理指令?
- 分页
- Spring Framework 开发参考手册 CHM版
- 关于lazy="true"
package zt.ccr.buss.crtfile;import java.util.*;
import zt.ccr.buss.crtfile.prepdata.cusbase;
import zt.plat.db.DBProcessor;
import sun.jdbc.rowset.CachedRowSet;public class ThreadRunner extends Thread {
public static int status_value;
public static String status_message;
private String xml_types[];
private String fileName;
private String bgndt;
private String enddt;
private String userid;
public ThreadRunner() {
}
public ThreadRunner(String fileName, String xmltype[], String bgndt, String enddt, String userid) {
this.xml_types = xmltype;
this.fileName = fileName;
this.bgndt = bgndt;
this.enddt = enddt;
this.userid = userid;
}
public void test1() {
System.out.println(" ThreadRunner 测试 ***********");
DBProcessor dbp = new DBProcessor();//获取数据源的类!!在这里有代码:dtsr = (DataSource) initctx.lookup("java:comp/env/jdbc/ccrdb"); 数据源已经配置好了 String sql ="select * from ccr.pmuser "; CachedRowSet crs = dbp.getCrs(sql);
try {
while(crs.next()){
System.out.println(" ThreadRunner **************####################"+crs.getString("USERID"));
} } catch (Exception e) {
e.printStackTrace();
dbp.rollback();
dbp.release();
// System.out.println(e.toString());
}
} public void run() {
try {
test1();
} }
catch (Throwable e) {
ThreadRunner.status_value = -1;
ThreadRunner.status_message = "报文生成过程出错:<br><pre>" + e + "</pre>";
e.printStackTrace();
}
}
}
但是获取数据源的时候报错:Name comp/env/jdbc not found in context "java:".
这个数据源在其他非线程里面是没有问题的,可以获得的