2014-08-30 90 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说。
相关问题