2014-08-30 86 views
3

我創建了一個春天啓動應用程序,然後我創建了一個戰爭。WAR含春啓動應用程序手動部署在tomcat的openshift不起作用

在我的本地服務器上的應用程序正常工作。

我通過重命名它ROOT.war,用git把它在webapps目錄下,並重新啓動服務器添加這個應用程序到JBOSSEWS墨盒。

但我始終沒有找到404。

將tomcat日誌:

new-host-3:jbossews JARVIS$ rhc tail jbossews 
Aug 30, 2014 3:27:25 AM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.54 
Aug 30, 2014 3:27:25 AM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive /var/lib/openshift/540178a84382ec94b8000b75/app-  root/runtime/dependencies/jbossews/webapps/ROOT.war 
Aug 30, 2014 3:27:37 AM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deployment of web application archive /var/lib/openshift/540178a84382ec94b8000b75/app-root/runtime/dependencies/jbossews/webapps/ROOT.war has finished in 11,864 ms 
Aug 30, 2014 3:27:37 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-127.10.90.1-8080"] 
Aug 30, 2014 3:27:37 AM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 12059 ms 
+0

你localy調用哪個URL,以及一個上JBOSSEWS? – Ralph 2014-08-30 07:56:54

+0

本地:localhost:8080 /問候語。在線:jbossews-flco.rhcloud.com/greeting。 – 2014-08-30 10:14:09

+0

'/ ROOT.war'可用'/'我懷疑你把它從'greeting.war'改名爲'ROOT.war'? – 2014-09-01 05:43:31

回答

0

請確保您刪除的pom.xml文件和src /目錄,這樣,當你做一個混帳推它將部署ROOT.war文件。你可以看看這個知識庫文章瞭解更多信息:https://help.openshift.com/hc/en-us/articles/202399740-How-to-deploy-pre-compiled-java-applications-WAR-and-EAR-files-onto-your-OpenShift-gear-using-the-java-cartridges

+0

我用這個帖子來說明我的戰爭OpenShift,我很好地刪除了pom.xml和src目錄。我試着用tomcat和jboss,問題是一樣的。 – 2014-09-03 05:58:09

+0

你的代碼是否公開發布? Spring Boot應用程序是否可以在您的本地開發服務器上運行? – 2014-09-03 12:58:04

+0

不是代碼不公開(沒興趣),它是一個非常簡單的彈簧啓動項目,用於測試Openshift上的彈簧啓動。 首先我做了這個[project](http://spring.io/guides/gs/serving-web-content/),然後我用這個[guide](http://spring.io/)將jar轉換成了一場戰爭。指南/ gs/convert-jar-to-war /),最後我使用這個[tuto]將戰爭放在OpenShift上(https://help.openshift.com/hc/en-us/articles/202399740-How-to -deploy-pre-compiled-java-applications-WAR-and-EAR-files-on-your-OpenShift-gears-using-the-java-cartridges)來自OpenShift。 .war在當地很好。 – 2014-09-03 15:27:14

0

我有同樣的問題,並能夠通過複製從原來的混帳回購的.openshift目錄到tar.gz.的回購文件夾來解決它所以,後來我的目錄結構看起來是這樣的:

myApp.tar.gz - dependencies - - jbossews - - - - webapps - - - - - ROOT.war - repo - - .openshift - - - - markers - - - - - java7 ...

我想在我的情況下,問題是,看到tomcat嘗試部署與JDK 1.6的應用程序,因爲這似乎是回退,當有在標記目錄中沒有java7文件...

2

確保您的主類應用擴展SpringBootServletInitializer

初始化servlet的

通過將其轉換爲不含XML文件的WAR文件,您需要向servlet容器發送與啓動應用程序不同的信號。

import org.springframework.boot.context.web.SpringBootServletInitializer; 

public class HelloWebXml extends SpringBootServletInitializer { 

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

} 

HelloWebXml是一個純Java類,它提供到創建web.xml的替代方法。它擴展了SpringServletInitializer課程。該擴展通過覆蓋方法提供了許多可配置的選項。

來源:Spring.io Guide

0

是有原因的:

  1. 檢查你不使用Java 8如果是把它轉化爲Java 7的或DIY。當你使用Java 8的容器不會部署戰爭(我自己測試過)。
  2. 使用SpringBootServletInitializer爲@Jakub說。
相關問題