2016-09-11 2 views
0

저는 스프링 부트를 처음 사용합니다. 봄 mvc에 대한 지식이 있습니다. 나는 아래 Update에서 언급 한 것과 같이 하나의 @RestController로 작은 애플리케이션을 개발했다. 내가 mvn spring-boot:run (예. 임베디드 바람둥이)를 사용하여 실행할 때 내가 바람둥이에 포장 된 전쟁으로 배포 할 때이 404 not found스프링 부트로 REST 호출 RestController는 Tomcat에서 404가되지만 임베디드 톰캣에서 작동합니다.

  1. 같은 REST 호출 결과를 제대로 작동합니다. 대상 URL http://localhost:8086/myapp/demo 내가 log4j2.xml이 만든

  2. (404)를 제공하고 내가 임베디드 바람둥이로 실행할 때이 예상되는 로그 파일을 생성하지만 외부 바람둥이 배포를 너무 로그 파일을 작성하지 않고 내가 발견하지 않습니다 tomcat 로그에있는 로그는

여기에 무엇이 있습니까?

UPDATE :

스프링 부팅 진입 점 클래스 :

@SpringBootApplication 
@RestController 
public class App extends SpringBootServletInitializer { 
    public static void main(String[] args) { 
     SpringApplication.run(App.class, args); 
    } 

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

    @RequestMapping("/demo") 
    public String demo() { 
     return "Helloo.. !!"; 
    } 
} 

봄 부트 버전 => v1.3.2.RELEASE

내가
INFO: Deploying web application archive C:\Users\a\vfabric-tc-server\vm1\webapps\myapp.war 
Sep 12, 2016 5:07:23 PM org.apache.catalina.loader.WebappClassLoader validateJarFile 
INFO: validateJarFile(C:\Users\a\vfabric-tc-server\vm1\webapps\myapp\WEB-INF\lib\tomcat-embed-el-8.0.30.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/el/Expression.class 
Sep 12, 2016 5:07:24 PM org.apache.catalina.startup.TldConfig execute 
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
Sep 12, 2016 5:07:24 PM org.apache.catalina.core.ApplicationContext log 
INFO: Spring WebApplicationInitializers detected on classpath: [org.springframework.boot.autoconfigure[email protected]47b35d] 
Sep 12, 2016 5:07:24 PM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deployment of web application archive C:\Users\a\vfabric-tc-server\vm1\webapps\myapp.war has finished in 1,913 ms 
tcServer

에 배포

로그를

UPDATE1 : 각도를 제거하고 스프링 부트 만 유지합니다. @re stcontroller. 문제가 여전히 존재합니다.

+0

war 파일을 어떻게 만들었습니까? 메이븐을 통해? web.xml 파일이 있습니까? – notionquest

+0

예 maven을 통해 생성 중이며 web.xml이 없습니다. – Sridhar

+0

@notionquest 제 질문에서 업데이트를 확인하십시오. – Sridhar

답변

0

이것은 대상 외부 Tomcat 서버가 JDK6을 가리키는 문제 였지만 내 응용 프로그램은 jdk7을 사용하여 빌드되었습니다. 일단 외부 Tomcat을 jdk7으로 지정하면 문제가 해결됩니다.

0

Tomcat 내장 서버의 범위를 POM 파일에서 "제공됨"으로 변경하거나 포함되지 않은 Tomcat 컨테이너에 배포 할 때 JAR을 제외하는 것이 더 나을 수 있습니다 (주석 처리도 좋은 옵션입니다) .

이전 버전의 Spring BOOT v1.3.x에서도 비슷한 문제가 발생했습니다. 새 버전 v1.4.0에서는이 점을 발견하지 못했습니다.

당신은 프로젝트 POM에서 Spring BOOT 부모 POM과 "spring-boot-starter"lib를 사용하고 있다고 가정합니다.

+0

제공된 범위로 이미 표시되어 있습니다. – Sridhar

+0

@Sridhar 좋습니다. 관련성이 없지만 호기심에서 벗어난 이유는 무엇입니까? 왜 configure 메소드를 오버라이드해야합니까? 나는 그것을 시작하게하는 나의 프로젝트를 위해 그것을하지 않았다. 공식 가이드는 그것도 언급하지 않습니다 https://spring.io/guides/gs/rest-service/ – Srikanta

관련 문제