Spring启动应用程序不会在openshift中启动

时间:2016-03-27 18:43:53

标签: spring-boot openshift

我使用DIY墨盒创建了openshift项目,为DB添加了postresql ..现在我将源码推送到云端,但我收到的错误就像这里的人一样(但他没有使用springboot):I can't start tomcat 7 server on linux openshift - Failed to start end point associated with ProtocolHandler ["http-nio-12345"]

Failed to start end point associated with ProtocolHandler

很明显,如果我运行应用程序两次,则会出现错误消息“无法启动与ProtocolHandler关联的终点”。我尝试了rhc app-tidy,通过openshift界面重新启动APP,我做了更改,推送到云,建立成功,但消息再次出现。如何停止应用程序,以便我可以正常运行它?重启后我的应用程序没有被停止吗?

更新:我选择了正确的步骤吗? (使用DIY墨盒),你有一个简单的(和工作)指南如何将这样的应用程序部署到openshift?我试过很少,我在网上找到了,但没有一个工作:(

1 个答案:

答案 0 :(得分:0)

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

  1. 转到项目的主目录执行以下任务
  2. 创建Settings.xml并通过更新settings.xml来引用maven repo,如下面的xml片段所示。并将文件添加到git repo

    <settings>
        <localRepository>${OPENSHIFT_DATA_DIR}/m2/repository</localRepository>
    </settings>
    
  3. .openshift目录并删除除action_hooks以外的所有文件

  4. 转到action_hooks并执行以下任务   
      一世。删除README.md   
      II。创建部署文件(注意文件扩展名,而create不应该是txt)并添加以下代码片段                 (它基本上创建并下载并设置java8和maven

                #!/bin/bash
                set -x
                if [ ! -d $OPENSHIFT_DATA_DIR/m2/repository ]
                then
                        cd $OPENSHIFT_DATA_DIR
                        mkdir m2/repository                
                fi
                if [ ! -d $OPENSHIFT_DATA_DIR/jdk1.8.0_51 ]
                then
                    cd $OPENSHIFT_DATA_DIR
                    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.tar.gz
                    tar xvf *.tar.gz
                    rm -f *.tar.gz
                fi
    
                if [ ! -d $OPENSHIFT_DATA_DIR/apache-maven-3.3.3 ]
                then
                    cd $OPENSHIFT_DATA_DIR
                    wget http://mirror.fibergrid.in/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
                    tar xvf *.tar.gz
                    rm -f *.tar.gz
                fi
    
                cd $OPENSHIFT_REPO_DIR
                export M2=$OPENSHIFT_DATA_DIR/apache-maven-3.3.3/bin
                export MAVEN_OPTS="-Xms500m -Xmx500m"
                export JAVA_HOME=$OPENSHIFT_DATA_DIR/jdk1.8.0_51
                export PATH=$JAVA_HOME/bin:$M2:$PATH
    
                mvn -s settings.xml clean install
    

  5.             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。使用以下代码段编辑停止

                #!/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
    



                六。使部署文件可执行(注意:这是非常重要的,如果不可执行,那么它常见的错误就是你的项目无法启动)

    1. 提交更改以及您的maven srcpom.xml应用程序应在提交完成后自动启动,注意:,这将是第一次需要时间来下载maven repo。
    2. 出于debuging的目的,最好在类路径中添加logback.xml(src/main/resources

      <?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" />