Spring boot Spring引导应用程序无法在openshift中启动

Spring boot Spring引导应用程序无法在openshift中启动,spring-boot,openshift,Spring Boot,Openshift,我用DIY盒带创建了openshift项目,为DB添加了postresql。。现在我把源代码推到了云上,但我得到了和这里的家伙一样的错误(但他没有使用springboot): 很明显,如果我运行两次应用程序,就会出现错误消息“启动与ProtocolHandler关联的端点失败”。我尝试了rhc应用程序tidy,通过openshift界面重新启动了应用程序,我进行了更改,推到了云端,构建成功,但消息再次出现。如何停止应用程序,以便我可以正常运行它?在我执行重新启动后,应用程序没有停止吗 更新:我是

我用DIY盒带创建了openshift项目,为DB添加了postresql。。现在我把源代码推到了云上,但我得到了和这里的家伙一样的错误(但他没有使用springboot):

很明显,如果我运行两次应用程序,就会出现错误消息“启动与ProtocolHandler关联的端点失败”。我尝试了rhc应用程序tidy,通过openshift界面重新启动了应用程序,我进行了更改,推到了云端,构建成功,但消息再次出现。如何停止应用程序,以便我可以正常运行它?在我执行重新启动后,应用程序没有停止吗


更新:我是否选择了正确的步骤?(使用DIY盒带),您是否有一个简单的(工作)指南,指导如何将这样的应用部署到openshift?我尝试了在网上找到的几个,但没有一个奏效:(

以下是我使用DIY墨盒的步骤,希望这能有所帮助

  • 转到项目的主目录执行以下任务
  • 创建Settings.xml并通过更新Settings.xml引用maven repo,如下面的xml片段所示

    <settings>
        <localRepository>${OPENSHIFT_DATA_DIR}/m2/repository</localRepository>
    </settings>
    

  • iii.将部署文件添加到git
    iv.使用以下代码段编辑
    start
    文件

                #!/bin/bash
                source $OPENSHIFT_CARTRIDGE_SDK_BASH
                set -x
                export JAVA_HOME=$OPENSHIFT_DATA_DIR/jdk1.8.0_51
                export PATH=$JAVA_HOME/bin:$PATH
                cd $OPENSHIFT_REPO_DIR
                nohup java –Xms500m –Xmx500m -jar target/*.jar --server.port=${OPENSHIFT_DIY_PORT} --server.address=${OPENSHIFT_DIY_IP} &
    

    v、 使用以下代码段编辑stop

                #!/bin/bash
                source $OPENSHIFT_CARTRIDGE_SDK_BASH
                PID=$(ps -ef | grep java.*\.jar | grep -v grep | awk '{ print $2 }')
                if [ -z "$PID" ]
                then
                    client_result "Application is already stopped"
                else
                    kill $PID
                fi
    


    vi.使部署文件可执行(注意:这是非常重要的,它的常见错误是,如果不可执行,您的项目将不会启动)

  • 将更改与maven一起提交
    src
    pom.xml
    提交完成后,应用程序应自动启动,
    注意:第一次下载maven repo需要时间
  • 出于调试目的,最好在类路径中添加logback.xml(
    src/main/resources

    
    


  • 有人回答:)后,请让我知道它是否适用于您。我也尝试了很多,但无法部署。所以我改用了Heroku和Pivotal CF,它们更简单。当然,我会在easters之后再试一次,因为我需要让这项技术发挥作用。你们还使用了什么技术?你在使用mvc、jsf、REST等吗?您可以使用DIY.Spring引导和Spring数据(hibernate)、postgresql、mvc和安全性部署sb。这与在本地运行应用程序,然后在不停止前一个实例的情况下再次尝试运行应用程序的行为相同。第六点:使部署文件可执行-如何做到这一点?它应该是一个叫做“deploy”的钩子,就像启动和停止一样,你说的使它可执行是什么意思?无论如何,感谢您的指导,我今天将尝试它,并让您知道它是否有效:)它的linux execute属性chmod 777为所有。。文件周期必须是可执行的,因此为了启动应用程序,我必须在启动jar(启动钩子)时删除JVM参数,但在我删除之后,出现了相同的错误:(与以前一样,但是没有必要手动设置java和maven,因为默认情况下它在那里(我对java7没有问题)确保您正在OPENSHIFT_DIY_端口和IP中启动tomcat,地址,OPENSHIFT分配不同的端口和IP地址,IP地址不是127.0.0.1(localhost)。在停止钩子时,请确保您停止应用程序。在这里,我将终止进程,但您可以使用执行器和关闭REST api
                #!/bin/bash
                source $OPENSHIFT_CARTRIDGE_SDK_BASH
                set -x
                export JAVA_HOME=$OPENSHIFT_DATA_DIR/jdk1.8.0_51
                export PATH=$JAVA_HOME/bin:$PATH
                cd $OPENSHIFT_REPO_DIR
                nohup java –Xms500m –Xmx500m -jar target/*.jar --server.port=${OPENSHIFT_DIY_PORT} --server.address=${OPENSHIFT_DIY_IP} &
    
                #!/bin/bash
                source $OPENSHIFT_CARTRIDGE_SDK_BASH
                PID=$(ps -ef | grep java.*\.jar | grep -v grep | awk '{ print $2 }')
                if [ -z "$PID" ]
                then
                    client_result "Application is already stopped"
                else
                    kill $PID
                fi
    
    <?xml version="1.0" encoding="UTF-8"?>
     <configuration>
         <property name="LOG_FILE" value="${OPENSHIFT_LOG_DIR}/kp-apps.log" />
         <include resource="org/springframework/boot/logging/logback/base.xml" />
       <logger name="org.springframework.web" level="DEBUG" />