2016-09-11 1 views
0

Ich bin neu zu Spring Boot. Ich habe Kenntnisse über Spring mvc. Ich habe eine kleine Anwendung mit einem @RestController entwickelt, wie in Update unten erwähnt. Das funktioniert gut, wenn ich execute mvn spring-boot:run (dh. Eingebettet tomcat)REST Aufruf Spring Boot restController Ergebnisse 404 in Tomcat aber arbeitet in Embedded Tomcat

  1. Die gleichen REST Aufruf Ergebnisse in 404 not found, wenn ich als verpackte Krieg tomcat einzusetzen. Ziel-URL http://localhost:8086/myapp/demo gibt 404.

  2. Ich habe die log4j2.xml erstellt und als ich mit eingebetteten tomcat ausführen erstellt es die erwartete Protokolldatei, aber mit dem externen tomcat Einsatz ist es nicht die Protokolldatei zu erstellen, und ich weiß nicht finden alle Protokolle in einem der tomcat Protokolle unter <tomcat-dir>/logs

Was bin ich hier?

UPDATE:

Die Feder Starteintrag Punktklasse:

@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.. !!"; 
    } 
} 

Frühling Boot version => v1.3.2.RELEASE

Die Protokolle, wenn ich zu TCServer bereitstellen

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 

UPDATE1: Ich entfernte Eckig, hielt nur Spring Boot @re stcontroller. Problem existiert noch.

+0

Wie haben Sie die Kriegsdatei erstellt? über Maven? Hat es web.xml Datei? – notionquest

+0

Ja, ich erstelle über Maven und es hat keine web.xml – Sridhar

+0

@notionquest überprüfen Sie bitte Update in meiner Frage – Sridhar

Antwort

0

Dies war das Problem mit dem externen Tomcat-Zielserver, der auf JDK6 zeigte, aber meine Anwendung wurde mit jdk7 erstellt. Problem gelöst, wenn ich den externen Tomcat auf jdk7 zeige.

0

Sie können den Bereich des Tomcat-Embedded-Servers in Ihrer POM-Datei oder in einem nicht eingebetteten Tomcat-Container "bereitstellen", besser das JAR ausschließen (das Auskommentieren ist also ebenfalls eine gute Option) .

Ich hatte ein ähnliches Problem mit der alten v1.3.x von Spring BOOT konfrontiert. Ich habe dies in der neuen Version, d. H. V1.4.0, nicht beobachtet.

Ich nehme an, dass Sie Spring BOOT Eltern POM und "Spring-Boot-Starter" lib in Ihrem Projekt POM verwenden.

+0

Es ist bereits markiert zur Verfügung gestellt nur Umfang – Sridhar

+0

@Sridhar Okay. Darf nicht verwandt sein, sondern nur aus Neugier, warum müssen Sie die configure-Methode überschreiben? Ich habe es für keines meiner Projekte getan, um es zu beginnen. Offizielle Führer erwähnen es auch nicht https://spring.io/guides/gs/rest-service/ – Srikanta

Verwandte Themen