2016-04-26 11 views
0

Я пытаюсь развернуть приложение для загрузки Spring Boot War (с изображениями Tiles) на JBoss EAP 6.4. Это приложение работает плавно на Tomcat 8, но когда я развертываю его на JBoss, он не отвечает. Журналы запуска в порядке, но когда я вызываю контроллер из браузера, я получаю ошибку JBWEB000065. Я как раз и развертываю с Eclipse STS, и ставил войну в автономные/развертывания.Spring Boot 1.3.3 Применение с плитками 3 на JBoss 6.4 - Ошибка JBWEB000065 - 404 Не найдено

pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.codependent.gitprofiles</groupId> 
    <artifactId>boot3</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>boot3</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.3.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

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

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

ServletInitializer:

public class ServletInitializer extends SpringBootServletInitializer { 

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

} 

Boot3Application:

@SpringBootApplication 
@RestController 
public class Boot3Application { 

    @RequestMapping("/home") 
    public String home(){ 
     return "home"; 
    } 

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

TilesConfiguration:

@Configuration 
public class TilesConfiguration { 

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

    @Bean 
    public TilesViewResolver tilesViewResolver() { 
     final TilesViewResolver resolver = new TilesViewResolver(); 
     resolver.setViewClass(TilesView.class); 
     return resolver; 
    } 

} 

Журналы запуска:

[org.jboss.web] (ServerService Thread Pool -- 80) JBAS018210: Registrar el contexto web: /boot3 
[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/boot3]] (ServerService Thread Pool -- 80) Spring WebApplicationInitializers detected on classpath: [org.springframework.boot.autoconfigure[email protected]57c6298e, [email protected]] 
[org.hibernate.validator.internal.util.Version] (background-preinit) HV000001: Hibernate Validator 4.3.2.Final-redhat-2 
[stdout] (ServerService Thread Pool -- 80) 
[stdout] (ServerService Thread Pool -- 80) . ____   _   __ _ _ 
[stdout] (ServerService Thread Pool -- 80) /\\/___'_ __ _ _(_)_ __ __ _ \ \ \ \ 
[stdout] (ServerService Thread Pool -- 80) (()\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 
[stdout] (ServerService Thread Pool -- 80) \\/ ___)| |_)| | | | | || (_| | )))) 
[stdout] (ServerService Thread Pool -- 80) ' |____| .__|_| |_|_| |_\__, |//// 
[stdout] (ServerService Thread Pool -- 80) =========|_|==============|___/=/_/_/_/ 
[stdout] (ServerService Thread Pool -- 80) :: Spring Boot ::  (v1.3.3.RELEASE) 
[stdout] (ServerService Thread Pool -- 80) 

[org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (ServerService Thread Pool -- 80) Mapped "{[/home]}" onto public java.lang.String com.codependent.gitprofiles.Boot3Application.home() 
... 

Вызов http://localhost:8080/boot3/home в браузере показывает следующее ничего появляющегося на бревнах JBoss;

JBWEB000065: HTTP Status 404 - /boot3/error 
JBWEB000309: type JBWEB000067: Status report 
JBWEB000068: message /boot3/error 
JBWEB000069: description JBWEB000124: The requested resource is not available. 
JBoss Web/7.5.7.Final-redhat-1 

UPDATE: Я нашел solution на Stackoverflow но это бесполезно в моем случае: с помощью server.servlet-path=/* приложение начинает обработку запросов, теперь контроллер запускается, но это не может оказать Tiles взгляды:

Cannot forward to error page for request [/home] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false 

Я проверил на Tomcat, что если я использую server-servlet-path/* это не работает, либо (с той же ошибкой), но это делает с /.

Подводя итог, в JBoss я не могу иметь как server.servlet-path=/* (чтобы разрешить вызов на контроллерах), так и server.servlet-path=/, чтобы разрешить просмотр фрагментов Tiles, так как я могу обойти эту проблему?

ответ

0

У меня была точная проблема. После установки патча Jboss jboss-eap-6.4.6-patch.zip проблема больше не возникает.

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

+0

Я собираюсь попробовать патч – codependent

 Смежные вопросы

  • Нет связанных вопросов^_^