diff --git a/weixin4j-example/pom.xml b/weixin4j-example/pom.xml index aa159da8..9024a17f 100644 --- a/weixin4j-example/pom.xml +++ b/weixin4j-example/pom.xml @@ -12,6 +12,29 @@ weixin4j-example https://github.com/foxinmy/weixin4j/tree/master/weixin4j-example weixin4j示例 + + + + org.apache.maven.plugins + maven-assembly-plugin + + + src/main/script/assembly.xml + + weixin4j-server + + + + make-assembly + package + + single + + + + + + com.foxinmy @@ -28,11 +51,17 @@ weixin4j-server 1.1.7 + + + redis.clients + jedis + 2.6.0 + + org.springframework spring-context 4.2.1.RELEASE - test \ No newline at end of file diff --git a/weixin4j-example/src/main/resources/spring-bean.xml b/weixin4j-example/src/main/resources/spring-bean.xml index 65f8d54f..48beb660 100644 --- a/weixin4j-example/src/main/resources/spring-bean.xml +++ b/weixin4j-example/src/main/resources/spring-bean.xml @@ -18,8 +18,7 @@ - - + @@ -79,7 +78,7 @@ class="com.foximy.weixin4j.example.server.Weixin4jServerStartupWithThread" init-method="start" destroy-method="stop"> - + diff --git a/weixin4j-example/src/main/script/assembly.xml b/weixin4j-example/src/main/script/assembly.xml new file mode 100644 index 00000000..f0843723 --- /dev/null +++ b/weixin4j-example/src/main/script/assembly.xml @@ -0,0 +1,35 @@ + + + bin + + zip + + + + true + /lib + + + + + src/main/script + / + + *.sh + *.bat + + + + target/classes + + *.txt + *.properties + *.xml + + /conf + + + \ No newline at end of file diff --git a/weixin4j-example/src/main/script/startup.sh b/weixin4j-example/src/main/script/startup.sh new file mode 100644 index 00000000..970d3496 --- /dev/null +++ b/weixin4j-example/src/main/script/startup.sh @@ -0,0 +1,144 @@ +# Jar执行脚本 + +ulimit -n 110000 +#Jdk home +JAVA_HOME="/usr/local/java" + +#Executing user +RUNNING_USER=root + +#App home +APP_HOME="/usr/local/weixin4j" + +#Main class +APP_MAINCLASS=com.foximy.weixin4j.example.server.Weixin4jServerStartupWithoutThread + +#classpath +CLASSPATH=$APP_HOME/classes +for i in "$APP_HOME"/lib/*.jar; do + CLASSPATH="$CLASSPATH":"$i" +done + +CLASSPATH="$CLASSPATH":"$APP_HOME"/conf + +#jvm options +JAVA_OPTS="-Xms256m -Xmx512m -Djava.awt.headless=true -XX:MaxPermSize=128m -server -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=85 -XX:+DisableExplicitGC -Xnoclassgc -Xverify:none" + +#psid +psid=0 + +checkpid() { + javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAINCLASS` + + if [ -n "$javaps" ]; then + psid=`echo $javaps | awk '{print $1}'` + else + psid=0 + fi +} + +################################### +#startup +################################### +start() { + checkpid + + if [ $psid -ne 0 ]; then + echo "================================" + echo "warn: $APP_MAINCLASS already started! (pid=$psid)" + echo "================================" + else + echo -n "Starting $APP_MAINCLASS ..." +# JAVA_CMD="nohup $JAVA_HOME/bin/java $JAVA_OPTS -classpath $CLASSPATH $APP_MAINCLASS >/dev/null 2>&1 &" + JAVA_CMD="$JAVA_HOME/bin/java $JAVA_OPTS -classpath $CLASSPATH $APP_MAINCLASS &" + su - $RUNNING_USER -c "$JAVA_CMD" + checkpid + if [ $psid -ne 0 ]; then + echo "(pid=$psid) [OK]" + else + echo "[Failed]" + fi + fi +} + +################################### +#stop +################################### +stop() { + checkpid + + if [ $psid -ne 0 ]; then + echo -n "Stopping $APP_MAINCLASS ...(pid=$psid) " + su - $RUNNING_USER -c "kill -9 $psid" + if [ $? -eq 0 ]; then + echo "[OK]" + else + echo "[Failed]" + fi + + checkpid + if [ $psid -ne 0 ]; then + stop + fi + else + echo "================================" + echo "warn: $APP_MAINCLASS is not running" + echo "================================" + fi +} + +################################### +#status +################################### +status() { + checkpid + + if [ $psid -ne 0 ]; then + echo "$APP_MAINCLASS is running! (pid=$psid)" + else + echo "$APP_MAINCLASS is not running" + fi +} + +################################### +#info +################################### +info() { + echo "System Information:" + echo "****************************" + echo `head -n 1 /etc/issue` + echo `uname -a` + echo + echo "JAVA_HOME=$JAVA_HOME" + echo `$JAVA_HOME/bin/java -version` + echo + echo "APP_HOME=$APP_HOME" + echo "APP_MAINCLASS=$APP_MAINCLASS" + echo "****************************" +} + +################################### +#access only 1 argument:{start|stop|restart|status|info} +################################### +case "$1" in + 'start') + start + ;; + 'stop') + stop + ;; + 'restart') + stop + start + ;; + 'status') + status + ;; + 'info') + info + ;; + *) + echo "Usage: $0 {start|stop|restart|status|info}" + exit 1 +esac +exit 0