2013-12-18 4 views
11

Я пытаюсь запустить простое приложение с конфигурацией на основе java java, основанной на java, но без успеха. Это приложение прекрасно работает как на причале, так и в котле. Журнал jboss выглядит хорошо, поскольку он показывает мне некоторые успешные сопоставления и т. Д., Но я получил 404, пытаясь получить доступ к URL-адресу.Spring Java Config vs Jboss 7

Вот мой код:

Initializer

@Order(1) 
public class Initializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

    @Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class<?>[] {RootConfig.class}; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return new Class<?>[] {WebAppConfig.class}; 
    } 

    @Override 
    protected String[] getServletMappings() { 
     return new String[] {"/"}; 
    } 

    @Override 
    protected void customizeRegistration(ServletRegistration.Dynamic registration) { 
     registration.setInitParameter("dispatchOptionsRequest", "true"); 
    } 
} 

RootConfig

@Configuration 
@ComponentScan(value = "com.test.config", excludeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, value = RootConfig.class)) 
public class RootConfig { 

} 

WebAppConfig

@Configuration 
@ComponentScan("com.test") 
@EnableWebMvc 
@EnableSpringDataWebSupport 
public class WebAppConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
    } 

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

    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/").setViewName("index"); 
    } 

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

А теперь JBoss журнал ...

17:08:53,645 INFO [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/test]] (MSC service thread 1-8) Spring WebApplicationInitializers detected on classpath: [[email protected]] 
17:08:53,767 INFO [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/test]] (MSC service thread 1-8) Initializing Spring root WebApplicationContext 
17:08:53,768 INFO [org.springframework.web.context.ContextLoader] (MSC service thread 1-8) Root WebApplicationContext: initialization started 
17:08:53,770 INFO [org.springframework.web.context.support.AnnotationConfigWebApplicationContext] (MSC service thread 1-8) Refreshing Root WebApplicationContext: startup date [Wed Dec 18 17:08:53 BRST 2013]; root of context hierarchy 
17:08:53,843 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning 
17:08:53,846 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-330 'javax.inject.Named' annotation found and supported for component scanning 
17:08:53,847 INFO [org.springframework.web.context.support.AnnotationConfigWebApplicationContext] (MSC service thread 1-8) Registering annotated classes: [class br.com.cleartech.config.RootConfig] 
17:08:53,915 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning 
17:08:53,916 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-330 'javax.inject.Named' annotation found and supported for component scanning 
17:08:53,977 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning 
17:08:53,978 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-330 'javax.inject.Named' annotation found and supported for component scanning 
17:08:54,130 INFO [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] (MSC service thread 1-8) JSR-330 'javax.inject.Inject' annotation found and supported for autowiring 
17:08:54,153 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] (MSC service thread 1-8) Pre-instantiating singletons in org.s[email protected]52477602: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,rootConfig,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,log4j,webAppConfig,homeController,consoleAppender,fileAppender,registerSpringLogger,org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration,mvcValidator,simpleControllerHandlerAdapter,beanNameHandlerMapping,httpRequestHandlerAdapter,mvcContentNegotiationManager,requestMappingHandlerMapping,resourceHandlerMapping,requestMappingHandlerAdapter,mvcConversionService,viewControllerHandlerMapping,defaultServletHandlerMapping,handlerExceptionResolver,org.springframework.data.web.config.SpringDataWebConfiguration,pageableResolver,sortResolver,setupViewResolver]; root of factory hierarchy 
17:08:54,269 INFO [org.hibernate.validator.util.Version] (MSC service thread 1-8) Hibernate Validator 4.2.0.Final 
17:08:54,388 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-8) Mapped "{[/teste],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String br.com.cleartech.controller.HomeController.teste() 
17:08:54,404 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] (MSC service thread 1-8) Mapped URL path [/resources/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
17:08:54,631 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] (MSC service thread 1-8) Root mapping to handler of type [class org.springframework.web.servlet.mvc.ParameterizableViewController] 
17:08:54,634 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] (MSC service thread 1-8) Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler] 
17:08:54,668 INFO [org.springframework.web.context.ContextLoader] (MSC service thread 1-8) Root WebApplicationContext: initialization completed in 899 ms 
17:08:54,675 INFO [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/test]] (MSC service thread 1-8) Initializing Spring FrameworkServlet 'dispatcher' 
17:08:54,676 INFO [org.springframework.web.servlet.DispatcherServlet] (MSC service thread 1-8) FrameworkServlet 'dispatcher': initialization started 
17:08:54,679 INFO [org.springframework.web.context.support.AnnotationConfigWebApplicationContext] (MSC service thread 1-8) Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Wed Dec 18 17:08:54 BRST 2013]; parent: Root WebApplicationContext 
17:08:54,681 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning 
17:08:54,682 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-330 'javax.inject.Named' annotation found and supported for component scanning 
17:08:54,683 INFO [org.springframework.web.context.support.AnnotationConfigWebApplicationContext] (MSC service thread 1-8) Registering annotated classes: [class br.com.cleartech.config.WebAppConfig] 
17:08:54,685 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning 
17:08:54,686 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-330 'javax.inject.Named' annotation found and supported for component scanning 
17:08:54,698 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning 
17:08:54,699 INFO [org.springframework.context.annotation.ClassPathBeanDefinitionScanner] (MSC service thread 1-8) JSR-330 'javax.inject.Named' annotation found and supported for component scanning 
17:08:54,759 INFO [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] (MSC service thread 1-8) JSR-330 'javax.inject.Inject' annotation found and supported for autowiring 
17:08:54,786 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] (MSC service thread 1-8) Pre-instantiating singletons in org.s[email protected]12f882f3: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,webAppConfig,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,log4j,rootConfig,homeController,consoleAppender,fileAppender,registerSpringLogger,org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration,mvcValidator,simpleControllerHandlerAdapter,beanNameHandlerMapping,httpRequestHandlerAdapter,mvcContentNegotiationManager,requestMappingHandlerMapping,resourceHandlerMapping,requestMappingHandlerAdapter,mvcConversionService,viewControllerHandlerMapping,defaultServletHandlerMapping,handlerExceptionResolver,org.springframework.data.web.config.SpringDataWebConfiguration,pageableResolver,sortResolver,setupViewResolver]; parent: org.s[email protected]52477602 
17:08:54,885 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-8) Mapped "{[/teste],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String br.com.cleartech.controller.HomeController.teste() 
17:08:54,891 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] (MSC service thread 1-8) Mapped URL path [/resources/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
17:08:54,927 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] (MSC service thread 1-8) Root mapping to handler of type [class org.springframework.web.servlet.mvc.ParameterizableViewController] 
17:08:54,931 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] (MSC service thread 1-8) Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler] 
17:08:54,962 INFO [org.springframework.web.servlet.DispatcherServlet] (MSC service thread 1-8) FrameworkServlet 'dispatcher': initialization completed in 285 ms 
17:08:54,977 INFO [org.jboss.web] (MSC service thread 1-8) JBAS018210: Registering web context: /test 
17:08:54,985 INFO [org.jboss.as] (MSC service thread 1-5) JBAS015951: Admin console listening on http://127.0.0.1:9990 
17:08:54,986 INFO [org.jboss.as] (MSC service thread 1-5) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 8333ms - Started 377 of 455 services (77 services are passive or on-demand) 
17:08:55,175 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "test.war" 

Как вы можете видеть, это, кажется, хорошо, так как я получил некоторые из них:

Spring WebApplicationInitializers detected on classpath 
Initializing Spring root WebApplicationContext 
Root WebApplicationContext: initialization started 
Mapped URL path [/resources/**] 
Mapped URL path [/**] 
Registering web context: /test 
JBAS018559: Deployed "test.war" 

Но при попытке получить доступ к Localhost: 8080/тест или даже простой остальные объявлены в контроллер я получил 404.

заранее спасибо Тьяго

+0

Что происходит, когда вы пытаетесь получить доступ к консоли администрирования athttp: //127.0.0.1: 9990? – kosa

+0

У вас есть обработчики для '/'? –

+0

@Nambari, работает отлично, появляется JBoss консоли администратора ... –

ответ

9

У меня была аналогичная проблема с проектом Spring MVC, развернутым в JBoss 7.1 без web.xml.

В соответствии с Spring javadocs для WebApplicationInitializer старые версии Tomcat (< = 7.0.14) не могут быть отображены на «/» программно. Более старые версии JBoss AS 7 имеют такой же недостаток.

Это был источник моей проблемы. Я регистрировал сервлет через «/», но JBoss EAP 6.4 не поддерживает это отображение программно. Он работает только через web.xml. Я все еще хотел использовать программную конфигурацию, поэтому я изменил отображение на «/ *» вместо «/», и он исправил мою проблему.

public class WebApplicationInitializerImpl implements WebApplicationInitializer { 

    @Override 
    public void onStartup(ServletContext container) throws ServletException { 
     WebApplicationContext context = getContext(); 

     Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet(context)); 
     registration.setLoadOnStartup(1); 
     registration.addMapping("/*"); 
    } 

    private WebApplicationContext getContext() { 
     AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); 
     context.setConfigLocation(AppConfig.class.getName()); 
     return context; 
    } 

} 

Примечание: эта конфигурация несовместима с представлениями JSP. «/ *» заменит сервлет сервлета контейнера JSP Servlet. Если вы все еще полагаетесь на представления JSP, я бы рекомендовал использовать web.xml для настройки DispatcherServlet вместо для выполнения программно; Конфигурация web.xml работает с «/» правильно.

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value></param-value> 
    </init-param> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
+0

Решает проблему, добавив «/ *»? –

+1

Да, извините, если это было непонятно. –

+0

Вызов нового 'AnnotationConfigWebApplicationContext()' в подклассе 'SpringBootServletInitializer' заставляет все объекты аннотированных объектов' @ Component' дважды создаваться (см. Мой ответ, как этого избежать). – Loedolff

1

Ну, для кого-то, кто сталкивается с этой проблемой, она просто отлично работает на новом Wildfly. Если у вас нет конкретного контейнера для запуска вашего приложения, вы можете выбрать между jboss 7 и wildfly И хочет запустить Spring java config, попробовать его на wildfly!

+1

Он также работает для меня на EAP 6.2 (который, как я думаю, AS 7.3). Проблема заключается в том, что сопоставление «/» (по умолчанию сервлет) не рассматривается как неявное JBoss 7.1 (но это Tomcat и Jetty), но только при использовании конфигурации Java не web.xml. Weird. –

+1

Коррекция, это не работает для меня с EAP 6.2. JBoss AS 7 - это ошибка. Wildfly (AS 8) работает для меня. Или вы можете испортить конфигурацию контейнера в AS 7 (например, установите 'enable-welcome-root =" false "' в 'standalone.xml'). –

9

У нас есть пружинные ботинки (1.1.4) проекта по JBoss EAP 6.2 (требования моего клиента ...)

Я нашел решение, чтобы запустить его на JBoss EAP 6.2.0 GA и сохраняйте возможность запускать контейнер Apache Tomcat 7.

Первоначально мой проект запускается во встроенном режиме, поэтому мне нужно создать и изменить некоторые файлы для запуска на контейнерах.

Для запуска на сервере Tomcat в качестве корневого приложения Я создал context.xml: /src/main/webapp/META-INF/context.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Context antiJARLocking="true" path=""/> 

Для запуска на JBOSS EAP 6.2.0 Г.А. в качестве корня приложения я создал JBoss-web.xml: /src/main/webapp/WEB-INF/jboss-web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-web> 
    <context-root>/</context-root> 
</jboss-web> 

Я создал класс, потому что отображение JBoss сервлет работает/*, но не с/:

import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRegistration.Dynamic; 
import org.springframework.boot.builder.SpringApplicationBuilder; 
import org.springframework.boot.context.web.SpringBootServletInitializer; 
import org.springframework.web.context.WebApplicationContext; 
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; 
import org.springframework.web.servlet.DispatcherServlet; 

/** 
* Working without web.xml with container (not em,bedded mode). 
* JBOSS EAP 6.2 specific: you need to map dispatcherServlet to /* . 
*/ 
public class ContainerWebXml extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(TomcatStart.class); 
    } 

    /** 
    * JBOSS EAP 6.2 mapping. 
    * 
    * @param container 
    * @throws ServletException 
    */ 
    @Override 
    public void onStartup(ServletContext container) throws ServletException { 
     WebApplicationContext context = getContext(); 

     Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet(context)); 
     registration.setLoadOnStartup(1); 
     registration.addMapping("/*"); // required JBOSS EAP 6.2.0 GA 
     super.onStartup(container); 
    } 

    private WebApplicationContext getContext() { 
     AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); 
     context.setConfigLocation(TomcatStart.class.getName()); 
     return context; 
    } 

} 

Не забудьте позвонить super.onStartup (контейнер);

Изменения в pom.xml:

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 

Если вы используете spring.profile, чем вам нужно установить как окр. переменная.

Я бегу JBoss EAP 6.2.0 GA в автономном режиме:

export JAVA_OPTS="-Dspring.profiles.active=local" 
.../jboss-eap-6.2/bin/standalone.sh 

Если вы работать на Tomcat, то не забудьте установить -Dspring.profiles.active = локальный

Как я вижу, параметр server.port будет игнорироваться при запуске на контейнере.

+0

Я приму свой ответ, потому что сегодня я больше не работаю с Spring Java Config без Spring Boot, ну, а кто? Во всяком случае, с Spring Boot мы можем легко достичь этих решений. Большой! =) –

+1

Вызов нового 'AnnotationConfigWebApplicationContext()' в подклассе 'SpringBootServletInitializer' заставляет все объекты аннотированных объектов' @ Component' дважды запускаться (см. Мой ответ, как этого избежать). – Loedolff

+0

@ thiago-pereira, я бы с уважением утверждал, что этот ответ не подходит для заданного вопроса. Речь идет о Spring Java Config, а не Spring Boot. Я считаю, что мой ответ по-прежнему лучше решает проблему в отношении Spring Java Config. Я также обновил его для решения проблем с JSP. http://stackoverflow.com/a/22395946/428628 –

2

В соответствии с ответами Майкла Р и Иштвана Пато, отображение сервлетов в JBoss должно быть «/ *», а не «/». Однако другие решения заставляют аннотированные объекты @Component дважды создаваться. Следующее решает двойную инициализацию первого вызова super.onStartup, а затем добавить еще одно отображение для диспетчера сервлета:

public class WebApplicationInitializerImpl implements WebApplicationInitializer { 
    @Override 
    public void onStartup(ServletContext container) throws ServletException { 
     super.onStartup(container); 

     Dynamic registration = (Dynamic) container.getServletRegistration(EmbeddedWebApplicationContext.DISPATCHER_SERVLET_NAME); 
     registration.setLoadOnStartup(1); 
     registration.addMapping("/*"); 
    } 
} 
10

я использовал @SpringBootApplication

Как я прочитал в этой теме мне нужно:

Измените отображение DispatcherServlet на «/ *» вместо «/» (добавив @Bean типа ServletRegistrationBean с сервлетом с именем «dispatcherServlet»)

В этот адрес я нашел решение код: Add Servlet Mapping to dispatch servlet

@SpringBootApplication 
public class Application extends SpringBootServletInitializer { 

    @Bean 
    public DispatcherServlet dispatcherServlet() { 
     return new DispatcherServlet(); 
    } 

    /** 
    * Register dispatcherServlet programmatically 
    * 
    * @return ServletRegistrationBean 
    */ 
    @Bean 
    public ServletRegistrationBean dispatcherServletRegistration() { 
     ServletRegistrationBean registration = new ServletRegistrationBean(
       dispatcherServlet(), "/*"); 
     registration 
       .setName(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME); 
     return registration; 
    } 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(Application.class); 
    } 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

} 
+0

В то время, когда это было написано, я не использовал весенний ботинок. Сегодня с ним все выглядит проще :) –

+0

Да, весенний ботинок велик! Я запускал и тестировал свое приложение локально внутри встроенного tomcat, но когда я развернулся к JBoss, у меня была такая же проблема. Итак, прочитав вашу нить и нашел решение, решил опубликовать еще один ответ, чтобы помочь другим парням, если бы имели такие же проблемы в будущем;) –

+0

Да, это здорово, на самом деле эта тема помогает парням, которые есть и не используют весеннюю загрузку ... Хотя его очень рекомендую идти на загрузку :) –

2

Я использую JBoss EAP 6.4. Я проходил через нить.

Я хотел бы добавить, что после изменения отображения для dispatchServlet с "/" на "/ *". JSP в вашем проекте может работать неправильно. Я подозреваю, что поскольку «/ *» имеют больше приоритета над «/*.jsp», поэтому JSPServlet может не получить запрос на обработку JSP, и JSP не будет обрабатываться правильно.В моем случае источник JSP поступает в браузер как текст.

Я решил эту проблему, указав JSP как сервлет в web.xml, как указано ниже. После этого все работало нормально для меня :)

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

<servlet> 
    <servlet-name>LoginServlet</servlet-name> 
    <jsp-file>/login.jsp</jsp-file> 
</servlet> 

<servlet> 
    <servlet-name>IndexServlet</servlet-name> 
    <jsp-file>/index.jsp</jsp-file> 
</servlet> 
<!--mapping --> 
<servlet-mapping> 
    <servlet-name>LoginServlet</servlet-name> 
    <url-pattern>/login.jsp</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>IndexServlet</servlet-name> 
    <url-pattern>/index.jsp</url-pattern> 
</servlet-mapping> 

Я потратил много времени на это, может помочь кому-то :))

+0

Я думаю, вы прибивали аргументы в пользу того, почему JSP больше не работают. Однако, если вы уже смирились с настройкой развертывания через web.xml, вы также можете настроить DispatcherServlet. Эта ошибка tomcat применяется только для регистрации программ, а не для регистрации web.xml. У меня будет более подробная информация о моем ответе. –

7

Я использую Spring бутс 1.3.1 и JBoss EAP 6.4. И я нашел с этим в проекте вы можете добавить в SRC/главная/ресурсы/application.properties этой линии:

server.servlet-path=/* 

Кроме того, если вы запускаете это из Eclipse, не забудьте очистить ваш проект. .. Я взорвал много времени из-за этого.

1

У меня были аналогичные проблемы с JBoss 6.4.0. и Spring Boot 1.3 в сочетании с Tiles 3. После установки Jboss-патча jboss-eap-6.4.6-patch.zip проблемы были решены.

После заплат мне не нужно использовать настройки server.servlet-путь =/*

+0

Интересная находка. Бьюсь об заклад, патч включает исправление tomcat от версии 7.14. К сожалению, это немного больно для исправления EAP 6.4, и JBoss не предлагает исправленную версию в свободно загружаемой форме. –