Service层:package com.shhelian.app.service.customer;import java.text.SimpleDateFormat;
import java.util.List;import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import com.shhelian.app.dao.ContactDao;
import com.shhelian.app.model.Contact;
import com.shhelian.modules.orm.PaginationSupport;
@Component("contactService")
public class ContactService { static Logger logger = Logger
.getLogger(ContactService.class.getName());
@Autowired
private ContactDao entityDao;
// 分页
public PaginationSupport<Contact> findPage(int pageSize,
int startIndex, String contactName,String cId,String creName) {
return entityDao.findPage(pageSize, startIndex, contactName,cId,creName);
}
/**
* 添加联系人
* @param contact
*/
public void save(Contact contact) {
logger.debug("==========> save");
try {
if (contact.getContactId() == null) {
java.util.UUID uuid = java.util.UUID.randomUUID();
contact.setContactId(uuid.toString());
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String ly_time = sdf.format(new java.util.Date());
contact.setCreateDate(ly_time);
entityDao.save(contact);
} catch (Exception e) {
e.getStackTrace();
}
}
/**
* 根据ID查询
* @param contactId
* @return
*/
public Contact findById(String contactId) { logger.debug("==========> findById");
return entityDao.findById(contactId);
}
/**
* 自定义属性
* @param names 自定义属性名
*/
public void saveField(String names,String values){
logger.debug("===========> saveField");
entityDao.saveField(names, values);
}
/**
* 保存属性值
* @param str
*/
public void saveFields(String str,String cId){
entityDao.saveFields(str,cId);
}
/**
* 修改属性值
* @param str
*/
public void updateFields(String str,String cId){
try{
System.out.println("**************************************** " + cId);
entityDao.updateFields(str,cId);
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* 更新
* @param contact
*/
public void update(Contact contact){
entityDao.update(contact);
}
public void delete(String contactId){
entityDao.delete(contactId);
}
/**
* 查询所有 特殊提醒为“有”的联系人
* @return
*/
public List findAll(){
try {
return entityDao.findAll();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}}测试类:package com.shhelian.modules.util.time;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.scheduling.quartz.CronTriggerBean;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.security.ldap.SpringSecurityContextSource;import com.shhelian.app.dao.ContactDao;
import com.shhelian.app.service.customer.ContactService;
import com.shhelian.modules.util.Email.MyAuthenticator;public class MyJob extends QuartzJobBean { private int timeout;
private String ToAddress;
private String subject;
private String content;
private List list;
@Autowired
private ContactService contactService;
@Override
protected void executeInternal(JobExecutionContext context)throws JobExecutionException{
System.out.println("现在时间为: " + (new Date()));
//取系统当前的时间 年 月 日 小时:分钟:秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String ly_time = sdf.format(new java.util.Date());
System.out.println("=======" + ly_time);
//判断当前时间是否与数据库中查询到的数据相等,是则发送邮件,否则反之。
if(ly_time.equals("2012-10-15 11:00:00")){
MyAuthenticator mycator = new MyAuthenticator();
mycator.toMail(); //发送邮件
}else{
System.out.println("没有匹配时间...");
this.findContact();
}
}
/**
* 查询所有 特殊提醒为“有”的 联系人
* @return
*/
public List findContact(){
try {
list = contactService.findAll();
System.out.println("===----" + list.size());
return list;
} catch (Exception e) {
e.printStackTrace();
System.out.println("出错了 ...");
return null;
}
}
public void setTimeout(int timeout) {
this.timeout = timeout;
}
public List getList() {
return list;
} public void setList(List list) {
this.list = list;
}
}
错误信息:
java.lang.NullPointerException
at com.shhelian.modules.util.time.MyJob.findContact(MyJob.java:70)
at com.shhelian.modules.util.time.MyJob.executeInternal(MyJob.java:51)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
出错了 ...红色字体 军为关键代码 已标识!
空指针错误 , 查询所有的联系人方法 FindAll()在Action层中测试过了, 可以查询到数据 但是在这个类里就不可以了 。希望帮忙解决下!
import java.util.List;import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import com.shhelian.app.dao.ContactDao;
import com.shhelian.app.model.Contact;
import com.shhelian.modules.orm.PaginationSupport;
@Component("contactService")
public class ContactService { static Logger logger = Logger
.getLogger(ContactService.class.getName());
@Autowired
private ContactDao entityDao;
// 分页
public PaginationSupport<Contact> findPage(int pageSize,
int startIndex, String contactName,String cId,String creName) {
return entityDao.findPage(pageSize, startIndex, contactName,cId,creName);
}
/**
* 添加联系人
* @param contact
*/
public void save(Contact contact) {
logger.debug("==========> save");
try {
if (contact.getContactId() == null) {
java.util.UUID uuid = java.util.UUID.randomUUID();
contact.setContactId(uuid.toString());
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String ly_time = sdf.format(new java.util.Date());
contact.setCreateDate(ly_time);
entityDao.save(contact);
} catch (Exception e) {
e.getStackTrace();
}
}
/**
* 根据ID查询
* @param contactId
* @return
*/
public Contact findById(String contactId) { logger.debug("==========> findById");
return entityDao.findById(contactId);
}
/**
* 自定义属性
* @param names 自定义属性名
*/
public void saveField(String names,String values){
logger.debug("===========> saveField");
entityDao.saveField(names, values);
}
/**
* 保存属性值
* @param str
*/
public void saveFields(String str,String cId){
entityDao.saveFields(str,cId);
}
/**
* 修改属性值
* @param str
*/
public void updateFields(String str,String cId){
try{
System.out.println("**************************************** " + cId);
entityDao.updateFields(str,cId);
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* 更新
* @param contact
*/
public void update(Contact contact){
entityDao.update(contact);
}
public void delete(String contactId){
entityDao.delete(contactId);
}
/**
* 查询所有 特殊提醒为“有”的联系人
* @return
*/
public List findAll(){
try {
return entityDao.findAll();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}}测试类:package com.shhelian.modules.util.time;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.scheduling.quartz.CronTriggerBean;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.security.ldap.SpringSecurityContextSource;import com.shhelian.app.dao.ContactDao;
import com.shhelian.app.service.customer.ContactService;
import com.shhelian.modules.util.Email.MyAuthenticator;public class MyJob extends QuartzJobBean { private int timeout;
private String ToAddress;
private String subject;
private String content;
private List list;
@Autowired
private ContactService contactService;
@Override
protected void executeInternal(JobExecutionContext context)throws JobExecutionException{
System.out.println("现在时间为: " + (new Date()));
//取系统当前的时间 年 月 日 小时:分钟:秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String ly_time = sdf.format(new java.util.Date());
System.out.println("=======" + ly_time);
//判断当前时间是否与数据库中查询到的数据相等,是则发送邮件,否则反之。
if(ly_time.equals("2012-10-15 11:00:00")){
MyAuthenticator mycator = new MyAuthenticator();
mycator.toMail(); //发送邮件
}else{
System.out.println("没有匹配时间...");
this.findContact();
}
}
/**
* 查询所有 特殊提醒为“有”的 联系人
* @return
*/
public List findContact(){
try {
list = contactService.findAll();
System.out.println("===----" + list.size());
return list;
} catch (Exception e) {
e.printStackTrace();
System.out.println("出错了 ...");
return null;
}
}
public void setTimeout(int timeout) {
this.timeout = timeout;
}
public List getList() {
return list;
} public void setList(List list) {
this.list = list;
}
}
错误信息:
java.lang.NullPointerException
at com.shhelian.modules.util.time.MyJob.findContact(MyJob.java:70)
at com.shhelian.modules.util.time.MyJob.executeInternal(MyJob.java:51)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
出错了 ...红色字体 军为关键代码 已标识!
空指针错误 , 查询所有的联系人方法 FindAll()在Action层中测试过了, 可以查询到数据 但是在这个类里就不可以了 。希望帮忙解决下!
package com.shhelian.app.service.customer;import java.text.SimpleDateFormat;
import java.util.List;import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import com.shhelian.app.dao.ContactDao;
import com.shhelian.app.model.Contact;
import com.shhelian.modules.orm.PaginationSupport;
@Component("contactService")
public class ContactService { static Logger logger = Logger
.getLogger(ContactService.class.getName());
@Autowired
private ContactDao entityDao;
// 分页
public PaginationSupport<Contact> findPage(int pageSize,
int startIndex, String contactName,String cId,String creName) {
return entityDao.findPage(pageSize, startIndex, contactName,cId,creName);
}
/**
* 添加联系人
* @param contact
*/
public void save(Contact contact) {
logger.debug("==========> save");
try {
if (contact.getContactId() == null) {
java.util.UUID uuid = java.util.UUID.randomUUID();
contact.setContactId(uuid.toString());
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String ly_time = sdf.format(new java.util.Date());
contact.setCreateDate(ly_time);
entityDao.save(contact);
} catch (Exception e) {
e.getStackTrace();
}
}
/**
* 根据ID查询
* @param contactId
* @return
*/
public Contact findById(String contactId) { logger.debug("==========> findById");
return entityDao.findById(contactId);
}
/**
* 自定义属性
* @param names 自定义属性名
*/
public void saveField(String names,String values){
logger.debug("===========> saveField");
entityDao.saveField(names, values);
}
/**
* 保存属性值
* @param str
*/
public void saveFields(String str,String cId){
entityDao.saveFields(str,cId);
}
/**
* 修改属性值
* @param str
*/
public void updateFields(String str,String cId){
try{
System.out.println("**************************************** " + cId);
entityDao.updateFields(str,cId);
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* 更新
* @param contact
*/
public void update(Contact contact){
entityDao.update(contact);
}
public void delete(String contactId){
entityDao.delete(contactId);
}
/**
* 查询所有 特殊提醒为“有”的联系人
* @return
*/
public List findAll(){
try {
return entityDao.findAll();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}}这是ContactService所有的代码 。 还有我使用的是注解 。 要是没有实例的话 , 那我在Action层中查询应该也会报空指针 , 但是在Action层查询可以。就是一换到这个类中查询就不行了!