2017-01-19 5 views
1

Die Frage am nächsten, die meine Symptome Stackoverflow erklärt ist hier - How can I deploy a Grails 3.0.1 war file in Tomcat7?404, wenn Grails 3.1.10 Krieg bereitstellen tomcat7 oder tomcat8

ich dabei bin Grails 2.3.4 Anwendung der Aktualisierung 3.1.10 auf Grails und Alles funktioniert mit 'Grails Run-App'.

Wenn ich in einem Krieg bereitstellen, bekomme ich nichts als 404 für jede URL.

Der Krieg entfaltet sich ohne irgendwelche Fehlermeldungen in catalina.out.

Die Tomcat Access Logs zeigen meine Zugriffsversuche. (nicht Linux-Problem?)

Ich kann auf den Tomcat-Manager, und der Tomcat-Manager zeigt meine App als "läuft" als wahr. (keine Fehler)

Der Manager zeigt myapp-0.1, weil die Datei war myapp-0.1.war .. das ist in Ordnung für jetzt.

Ich renne Grails 3.1.10.

Ich habe gegen Tomcat 7.0.55 sowie 8.0.92 versucht.

Ich habe versucht, grails.serverUrl in application.groovy zu verschiedenen Werten zu ändern. Es ist jetzt:

//fix war name after get working 
grails.serverUrl = "/myapp-0.1" 
System.setProperty("server.contextPath","/myapp-0.1") 

Ich habe das oben ohne "-0.1" versucht. (Ich war überrascht zu erfahren, dies war notwendig - https://stackoverflow.com/a/23664531/104993)

Ich habe versucht, „org.springframework.boo:spring-boot-starter-tomcat“ von „kompiliert“ auf „zur Verfügung gestellt“ in der build.gradle Datei zu ändern.

Bitte lassen Sie mich wissen, was ich weiter ausführen muss. Es ist schwierig, Protokollausgaben und Konfigurationsdateien einzufügen. (Ich bin hinter einer Firewall)

+0

Überprüfen Sie Ihren Ordner "Webapps" in Ihrer Tomcat-Installation. Vielleicht haben Sie ein Problem mit dem Kontextpfad. Z.B. Wenn Ihre Server-URL "http://123.com/" heißt und Ihr Krieg "ROOT.war" hieß, wird es unter "webapps/ROOT" und online unter "http://123.com/" bereitgestellt. . Aber mit dem Namen "myapp.war" wird es im Ordner "webapps/myapp" und online mit dem Kontextpfad "http://123.com/myapp" bereitgestellt. – Mexx

+0

yea, der Krieg heißt myapp-0.1.war ... und scheint sich im richtigen Ordner unter webapps/myapp-0.1/https://foo.com:8443/myapp-0.1/ zu befinden, was der Kater ist Manager Links zu .. und es gibt eine 404. :(Danke, aber. – Kirby

Antwort

1

Sie fügen die folgende Aufgabe zu Ihrem build.gradle wird es den Krieg nennen, was immer Sie wollen:

task wrapper(type:Wrapper){ 
    war.archiveName='myWar.war' 
} 

Dann, wenn Sie es einsetzen sollten den richtigen Namen haben und Sie können zu https://localhost:8080/myWar gehen

+0

Es ist erschreckend zu denken, dass eine Grails 3 generiert (Grails create-app) build.gradle würde eine build.config enthalten, die nicht in den Krieg bauen würde out out of the box. Das hat mich weiter gebracht, aber ich würde gerne wissen warum. Das löste auch mein Kriegsnamenproblem! Danke. – Kirby

+0

In meinen Grails apps habe ich die erwähnten Zeilen nicht entfernt und es funktioniert perfekt Sei ein seltsames Verhalten, vielleicht kommt es auf die verwendete Tomcat-Version an. Kein Problem mit Tomcat 8.5.9 in meinem Fall. – Mexx

+0

Du hast recht. Es ist ein komisches Verhalten, aber ich habe es wieder eingefügt und es hat funktioniert. Ich habe es bearbeitet meine Antwort. –

Verwandte Themen