2015-01-22 5 views
0

У меня есть приложение с пружинной загрузкой, упакованное как исполняемый файл warfile, поддерживающий встроенный tomcat с пружинным mvc, jsp и плитками.Как запустить встроенный tomcat с плиткой в ​​eclipse?

При запуске встроенного веб-приложения в оболочке с java -jar app.war, я получаю, что служба работает успешно. Вместо этого, когда я пытаюсь запустить конфигурацию запуска внутри затмения, Спринт-загрузка не может выполнить инициализацию плитки, с этим исключением:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tilesConfigurer' defined in class path resource [au/com/inspiredgroup/config/MvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: No URL for class path resource [WEB-INF/tiles.xml] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:688) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:958) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:947) 
    at au.com.inspiredgroup.Application.main(Application.java:86) 
Caused by: java.lang.IllegalArgumentException: No URL for class path resource [WEB-INF/tiles.xml] 
    at org.springframework.web.servlet.view.tiles3.SpringWildcardServletTilesApplicationContext.getResources(SpringWildcardServletTilesApplicationContext.java:96) 
    at org.springframework.web.servlet.view.tiles3.TilesConfigurer$SpringTilesContainerFactory.getSources(TilesConfigurer.java:306) 
    at org.apache.tiles.factory.BasicTilesContainerFactory.createLocaleDefinitionDao(BasicTilesContainerFactory.java:182) 
    at org.apache.tiles.factory.BasicTilesContainerFactory.createDefinitionsFactory(BasicTilesContainerFactory.java:137) 
    at org.springframework.web.servlet.view.tiles3.TilesConfigurer$SpringTilesContainerFactory.createDefinitionsFactory(TilesConfigurer.java:354) 
    at org.apache.tiles.factory.BasicTilesContainerFactory.createContainer(BasicTilesContainerFactory.java:86) 
    at org.springframework.web.servlet.view.tiles3.TilesConfigurer$SpringTilesContainerFactory.createContainer(TilesConfigurer.java:297) 
    at org.apache.tiles.startup.AbstractTilesInitializer.createContainer(AbstractTilesInitializer.java:114) 
    at org.apache.tiles.startup.AbstractTilesInitializer.initialize(AbstractTilesInitializer.java:64) 
    at org.springframework.web.servlet.view.tiles3.TilesConfigurer.afterPropertiesSet(TilesConfigurer.java:271) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562) 
    ... 15 more 
Caused by: java.io.FileNotFoundException: class path resource [WEB-INF/tiles.xml] cannot be resolved to URL because it does not exist 
    at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:187) 
    at org.springframework.web.servlet.view.tiles3.SpringWildcardServletTilesApplicationContext.getResources(SpringWildcardServletTilesApplicationContext.java:91) 
    ... 26 more 

Это конфигурация MVC:

@EnableWebMvc 
@Configuration 
public class MvcConfiguration extends WebMvcConfigurerAdapter { 

    /** 
    * Basic setup for JSP views. 
    */ 
    @Bean(name = "viewResolver") 
    public InternalResourceViewResolver configureInternalViewResolver() { 
     final InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setPrefix(PREFIX); 
     resolver.setSuffix(SUFFIX); 
     resolver.setOrder(1); 
     return resolver; 
    } 

    @Bean 
    public TilesViewResolver tilesViewResolver() { 
     final TilesViewResolver tilesViewResolver = new TilesViewResolver(); 
     tilesViewResolver.setOrder(0); 
     return tilesViewResolver; 
    } 

    @Bean 
    public TilesConfigurer tilesConfigurer() { 
     final TilesConfigurer configurer = new TilesConfigurer(); 
     configurer.setDefinitions(new String[] { "classpath:/WEB-INF/tiles.xml" }); 
     return configurer; 
    } 
    [...] 
} 

Пусковыми в затмении настроен как обычное Java-приложение.

+0

Похож скорее проблемой затмения, чем весна/плитка. app.war я предполагаю, что включает в себя tiles.xml и что затмение классов использования – mck

+0

@mck yep определенно, как ни странно, вчера я получил сервер, работающий в eclipse после того, как Eclipse разбился, а затем перестала работать после первого пакета mvn. –

+0

Я сталкиваюсь с той же проблемой в идее intellij –

ответ

0

Это произошло для импортированного проекта, для которого настройки затмения не были распространены в репозитории управления версиями (понятно, что чаще всего это мудрая вещь (не), на мой взгляд); возможно, из-за этого, а может и нет, в любом случае использование архетипа maven для создания нового проекта не воспроизводит проблему.

Чтобы исправить мою установку в затмении, мне пришлось отредактировать конфигурацию запуска (для запуска как Java Application), перейдите на вкладку класса и нажмите кнопку «Дополнительно ...», затем «Добавить папку» и перейдите к добавить папку /src/main/webapp. Он будет добавлен в «Записи пользователя».

enter image description here

+0

ну, мне пришлось настроить новую среду для разработчиков в моем ноутбуке, и это было реплицировано с тем же проектом на eclipse 4.4.3 (релиз spring-boot 1.2.1). и эта страница помогла! –