Я пытаюсь сделать некоторое базовое приложение в AppFuse (многомодульное), и я застрял в этой ошибке. У меня есть объект DailyRecord
, интерфейс DailyRecordDao
, DailyRecordDaoHibernate
класс и DRManagerImpl
класс.AppFuse: mvn jetty: run не может найти символ
Есть три метода в DailyRecordDao
:
package com.diary.dao;
import java.sql.Date;
import java.util.List;
import org.appfuse.dao.GenericDao;
import com.diary.model.DailyRecord;
public interface DailyRecordDao extends GenericDao<DailyRecord, Long> {
public List<DailyRecord> getDailyRecordsFrom(Date date, Long memberID);
public DailyRecord getTodayDailyRecord(Long memberID);
public DailyRecord getDailyRecord(Long memberID);
}
здесь является DailyRecordDaoHibernate
, который реализует этот интерфейс
package com.diary.dao;
import java.sql.Date;
import java.util.Calendar;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.appfuse.dao.hibernate.GenericDaoHibernate;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import com.diary.model.DailyRecord;
@Repository("dailyRecordDao")
public class DailyRecordDaoHibernate extends GenericDaoHibernate<DailyRecord, Long>
implements DailyRecordDao {
public DailyRecordDaoHibernate() {
super(DailyRecord.class);
}
@Override
public List<DailyRecord> getDailyRecordsFrom(Date date, Long memberID) {
// TODO Auto-generated method stub
return null; //this isn't importat right now
}
@Override
public DailyRecord getTodayDailyRecord(Long memberID) {
return null; //again not important, but this method works well when called in DRManagerImpl
}
@Override
public DailyRecord getDailyRecord(Long memberID) {
// TODO Auto-generated method stub
return null; //this method causes the problem
}
}
А вот менеджер:
package com.diary.service;
import java.sql.Date;
import java.util.List;
import org.appfuse.service.impl.GenericManagerImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.diary.dao.DailyRecordDao;
import com.diary.model.DailyRecord;
@Service("drm")
public class DRManagerImpl extends GenericManagerImpl<DailyRecord, Long> implements
DRManager {
private DailyRecordDao drDao;
@Autowired
public DRManagerImpl(DailyRecordDao dailyRecordDao) {
this.drDao = dailyRecordDao;
}
@Override
public List<DailyRecord> getAll() {
// TODO Auto-generated method stub
return drDao.getAll();
}
@Override
public List<DailyRecord> getDailyRecordsFrom(Date date, Long memberID) {
// TODO Auto-generated method stub
return drDao.getDailyRecordsFrom(date, memberID);
}
@Override
public DailyRecord getTodayDailyRecord(Long memberID) {
// TODO Auto-generated method stub
// return drDao.getTodayDailyRecord(memberID); this works
return drDao.getDailyRecord(memberID); //this will cause the error
}
}
Когда я пытаюсь запустите приложение с помощью mvn jetty:run
Я получаю эту ошибку
[ERROR] COMPILATION ERROR :
[INFO] --------------------------------------
[ERROR] .../web/src/main/java/com/diary/service/DRManagerImpl.java[46,29] cannot find symbol
symbol: method getDailyRecord(java.lang.Long)
location: variable drDao of type com.diary.dao.DailyRecordDao
Но если раскомментировать getTodayDailyRecord()
менеджер и комментировать getDailyRecord()
метод, everythig работает. Я думаю, что это имеет какое-то отношение к dependecies, но я действительно не уверен, так как это действительно запутывает для меня. Я уже пробовал mvn clean compile
на веб-и основных каталогах, удалив папки target
в этих каталогах, а затем снова перекомпилируем их, но все равно не повезло. Буду признателен за любую помощь.
Вы должны сделать «mvn install» в своем основном проекте, чтобы ваш веб-проект забрал его. –
Ах, я думал, что мне нужно только это сделать, попрошайничать проект, спасибо вам очень много! –