-1

When I am executing my code through eclipse it works fine, but when i am trying to execute my code through .jar file generated it shows error "Could not resolve view with name 'success' in servlet with name 'dispatcherServlet'"

the view should be resolved through tiles-main.xml instead it try to resolve the view through "InternalResourceViewResolver"

here is my configuration file

@Configuration
@EnableWebMvc
@ComponentScan("com.xyz.abc")
public class WebMvcConfig extends WebMvcConfigurerAdapter {




     @Bean
        public UrlBasedViewResolver setupviewResolver() {
            UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
            viewResolver.setViewClass(TilesView.class);
            return viewResolver;
        }

        /*@Bean
        InternalResourceViewResolver viewResolver(){
            InternalResourceViewResolver  resolver=new InternalResourceViewResolver();
            resolver.setPrefix("/WEB-INF/pages/");
            resolver.setSuffix(".jsp");
            return resolver;

        }*/


     @Bean
     public TilesViewResolver tilesViewResolver() {
         final TilesViewResolver resolver = new TilesViewResolver();
         resolver.setPrefix("/WEB-INF/tiles/pages");
         resolver.setViewClass(TilesView.class);
         return resolver;
     }

     @Bean
        public TilesConfigurer tilesConfigurer() {
            TilesConfigurer tilesConfigurer = new TilesConfigurer();
            tilesConfigurer.setDefinitions(new String[] { "file:src/main/webapp/WEB-INF/tiles/tiles-main.xml" });
            tilesConfigurer.setCheckRefresh(true);
            return tilesConfigurer;
        }

        @Override
        public void configureDefaultServletHandling(
                DefaultServletHandlerConfigurer configurer) {
            configurer.enable();
        }


}
Xstian
  • 8,184
  • 10
  • 42
  • 72
Nil
  • 195
  • 3
  • 8
  • You are using Spring Boot that already configures things for you. Remove `@EnableWebMvc`. The component scan should already be done through the `@SpringBootApplication` annotation. Why do you have 2 competing view resolvers? Remove the `UrlBasedViewResolver` and set the `order` property of the `TilesViewResolver` to `-1` – M. Deinum Dec 17 '15 at 12:15
  • In my case I had the same problem with tiles configuration. In jar packaging src/main/webapp folder won't be included. I added : war and running like before : java -jar myproject.war – Tomasz Nov 08 '22 at 06:59
  • getting same issue, it is working in eclipse , but not working in jar execution. any idea..?? – jaleel Mar 19 '23 at 14:34

1 Answers1

0

Looks to me like your tiles configuration file is not referenced properly. The location file:src/main/webapp/WEB-INF/tiles/tiles-main.xml is usually not accessible from a deployed web application.

Try this instead:

tilesConfigurer.setDefinitions(new String[] { "/WEB-INF/tiles/tiles-main.xml" });
Fritz Duchardt
  • 11,026
  • 4
  • 41
  • 60