用于在目录中存储jasper报表的简单Java应用程序的Quartz调度程序正在工作,因为我使用了公共void execute而不是公共static void main并在作业类中执行,如下所示,
我不希望在运行调度器servlet时以正确的方式传递servlet id的URL,调度器servlet将触发作业类文件,而作业类文件将调用servlet类。
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class Starter_jasper implements Job {
public Starter_jasper()
{
JobExecutionContext jec = null;
try {
execute(jec);
} catch (JobExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void execute(JobExecutionContext jec) throws JobExecutionException{
//include(Jasper_database.class);
System.out.println("" + new Date());
Jasper_database jb = new Jasper_database();
jb.execute();
//fill your jobs here
}} this code works for a simple java
它适用于一个简单的java应用程序,但我的问题是如何为一个servlet类做这件事,我直接运行我的servlet类,并且我没有使用任何JSP,我的调度器和触发器在另一个servlet中,如下所示
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import job.quartz.gateway.GatewayPlugin;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.ScheduleBuilder;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import com.jasper.servlet.JasperSReport;
/**
* Servlet implementation class QuartzServlet
*/
public class QuartzServlet extends GenericServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public QuartzServlet() {
super();
// TODO Auto-generated constructor stub
}
public void init(ServletConfig config)throws ServletException{
super.init(config);
Scheduler sched;
try{
sched = StdSchedulerFactory.getDefaultScheduler();
sched.start();
// JobDetail jd = new JobDetail("myjob", sched.DEFAULT_GROUP,GatewayPlugin.class);
JobDetail job = JobBuilder.newJob(GatewayPlugin.class).
withIdentity("JasperSReport").build();
ScheduleBuilder ScheduleBuilder = SimpleScheduleBuilder.simpleSchedule().
withIntervalInSeconds(20).
repeatForever();
Trigger trigger = TriggerBuilder.newTrigger().
withIdentity("QuartzTrigger").
withSchedule(ScheduleBuilder).
startNow().
build();
sched.scheduleJob(job, trigger);
}catch(SchedulerException e){
System.out.println("Scheduler exception at class file shcedule or trigger"+e);
}
}
public void service(
ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException{
}
}
您将无法实例化Servlet,因为它与容器有关,但您可以:
request.getRequestDispatcher("/TARGET_SERVLET").forward(request,response);
帮帮我我对jasper报告在servlet上有一个问题,下面提到了错误 严重:为servlet JasperJob_servlet java分配异常。lang.ClassNotFoundException:net。旧金山。jasperreports。发动机JRRuntimeException位于org。阿帕奇。卡塔琳娜。加载器。WebappClassLoader。loadClass(WebappC
如何在jasper子报告中显示当前页码?我只做了第一页,变量如下:$V{page_NUMBER}和“(”$V{page_COUNT}“)”,但我们如何在所有子报告中显示?
我正在使用Jersey实施Rest服务。我想在浏览器上显示JSON,但我得到的是XML。 我感谢你的帮助。
问题内容: 在我的servlet中,我使用下面的代码在浏览器中打开PDF文件,但是,它显示了一个下载对话框。 我做错了什么? 问题答案: 你可以尝试用
你如何确保变量在任何地方都被计算,而不仅仅是在细节带上?
问题内容: 我是expressjs的新手,我无法使用数据对象发送响应。二进制内容在浏览器中可见。给我建议如何处理? 问题答案: 我测试了您的代码,它在chrome中对我有效,但有一个更改:更改为 编辑:由于您似乎认为仅POST服务器是一个好主意,请阅读:http : //net.tutsplus.com/tutorials/other/a-beginners-introduction-to-htt