Исключение файла не найдено - PullRequest
1 голос
/ 10 августа 2011

Я вызываю метод getBanks () (расположенный внутри BankService) из моего приложения Flex.Вот класс BankService:

@org.springframework.stereotype.Service("com.apollo.counterpartcontacts.service.BankService")
@org.springframework.flex.remoting.RemotingDestination("com.apollo.counterpartcontacts.service.IBankService")
public class BankService extends _BankService {

    private Logger logger = LoggerFactory.getLogger(getClass());
    private ApplicationContext  applicationContext;
    private List<String> configHostResources = new ArrayList<String>();
    private List<String> configResources = new ArrayList<String>();

    private PersistenceManager persistenceManager;

    @BeforeClass
    public void beforeClass() {
        try {
            addConfigResource("application.xml");
            addConfigHostResource("application.xml");
        }
        catch (UnknownHostException e) {
            logger.error("Error loading host specific resource", e);
        }
        List<String> aList = new ArrayList<String>();
        aList.addAll(configHostResources);
        aList.addAll(configResources);
        String[] aConfigArray = new String[aList.size()];
        aConfigArray = aList.toArray(aConfigArray);
        applicationContext = new ClassPathXmlApplicationContext(aConfigArray);

        persistenceManager = (PersistenceManager) applicationContext.getBean("persistenceManager");
    }
        void addConfigResource(String aConfigName) {
            logger.info("Adding a config: " + aConfigName);
            configResources.add(aConfigName);
        }

        public void addConfigHostResource(final String theSuffix) throws UnknownHostException {
            String aHostName = InetAddress.getLocalHost().getHostName();
            String aConfigName = aHostName.toLowerCase() + "." + theSuffix;
            logger.info("Adding a host config: " + aConfigName);
            configHostResources.add(aConfigName);
        }

    private org.springframework.orm.hibernate3.HibernateTemplate hibernateTemplate;

    @org.springframework.beans.factory.annotation.Autowired
    public void setHibernateTemplate(org.springframework.orm.hibernate3.HibernateTemplate hibernateTemplateValue) {
        hibernateTemplate = hibernateTemplateValue;
    }

    public org.springframework.orm.hibernate3.HibernateTemplate getHibernateTemplate() {
        return hibernateTemplate;
    }

    public List getBanks(){
        beforeClass();
        List allBanks = persistenceManager.getBanks();
        return allBanks;
    }

}

Проблема в том, что вызов beforeClass () выдает следующую ошибку:

flex.messaging.MessageException: org.springframework.beans.factory.BeanDefinitionStoreException : IOException parsing XML document from class path resource [apnycdtg7qgcq1.application.xml]; nested exception is java.io.FileNotFoundException: class path resource [apnycdtg7qgcq1.application.xml] cannot be opened because it does not exist

Любопытно, что apnycdtg7qgcq1.application.xmlнаходится в моей папке src, там же, где, как утверждает ошибка, она ищет. Кто-нибудь видит проблему здесь?

1 Ответ

0 голосов
/ 10 августа 2011

Слово "ресурс", как в addConfigResource и addConfigHostResource, обычно означает ресурс пути к классам. Аналогично, ClassPathXmlApplicationContext ожидает файлы контекста Spring на пути к классам. Попробуйте переместить файл в путь к классам, и он должен работать.

Если вы пользователь Maven , это означает перемещение его на src/main/resources. Если вы создаете что-то другое, переместите файл туда, где этот инструмент ожидает ресурсов, или убедитесь, что при компиляции он копирует XML-файлы в путь к классам (обычно там, где создаются ваши файлы .class). *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...