2015-10-06 6 views
0

Я пытаюсь сделать некоторое базовое приложение в 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 в этих каталогах, а затем снова перекомпилируем их, но все равно не повезло. Буду признателен за любую помощь.

ответ

0

Хорошо, мне удалось заставить его работать. Без изменения ничего, я написал тест JUnit, который базовые тесты, если dailyRecordDao.getDailyRecord() возвращает null. Тест прошел, и все шло волшебным образом. Я не уверен, счастлив ли я или просто более смущен.

+1

Вы должны сделать «mvn install» в своем основном проекте, чтобы ваш веб-проект забрал его. –

+0

Ах, я думал, что мне нужно только это сделать, попрошайничать проект, спасибо вам очень много! –