我使用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?我试过很少,我在网上找到了,但没有一个工作:(
答案 0 :(得分:0)
以下是我使用DIY墨盒所遵循的步骤,希望这会有所帮助
创建Settings.xml并通过更新settings.xml来引用maven repo,如下面的xml片段所示。并将文件添加到git repo
<settings>
<localRepository>${OPENSHIFT_DATA_DIR}/m2/repository</localRepository>
</settings>
到.openshift
目录并删除除action_hooks
以外的所有文件
转到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
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
六。使部署文件可执行(注意:这是非常重要的,如果不可执行,那么它常见的错误就是你的项目无法启动)
src
和pom.xml
应用程序应在提交完成后自动启动,注意:,这将是第一次需要时间来下载maven repo。出于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" />