Commit 7d998aa6f40015ebb53e01a61ca7c374cf6ddfd3

Authored by 陶汉栋
2 parents 1532fcd9 64cbebcf

Merge branch 'master' of http://git.shunzhi.net/taohd/mycloud

# Conflicts:
#	cloud/haikang/src/main/java/com/sincere/haikang/CMSServer.java
Showing 200 changed files with 8000 additions and 4380 deletions   Show diff stats
cloud/Capture/2019-08-06/2019-08-06_08-34-58.jpg

14.7 KB

cloud/Capture/2019-08-06/2019-08-06_08-35-26.jpg

14.1 KB

cloud/GateSnapPicture/1565064083617GateSnapPicture.jpg

13.7 KB

cloud/GateSnapPicture/1565064085046GateSnapPicture.jpg

13.6 KB

cloud/GateSnapPicture/1565064086448GateSnapPicture.jpg

14.3 KB

cloud/HCAapSDKCom/zlib1.dll
No preview for this file type
cloud/ailive/.gitignore
... ... @@ -1,31 +0,0 @@
1   -HELP.md
2   -target/
3   -!.mvn/wrapper/maven-wrapper.jar
4   -!**/src/main/**
5   -!**/src/test/**
6   -
7   -### STS ###
8   -.apt_generated
9   -.classpath
10   -.factorypath
11   -.project
12   -.settings
13   -.springBeans
14   -.sts4-cache
15   -
16   -### IntelliJ IDEA ###
17   -.idea
18   -*.iws
19   -*.iml
20   -*.ipr
21   -
22   -### NetBeans ###
23   -/nbproject/private/
24   -/nbbuild/
25   -/dist/
26   -/nbdist/
27   -/.nb-gradle/
28   -build/
29   -
30   -### VS Code ###
31   -.vscode/
cloud/ailive/.mvn/wrapper/MavenWrapperDownloader.java
... ... @@ -1,114 +0,0 @@
1   -/*
2   -Licensed to the Apache Software Foundation (ASF) under one
3   -or more contributor license agreements. See the NOTICE file
4   -distributed with this work for additional information
5   -regarding copyright ownership. The ASF licenses this file
6   -to you under the Apache License, Version 2.0 (the
7   -"License"); you may not use this file except in compliance
8   -with the License. You may obtain a copy of the License at
9   -
10   - https://www.apache.org/licenses/LICENSE-2.0
11   -
12   -Unless required by applicable law or agreed to in writing,
13   -software distributed under the License is distributed on an
14   -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   -KIND, either express or implied. See the License for the
16   -specific language governing permissions and limitations
17   -under the License.
18   -*/
19   -
20   -import java.io.File;
21   -import java.io.FileInputStream;
22   -import java.io.FileOutputStream;
23   -import java.io.IOException;
24   -import java.net.URL;
25   -import java.nio.channels.Channels;
26   -import java.nio.channels.ReadableByteChannel;
27   -import java.util.Properties;
28   -
29   -public class MavenWrapperDownloader {
30   -
31   - /**
32   - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
33   - */
34   - private static final String DEFAULT_DOWNLOAD_URL =
35   - "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
36   -
37   - /**
38   - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
39   - * use instead of the default one.
40   - */
41   - private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
42   - ".mvn/wrapper/maven-wrapper.properties";
43   -
44   - /**
45   - * Path where the maven-wrapper.jar will be saved to.
46   - */
47   - private static final String MAVEN_WRAPPER_JAR_PATH =
48   - ".mvn/wrapper/maven-wrapper.jar";
49   -
50   - /**
51   - * Name of the property which should be used to override the default download url for the wrapper.
52   - */
53   - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
54   -
55   - public static void main(String args[]) {
56   - System.out.println("- Downloader started");
57   - File baseDirectory = new File(args[0]);
58   - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
59   -
60   - // If the maven-wrapper.properties exists, read it and check if it contains a custom
61   - // wrapperUrl parameter.
62   - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
63   - String url = DEFAULT_DOWNLOAD_URL;
64   - if (mavenWrapperPropertyFile.exists()) {
65   - FileInputStream mavenWrapperPropertyFileInputStream = null;
66   - try {
67   - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
68   - Properties mavenWrapperProperties = new Properties();
69   - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
70   - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
71   - } catch (IOException e) {
72   - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
73   - } finally {
74   - try {
75   - if (mavenWrapperPropertyFileInputStream != null) {
76   - mavenWrapperPropertyFileInputStream.close();
77   - }
78   - } catch (IOException e) {
79   - // Ignore ...
80   - }
81   - }
82   - }
83   - System.out.println("- Downloading from: : " + url);
84   -
85   - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
86   - if (!outputFile.getParentFile().exists()) {
87   - if (!outputFile.getParentFile().mkdirs()) {
88   - System.out.println(
89   - "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
90   - }
91   - }
92   - System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
93   - try {
94   - downloadFileFromURL(url, outputFile);
95   - System.out.println("Done");
96   - System.exit(0);
97   - } catch (Throwable e) {
98   - System.out.println("- Error downloading");
99   - e.printStackTrace();
100   - System.exit(1);
101   - }
102   - }
103   -
104   - private static void downloadFileFromURL(String urlString, File destination) throws Exception {
105   - URL website = new URL(urlString);
106   - ReadableByteChannel rbc;
107   - rbc = Channels.newChannel(website.openStream());
108   - FileOutputStream fos = new FileOutputStream(destination);
109   - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
110   - fos.close();
111   - rbc.close();
112   - }
113   -
114   -}
cloud/ailive/.mvn/wrapper/maven-wrapper.jar
No preview for this file type
cloud/ailive/.mvn/wrapper/maven-wrapper.properties
... ... @@ -1 +0,0 @@
1   -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
cloud/ailive/mvnw
... ... @@ -1,286 +0,0 @@
1   -#!/bin/sh
2   -# ----------------------------------------------------------------------------
3   -# Licensed to the Apache Software Foundation (ASF) under one
4   -# or more contributor license agreements. See the NOTICE file
5   -# distributed with this work for additional information
6   -# regarding copyright ownership. The ASF licenses this file
7   -# to you under the Apache License, Version 2.0 (the
8   -# "License"); you may not use this file except in compliance
9   -# with the License. You may obtain a copy of the License at
10   -#
11   -# https://www.apache.org/licenses/LICENSE-2.0
12   -#
13   -# Unless required by applicable law or agreed to in writing,
14   -# software distributed under the License is distributed on an
15   -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   -# KIND, either express or implied. See the License for the
17   -# specific language governing permissions and limitations
18   -# under the License.
19   -# ----------------------------------------------------------------------------
20   -
21   -# ----------------------------------------------------------------------------
22   -# Maven2 Start Up Batch script
23   -#
24   -# Required ENV vars:
25   -# ------------------
26   -# JAVA_HOME - location of a JDK home dir
27   -#
28   -# Optional ENV vars
29   -# -----------------
30   -# M2_HOME - location of maven2's installed home dir
31   -# MAVEN_OPTS - parameters passed to the Java VM when running Maven
32   -# e.g. to debug Maven itself, use
33   -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34   -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35   -# ----------------------------------------------------------------------------
36   -
37   -if [ -z "$MAVEN_SKIP_RC" ] ; then
38   -
39   - if [ -f /etc/mavenrc ] ; then
40   - . /etc/mavenrc
41   - fi
42   -
43   - if [ -f "$HOME/.mavenrc" ] ; then
44   - . "$HOME/.mavenrc"
45   - fi
46   -
47   -fi
48   -
49   -# OS specific support. $var _must_ be set to either true or false.
50   -cygwin=false;
51   -darwin=false;
52   -mingw=false
53   -case "`uname`" in
54   - CYGWIN*) cygwin=true ;;
55   - MINGW*) mingw=true;;
56   - Darwin*) darwin=true
57   - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
58   - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
59   - if [ -z "$JAVA_HOME" ]; then
60   - if [ -x "/usr/libexec/java_home" ]; then
61   - export JAVA_HOME="`/usr/libexec/java_home`"
62   - else
63   - export JAVA_HOME="/Library/Java/Home"
64   - fi
65   - fi
66   - ;;
67   -esac
68   -
69   -if [ -z "$JAVA_HOME" ] ; then
70   - if [ -r /etc/gentoo-release ] ; then
71   - JAVA_HOME=`java-config --jre-home`
72   - fi
73   -fi
74   -
75   -if [ -z "$M2_HOME" ] ; then
76   - ## resolve links - $0 may be a link to maven's home
77   - PRG="$0"
78   -
79   - # need this for relative symlinks
80   - while [ -h "$PRG" ] ; do
81   - ls=`ls -ld "$PRG"`
82   - link=`expr "$ls" : '.*-> \(.*\)$'`
83   - if expr "$link" : '/.*' > /dev/null; then
84   - PRG="$link"
85   - else
86   - PRG="`dirname "$PRG"`/$link"
87   - fi
88   - done
89   -
90   - saveddir=`pwd`
91   -
92   - M2_HOME=`dirname "$PRG"`/..
93   -
94   - # make it fully qualified
95   - M2_HOME=`cd "$M2_HOME" && pwd`
96   -
97   - cd "$saveddir"
98   - # echo Using m2 at $M2_HOME
99   -fi
100   -
101   -# For Cygwin, ensure paths are in UNIX format before anything is touched
102   -if $cygwin ; then
103   - [ -n "$M2_HOME" ] &&
104   - M2_HOME=`cygpath --unix "$M2_HOME"`
105   - [ -n "$JAVA_HOME" ] &&
106   - JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
107   - [ -n "$CLASSPATH" ] &&
108   - CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
109   -fi
110   -
111   -# For Mingw, ensure paths are in UNIX format before anything is touched
112   -if $mingw ; then
113   - [ -n "$M2_HOME" ] &&
114   - M2_HOME="`(cd "$M2_HOME"; pwd)`"
115   - [ -n "$JAVA_HOME" ] &&
116   - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117   - # TODO classpath?
118   -fi
119   -
120   -if [ -z "$JAVA_HOME" ]; then
121   - javaExecutable="`which javac`"
122   - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
123   - # readlink(1) is not available as standard on Solaris 10.
124   - readLink=`which readlink`
125   - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
126   - if $darwin ; then
127   - javaHome="`dirname \"$javaExecutable\"`"
128   - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
129   - else
130   - javaExecutable="`readlink -f \"$javaExecutable\"`"
131   - fi
132   - javaHome="`dirname \"$javaExecutable\"`"
133   - javaHome=`expr "$javaHome" : '\(.*\)/bin'`
134   - JAVA_HOME="$javaHome"
135   - export JAVA_HOME
136   - fi
137   - fi
138   -fi
139   -
140   -if [ -z "$JAVACMD" ] ; then
141   - if [ -n "$JAVA_HOME" ] ; then
142   - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
143   - # IBM's JDK on AIX uses strange locations for the executables
144   - JAVACMD="$JAVA_HOME/jre/sh/java"
145   - else
146   - JAVACMD="$JAVA_HOME/bin/java"
147   - fi
148   - else
149   - JAVACMD="`which java`"
150   - fi
151   -fi
152   -
153   -if [ ! -x "$JAVACMD" ] ; then
154   - echo "Error: JAVA_HOME is not defined correctly." >&2
155   - echo " We cannot execute $JAVACMD" >&2
156   - exit 1
157   -fi
158   -
159   -if [ -z "$JAVA_HOME" ] ; then
160   - echo "Warning: JAVA_HOME environment variable is not set."
161   -fi
162   -
163   -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
164   -
165   -# traverses directory structure from process work directory to filesystem root
166   -# first directory with .mvn subdirectory is considered project base directory
167   -find_maven_basedir() {
168   -
169   - if [ -z "$1" ]
170   - then
171   - echo "Path not specified to find_maven_basedir"
172   - return 1
173   - fi
174   -
175   - basedir="$1"
176   - wdir="$1"
177   - while [ "$wdir" != '/' ] ; do
178   - if [ -d "$wdir"/.mvn ] ; then
179   - basedir=$wdir
180   - break
181   - fi
182   - # workaround for JBEAP-8937 (on Solaris 10/Sparc)
183   - if [ -d "${wdir}" ]; then
184   - wdir=`cd "$wdir/.."; pwd`
185   - fi
186   - # end of workaround
187   - done
188   - echo "${basedir}"
189   -}
190   -
191   -# concatenates all lines of a file
192   -concat_lines() {
193   - if [ -f "$1" ]; then
194   - echo "$(tr -s '\n' ' ' < "$1")"
195   - fi
196   -}
197   -
198   -BASE_DIR=`find_maven_basedir "$(pwd)"`
199   -if [ -z "$BASE_DIR" ]; then
200   - exit 1;
201   -fi
202   -
203   -##########################################################################################
204   -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
205   -# This allows using the maven wrapper in projects that prohibit checking in binary data.
206   -##########################################################################################
207   -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
208   - if [ "$MVNW_VERBOSE" = true ]; then
209   - echo "Found .mvn/wrapper/maven-wrapper.jar"
210   - fi
211   -else
212   - if [ "$MVNW_VERBOSE" = true ]; then
213   - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
214   - fi
215   - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
216   - while IFS="=" read key value; do
217   - case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
218   - esac
219   - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
220   - if [ "$MVNW_VERBOSE" = true ]; then
221   - echo "Downloading from: $jarUrl"
222   - fi
223   - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
224   -
225   - if command -v wget > /dev/null; then
226   - if [ "$MVNW_VERBOSE" = true ]; then
227   - echo "Found wget ... using wget"
228   - fi
229   - wget "$jarUrl" -O "$wrapperJarPath"
230   - elif command -v curl > /dev/null; then
231   - if [ "$MVNW_VERBOSE" = true ]; then
232   - echo "Found curl ... using curl"
233   - fi
234   - curl -o "$wrapperJarPath" "$jarUrl"
235   - else
236   - if [ "$MVNW_VERBOSE" = true ]; then
237   - echo "Falling back to using Java to download"
238   - fi
239   - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
240   - if [ -e "$javaClass" ]; then
241   - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
242   - if [ "$MVNW_VERBOSE" = true ]; then
243   - echo " - Compiling MavenWrapperDownloader.java ..."
244   - fi
245   - # Compiling the Java class
246   - ("$JAVA_HOME/bin/javac" "$javaClass")
247   - fi
248   - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
249   - # Running the downloader
250   - if [ "$MVNW_VERBOSE" = true ]; then
251   - echo " - Running MavenWrapperDownloader.java ..."
252   - fi
253   - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
254   - fi
255   - fi
256   - fi
257   -fi
258   -##########################################################################################
259   -# End of extension
260   -##########################################################################################
261   -
262   -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
263   -if [ "$MVNW_VERBOSE" = true ]; then
264   - echo $MAVEN_PROJECTBASEDIR
265   -fi
266   -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
267   -
268   -# For Cygwin, switch paths to Windows format before running java
269   -if $cygwin; then
270   - [ -n "$M2_HOME" ] &&
271   - M2_HOME=`cygpath --path --windows "$M2_HOME"`
272   - [ -n "$JAVA_HOME" ] &&
273   - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
274   - [ -n "$CLASSPATH" ] &&
275   - CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
276   - [ -n "$MAVEN_PROJECTBASEDIR" ] &&
277   - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
278   -fi
279   -
280   -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281   -
282   -exec "$JAVACMD" \
283   - $MAVEN_OPTS \
284   - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
285   - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
286   - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
cloud/ailive/mvnw.cmd
... ... @@ -1,161 +0,0 @@
1   -@REM ----------------------------------------------------------------------------
2   -@REM Licensed to the Apache Software Foundation (ASF) under one
3   -@REM or more contributor license agreements. See the NOTICE file
4   -@REM distributed with this work for additional information
5   -@REM regarding copyright ownership. The ASF licenses this file
6   -@REM to you under the Apache License, Version 2.0 (the
7   -@REM "License"); you may not use this file except in compliance
8   -@REM with the License. You may obtain a copy of the License at
9   -@REM
10   -@REM https://www.apache.org/licenses/LICENSE-2.0
11   -@REM
12   -@REM Unless required by applicable law or agreed to in writing,
13   -@REM software distributed under the License is distributed on an
14   -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   -@REM KIND, either express or implied. See the License for the
16   -@REM specific language governing permissions and limitations
17   -@REM under the License.
18   -@REM ----------------------------------------------------------------------------
19   -
20   -@REM ----------------------------------------------------------------------------
21   -@REM Maven2 Start Up Batch script
22   -@REM
23   -@REM Required ENV vars:
24   -@REM JAVA_HOME - location of a JDK home dir
25   -@REM
26   -@REM Optional ENV vars
27   -@REM M2_HOME - location of maven2's installed home dir
28   -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29   -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30   -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31   -@REM e.g. to debug Maven itself, use
32   -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33   -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34   -@REM ----------------------------------------------------------------------------
35   -
36   -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37   -@echo off
38   -@REM set title of command window
39   -title %0
40   -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
41   -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42   -
43   -@REM set %HOME% to equivalent of $HOME
44   -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45   -
46   -@REM Execute a user defined script before this one
47   -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48   -@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49   -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50   -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51   -:skipRcPre
52   -
53   -@setlocal
54   -
55   -set ERROR_CODE=0
56   -
57   -@REM To isolate internal variables from possible post scripts, we use another setlocal
58   -@setlocal
59   -
60   -@REM ==== START VALIDATION ====
61   -if not "%JAVA_HOME%" == "" goto OkJHome
62   -
63   -echo.
64   -echo Error: JAVA_HOME not found in your environment. >&2
65   -echo Please set the JAVA_HOME variable in your environment to match the >&2
66   -echo location of your Java installation. >&2
67   -echo.
68   -goto error
69   -
70   -:OkJHome
71   -if exist "%JAVA_HOME%\bin\java.exe" goto init
72   -
73   -echo.
74   -echo Error: JAVA_HOME is set to an invalid directory. >&2
75   -echo JAVA_HOME = "%JAVA_HOME%" >&2
76   -echo Please set the JAVA_HOME variable in your environment to match the >&2
77   -echo location of your Java installation. >&2
78   -echo.
79   -goto error
80   -
81   -@REM ==== END VALIDATION ====
82   -
83   -:init
84   -
85   -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86   -@REM Fallback to current working directory if not found.
87   -
88   -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89   -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90   -
91   -set EXEC_DIR=%CD%
92   -set WDIR=%EXEC_DIR%
93   -:findBaseDir
94   -IF EXIST "%WDIR%"\.mvn goto baseDirFound
95   -cd ..
96   -IF "%WDIR%"=="%CD%" goto baseDirNotFound
97   -set WDIR=%CD%
98   -goto findBaseDir
99   -
100   -:baseDirFound
101   -set MAVEN_PROJECTBASEDIR=%WDIR%
102   -cd "%EXEC_DIR%"
103   -goto endDetectBaseDir
104   -
105   -:baseDirNotFound
106   -set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107   -cd "%EXEC_DIR%"
108   -
109   -:endDetectBaseDir
110   -
111   -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112   -
113   -@setlocal EnableExtensions EnableDelayedExpansion
114   -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115   -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116   -
117   -:endReadAdditionalConfig
118   -
119   -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120   -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121   -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122   -
123   -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
124   -FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
125   - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
126   -)
127   -
128   -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
129   -@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
130   -if exist %WRAPPER_JAR% (
131   - echo Found %WRAPPER_JAR%
132   -) else (
133   - echo Couldn't find %WRAPPER_JAR%, downloading it ...
134   - echo Downloading from: %DOWNLOAD_URL%
135   - powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
136   - echo Finished downloading %WRAPPER_JAR%
137   -)
138   -@REM End of extension
139   -
140   -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
141   -if ERRORLEVEL 1 goto error
142   -goto end
143   -
144   -:error
145   -set ERROR_CODE=1
146   -
147   -:end
148   -@endlocal & set ERROR_CODE=%ERROR_CODE%
149   -
150   -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
151   -@REM check for post script, once with legacy .bat ending and once with .cmd ending
152   -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
153   -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
154   -:skipRcPost
155   -
156   -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
157   -if "%MAVEN_BATCH_PAUSE%" == "on" pause
158   -
159   -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
160   -
161   -exit /B %ERROR_CODE%
cloud/ailive/pom.xml
... ... @@ -1,53 +0,0 @@
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3   - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4   - <modelVersion>4.0.0</modelVersion>
5   - <parent>
6   - <groupId>org.springframework.boot</groupId>
7   - <artifactId>spring-boot-starter-parent</artifactId>
8   - <version>2.1.6.RELEASE</version>
9   - <relativePath/> <!-- lookup parent from repository -->
10   - </parent>
11   - <groupId>com.ali.live</groupId>
12   - <artifactId>alilive</artifactId>
13   - <version>0.0.1-SNAPSHOT</version>
14   - <name>alilive</name>
15   - <description>Demo project for Spring Boot</description>
16   -
17   - <properties>
18   - <java.version>1.8</java.version>
19   - </properties>
20   -
21   - <dependencies>
22   - <dependency>
23   - <groupId>org.springframework.boot</groupId>
24   - <artifactId>spring-boot-starter-quartz</artifactId>
25   - </dependency>
26   - <dependency>
27   - <groupId>org.springframework.boot</groupId>
28   - <artifactId>spring-boot-starter-web</artifactId>
29   - </dependency>
30   -
31   - <dependency>
32   - <groupId>org.springframework.boot</groupId>
33   - <artifactId>spring-boot-starter-test</artifactId>
34   - <scope>test</scope>
35   - </dependency>
36   -
37   - <dependency>
38   - <groupId>com.aliyun</groupId>
39   - <artifactId>aliyun-java-sdk-live</artifactId>
40   - <version>3.7.5</version>
41   - </dependency>
42   - </dependencies>
43   -
44   - <build>
45   - <plugins>
46   - <plugin>
47   - <groupId>org.springframework.boot</groupId>
48   - <artifactId>spring-boot-maven-plugin</artifactId>
49   - </plugin>
50   - </plugins>
51   - </build>
52   -
53   -</project>
cloud/ailive/src/main/java/com/ali/live/alilive/AliliveApplication.java
... ... @@ -1,13 +0,0 @@
1   -package com.ali.live.alilive;
2   -
3   -import org.springframework.boot.SpringApplication;
4   -import org.springframework.boot.autoconfigure.SpringBootApplication;
5   -
6   -@SpringBootApplication
7   -public class AliliveApplication {
8   -
9   - public static void main(String[] args) {
10   - SpringApplication.run(AliliveApplication.class, args);
11   - }
12   -
13   -}
cloud/ailive/src/main/resources/application.properties
No preview for this file type
cloud/ailive/src/test/java/com/ali/live/alilive/AliliveApplicationTests.java
... ... @@ -1,16 +0,0 @@
1   -package com.ali.live.alilive;
2   -
3   -import org.junit.Test;
4   -import org.junit.runner.RunWith;
5   -import org.springframework.boot.test.context.SpringBootTest;
6   -import org.springframework.test.context.junit4.SpringRunner;
7   -
8   -@RunWith(SpringRunner.class)
9   -@SpringBootTest
10   -public class AliliveApplicationTests {
11   -
12   - @Test
13   - public void contextLoads() {
14   - }
15   -
16   -}
cloud/autho/.gitignore 0 → 100644
... ... @@ -0,0 +1,31 @@
  1 +HELP.md
  2 +target/
  3 +!.mvn/wrapper/maven-wrapper.jar
  4 +!**/src/main/**
  5 +!**/src/test/**
  6 +
  7 +### STS ###
  8 +.apt_generated
  9 +.classpath
  10 +.factorypath
  11 +.project
  12 +.settings
  13 +.springBeans
  14 +.sts4-cache
  15 +
  16 +### IntelliJ IDEA ###
  17 +.idea
  18 +*.iws
  19 +*.iml
  20 +*.ipr
  21 +
  22 +### NetBeans ###
  23 +/nbproject/private/
  24 +/nbbuild/
  25 +/dist/
  26 +/nbdist/
  27 +/.nb-gradle/
  28 +build/
  29 +
  30 +### VS Code ###
  31 +.vscode/
... ...
cloud/autho/.mvn/wrapper/MavenWrapperDownloader.java 0 → 100644
... ... @@ -0,0 +1,114 @@
  1 +/*
  2 +Licensed to the Apache Software Foundation (ASF) under one
  3 +or more contributor license agreements. See the NOTICE file
  4 +distributed with this work for additional information
  5 +regarding copyright ownership. The ASF licenses this file
  6 +to you under the Apache License, Version 2.0 (the
  7 +"License"); you may not use this file except in compliance
  8 +with the License. You may obtain a copy of the License at
  9 +
  10 + https://www.apache.org/licenses/LICENSE-2.0
  11 +
  12 +Unless required by applicable law or agreed to in writing,
  13 +software distributed under the License is distributed on an
  14 +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15 +KIND, either express or implied. See the License for the
  16 +specific language governing permissions and limitations
  17 +under the License.
  18 +*/
  19 +
  20 +import java.io.File;
  21 +import java.io.FileInputStream;
  22 +import java.io.FileOutputStream;
  23 +import java.io.IOException;
  24 +import java.net.URL;
  25 +import java.nio.channels.Channels;
  26 +import java.nio.channels.ReadableByteChannel;
  27 +import java.util.Properties;
  28 +
  29 +public class MavenWrapperDownloader {
  30 +
  31 + /**
  32 + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
  33 + */
  34 + private static final String DEFAULT_DOWNLOAD_URL =
  35 + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
  36 +
  37 + /**
  38 + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
  39 + * use instead of the default one.
  40 + */
  41 + private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
  42 + ".mvn/wrapper/maven-wrapper.properties";
  43 +
  44 + /**
  45 + * Path where the maven-wrapper.jar will be saved to.
  46 + */
  47 + private static final String MAVEN_WRAPPER_JAR_PATH =
  48 + ".mvn/wrapper/maven-wrapper.jar";
  49 +
  50 + /**
  51 + * Name of the property which should be used to override the default download url for the wrapper.
  52 + */
  53 + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
  54 +
  55 + public static void main(String args[]) {
  56 + System.out.println("- Downloader started");
  57 + File baseDirectory = new File(args[0]);
  58 + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
  59 +
  60 + // If the maven-wrapper.properties exists, read it and check if it contains a custom
  61 + // wrapperUrl parameter.
  62 + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
  63 + String url = DEFAULT_DOWNLOAD_URL;
  64 + if (mavenWrapperPropertyFile.exists()) {
  65 + FileInputStream mavenWrapperPropertyFileInputStream = null;
  66 + try {
  67 + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
  68 + Properties mavenWrapperProperties = new Properties();
  69 + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
  70 + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
  71 + } catch (IOException e) {
  72 + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
  73 + } finally {
  74 + try {
  75 + if (mavenWrapperPropertyFileInputStream != null) {
  76 + mavenWrapperPropertyFileInputStream.close();
  77 + }
  78 + } catch (IOException e) {
  79 + // Ignore ...
  80 + }
  81 + }
  82 + }
  83 + System.out.println("- Downloading from: : " + url);
  84 +
  85 + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
  86 + if (!outputFile.getParentFile().exists()) {
  87 + if (!outputFile.getParentFile().mkdirs()) {
  88 + System.out.println(
  89 + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
  90 + }
  91 + }
  92 + System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
  93 + try {
  94 + downloadFileFromURL(url, outputFile);
  95 + System.out.println("Done");
  96 + System.exit(0);
  97 + } catch (Throwable e) {
  98 + System.out.println("- Error downloading");
  99 + e.printStackTrace();
  100 + System.exit(1);
  101 + }
  102 + }
  103 +
  104 + private static void downloadFileFromURL(String urlString, File destination) throws Exception {
  105 + URL website = new URL(urlString);
  106 + ReadableByteChannel rbc;
  107 + rbc = Channels.newChannel(website.openStream());
  108 + FileOutputStream fos = new FileOutputStream(destination);
  109 + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
  110 + fos.close();
  111 + rbc.close();
  112 + }
  113 +
  114 +}
... ...
cloud/autho/.mvn/wrapper/maven-wrapper.jar 0 → 100644
No preview for this file type
cloud/autho/.mvn/wrapper/maven-wrapper.properties 0 → 100644
... ... @@ -0,0 +1 @@
  1 +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
... ...
cloud/autho/mvnw 0 → 100644
... ... @@ -0,0 +1,286 @@
  1 +#!/bin/sh
  2 +# ----------------------------------------------------------------------------
  3 +# Licensed to the Apache Software Foundation (ASF) under one
  4 +# or more contributor license agreements. See the NOTICE file
  5 +# distributed with this work for additional information
  6 +# regarding copyright ownership. The ASF licenses this file
  7 +# to you under the Apache License, Version 2.0 (the
  8 +# "License"); you may not use this file except in compliance
  9 +# with the License. You may obtain a copy of the License at
  10 +#
  11 +# https://www.apache.org/licenses/LICENSE-2.0
  12 +#
  13 +# Unless required by applicable law or agreed to in writing,
  14 +# software distributed under the License is distributed on an
  15 +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  16 +# KIND, either express or implied. See the License for the
  17 +# specific language governing permissions and limitations
  18 +# under the License.
  19 +# ----------------------------------------------------------------------------
  20 +
  21 +# ----------------------------------------------------------------------------
  22 +# Maven2 Start Up Batch script
  23 +#
  24 +# Required ENV vars:
  25 +# ------------------
  26 +# JAVA_HOME - location of a JDK home dir
  27 +#
  28 +# Optional ENV vars
  29 +# -----------------
  30 +# M2_HOME - location of maven2's installed home dir
  31 +# MAVEN_OPTS - parameters passed to the Java VM when running Maven
  32 +# e.g. to debug Maven itself, use
  33 +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
  34 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
  35 +# ----------------------------------------------------------------------------
  36 +
  37 +if [ -z "$MAVEN_SKIP_RC" ] ; then
  38 +
  39 + if [ -f /etc/mavenrc ] ; then
  40 + . /etc/mavenrc
  41 + fi
  42 +
  43 + if [ -f "$HOME/.mavenrc" ] ; then
  44 + . "$HOME/.mavenrc"
  45 + fi
  46 +
  47 +fi
  48 +
  49 +# OS specific support. $var _must_ be set to either true or false.
  50 +cygwin=false;
  51 +darwin=false;
  52 +mingw=false
  53 +case "`uname`" in
  54 + CYGWIN*) cygwin=true ;;
  55 + MINGW*) mingw=true;;
  56 + Darwin*) darwin=true
  57 + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
  58 + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
  59 + if [ -z "$JAVA_HOME" ]; then
  60 + if [ -x "/usr/libexec/java_home" ]; then
  61 + export JAVA_HOME="`/usr/libexec/java_home`"
  62 + else
  63 + export JAVA_HOME="/Library/Java/Home"
  64 + fi
  65 + fi
  66 + ;;
  67 +esac
  68 +
  69 +if [ -z "$JAVA_HOME" ] ; then
  70 + if [ -r /etc/gentoo-release ] ; then
  71 + JAVA_HOME=`java-config --jre-home`
  72 + fi
  73 +fi
  74 +
  75 +if [ -z "$M2_HOME" ] ; then
  76 + ## resolve links - $0 may be a link to maven's home
  77 + PRG="$0"
  78 +
  79 + # need this for relative symlinks
  80 + while [ -h "$PRG" ] ; do
  81 + ls=`ls -ld "$PRG"`
  82 + link=`expr "$ls" : '.*-> \(.*\)$'`
  83 + if expr "$link" : '/.*' > /dev/null; then
  84 + PRG="$link"
  85 + else
  86 + PRG="`dirname "$PRG"`/$link"
  87 + fi
  88 + done
  89 +
  90 + saveddir=`pwd`
  91 +
  92 + M2_HOME=`dirname "$PRG"`/..
  93 +
  94 + # make it fully qualified
  95 + M2_HOME=`cd "$M2_HOME" && pwd`
  96 +
  97 + cd "$saveddir"
  98 + # echo Using m2 at $M2_HOME
  99 +fi
  100 +
  101 +# For Cygwin, ensure paths are in UNIX format before anything is touched
  102 +if $cygwin ; then
  103 + [ -n "$M2_HOME" ] &&
  104 + M2_HOME=`cygpath --unix "$M2_HOME"`
  105 + [ -n "$JAVA_HOME" ] &&
  106 + JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  107 + [ -n "$CLASSPATH" ] &&
  108 + CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
  109 +fi
  110 +
  111 +# For Mingw, ensure paths are in UNIX format before anything is touched
  112 +if $mingw ; then
  113 + [ -n "$M2_HOME" ] &&
  114 + M2_HOME="`(cd "$M2_HOME"; pwd)`"
  115 + [ -n "$JAVA_HOME" ] &&
  116 + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
  117 + # TODO classpath?
  118 +fi
  119 +
  120 +if [ -z "$JAVA_HOME" ]; then
  121 + javaExecutable="`which javac`"
  122 + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
  123 + # readlink(1) is not available as standard on Solaris 10.
  124 + readLink=`which readlink`
  125 + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
  126 + if $darwin ; then
  127 + javaHome="`dirname \"$javaExecutable\"`"
  128 + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
  129 + else
  130 + javaExecutable="`readlink -f \"$javaExecutable\"`"
  131 + fi
  132 + javaHome="`dirname \"$javaExecutable\"`"
  133 + javaHome=`expr "$javaHome" : '\(.*\)/bin'`
  134 + JAVA_HOME="$javaHome"
  135 + export JAVA_HOME
  136 + fi
  137 + fi
  138 +fi
  139 +
  140 +if [ -z "$JAVACMD" ] ; then
  141 + if [ -n "$JAVA_HOME" ] ; then
  142 + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
  143 + # IBM's JDK on AIX uses strange locations for the executables
  144 + JAVACMD="$JAVA_HOME/jre/sh/java"
  145 + else
  146 + JAVACMD="$JAVA_HOME/bin/java"
  147 + fi
  148 + else
  149 + JAVACMD="`which java`"
  150 + fi
  151 +fi
  152 +
  153 +if [ ! -x "$JAVACMD" ] ; then
  154 + echo "Error: JAVA_HOME is not defined correctly." >&2
  155 + echo " We cannot execute $JAVACMD" >&2
  156 + exit 1
  157 +fi
  158 +
  159 +if [ -z "$JAVA_HOME" ] ; then
  160 + echo "Warning: JAVA_HOME environment variable is not set."
  161 +fi
  162 +
  163 +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
  164 +
  165 +# traverses directory structure from process work directory to filesystem root
  166 +# first directory with .mvn subdirectory is considered project base directory
  167 +find_maven_basedir() {
  168 +
  169 + if [ -z "$1" ]
  170 + then
  171 + echo "Path not specified to find_maven_basedir"
  172 + return 1
  173 + fi
  174 +
  175 + basedir="$1"
  176 + wdir="$1"
  177 + while [ "$wdir" != '/' ] ; do
  178 + if [ -d "$wdir"/.mvn ] ; then
  179 + basedir=$wdir
  180 + break
  181 + fi
  182 + # workaround for JBEAP-8937 (on Solaris 10/Sparc)
  183 + if [ -d "${wdir}" ]; then
  184 + wdir=`cd "$wdir/.."; pwd`
  185 + fi
  186 + # end of workaround
  187 + done
  188 + echo "${basedir}"
  189 +}
  190 +
  191 +# concatenates all lines of a file
  192 +concat_lines() {
  193 + if [ -f "$1" ]; then
  194 + echo "$(tr -s '\n' ' ' < "$1")"
  195 + fi
  196 +}
  197 +
  198 +BASE_DIR=`find_maven_basedir "$(pwd)"`
  199 +if [ -z "$BASE_DIR" ]; then
  200 + exit 1;
  201 +fi
  202 +
  203 +##########################################################################################
  204 +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
  205 +# This allows using the maven wrapper in projects that prohibit checking in binary data.
  206 +##########################################################################################
  207 +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
  208 + if [ "$MVNW_VERBOSE" = true ]; then
  209 + echo "Found .mvn/wrapper/maven-wrapper.jar"
  210 + fi
  211 +else
  212 + if [ "$MVNW_VERBOSE" = true ]; then
  213 + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
  214 + fi
  215 + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
  216 + while IFS="=" read key value; do
  217 + case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
  218 + esac
  219 + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
  220 + if [ "$MVNW_VERBOSE" = true ]; then
  221 + echo "Downloading from: $jarUrl"
  222 + fi
  223 + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
  224 +
  225 + if command -v wget > /dev/null; then
  226 + if [ "$MVNW_VERBOSE" = true ]; then
  227 + echo "Found wget ... using wget"
  228 + fi
  229 + wget "$jarUrl" -O "$wrapperJarPath"
  230 + elif command -v curl > /dev/null; then
  231 + if [ "$MVNW_VERBOSE" = true ]; then
  232 + echo "Found curl ... using curl"
  233 + fi
  234 + curl -o "$wrapperJarPath" "$jarUrl"
  235 + else
  236 + if [ "$MVNW_VERBOSE" = true ]; then
  237 + echo "Falling back to using Java to download"
  238 + fi
  239 + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
  240 + if [ -e "$javaClass" ]; then
  241 + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
  242 + if [ "$MVNW_VERBOSE" = true ]; then
  243 + echo " - Compiling MavenWrapperDownloader.java ..."
  244 + fi
  245 + # Compiling the Java class
  246 + ("$JAVA_HOME/bin/javac" "$javaClass")
  247 + fi
  248 + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
  249 + # Running the downloader
  250 + if [ "$MVNW_VERBOSE" = true ]; then
  251 + echo " - Running MavenWrapperDownloader.java ..."
  252 + fi
  253 + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
  254 + fi
  255 + fi
  256 + fi
  257 +fi
  258 +##########################################################################################
  259 +# End of extension
  260 +##########################################################################################
  261 +
  262 +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
  263 +if [ "$MVNW_VERBOSE" = true ]; then
  264 + echo $MAVEN_PROJECTBASEDIR
  265 +fi
  266 +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
  267 +
  268 +# For Cygwin, switch paths to Windows format before running java
  269 +if $cygwin; then
  270 + [ -n "$M2_HOME" ] &&
  271 + M2_HOME=`cygpath --path --windows "$M2_HOME"`
  272 + [ -n "$JAVA_HOME" ] &&
  273 + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  274 + [ -n "$CLASSPATH" ] &&
  275 + CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  276 + [ -n "$MAVEN_PROJECTBASEDIR" ] &&
  277 + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
  278 +fi
  279 +
  280 +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
  281 +
  282 +exec "$JAVACMD" \
  283 + $MAVEN_OPTS \
  284 + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
  285 + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
  286 + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
... ...
cloud/autho/mvnw.cmd 0 → 100644
... ... @@ -0,0 +1,161 @@
  1 +@REM ----------------------------------------------------------------------------
  2 +@REM Licensed to the Apache Software Foundation (ASF) under one
  3 +@REM or more contributor license agreements. See the NOTICE file
  4 +@REM distributed with this work for additional information
  5 +@REM regarding copyright ownership. The ASF licenses this file
  6 +@REM to you under the Apache License, Version 2.0 (the
  7 +@REM "License"); you may not use this file except in compliance
  8 +@REM with the License. You may obtain a copy of the License at
  9 +@REM
  10 +@REM https://www.apache.org/licenses/LICENSE-2.0
  11 +@REM
  12 +@REM Unless required by applicable law or agreed to in writing,
  13 +@REM software distributed under the License is distributed on an
  14 +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15 +@REM KIND, either express or implied. See the License for the
  16 +@REM specific language governing permissions and limitations
  17 +@REM under the License.
  18 +@REM ----------------------------------------------------------------------------
  19 +
  20 +@REM ----------------------------------------------------------------------------
  21 +@REM Maven2 Start Up Batch script
  22 +@REM
  23 +@REM Required ENV vars:
  24 +@REM JAVA_HOME - location of a JDK home dir
  25 +@REM
  26 +@REM Optional ENV vars
  27 +@REM M2_HOME - location of maven2's installed home dir
  28 +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
  29 +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
  30 +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
  31 +@REM e.g. to debug Maven itself, use
  32 +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
  33 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
  34 +@REM ----------------------------------------------------------------------------
  35 +
  36 +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
  37 +@echo off
  38 +@REM set title of command window
  39 +title %0
  40 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
  41 +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
  42 +
  43 +@REM set %HOME% to equivalent of $HOME
  44 +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
  45 +
  46 +@REM Execute a user defined script before this one
  47 +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
  48 +@REM check for pre script, once with legacy .bat ending and once with .cmd ending
  49 +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
  50 +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
  51 +:skipRcPre
  52 +
  53 +@setlocal
  54 +
  55 +set ERROR_CODE=0
  56 +
  57 +@REM To isolate internal variables from possible post scripts, we use another setlocal
  58 +@setlocal
  59 +
  60 +@REM ==== START VALIDATION ====
  61 +if not "%JAVA_HOME%" == "" goto OkJHome
  62 +
  63 +echo.
  64 +echo Error: JAVA_HOME not found in your environment. >&2
  65 +echo Please set the JAVA_HOME variable in your environment to match the >&2
  66 +echo location of your Java installation. >&2
  67 +echo.
  68 +goto error
  69 +
  70 +:OkJHome
  71 +if exist "%JAVA_HOME%\bin\java.exe" goto init
  72 +
  73 +echo.
  74 +echo Error: JAVA_HOME is set to an invalid directory. >&2
  75 +echo JAVA_HOME = "%JAVA_HOME%" >&2
  76 +echo Please set the JAVA_HOME variable in your environment to match the >&2
  77 +echo location of your Java installation. >&2
  78 +echo.
  79 +goto error
  80 +
  81 +@REM ==== END VALIDATION ====
  82 +
  83 +:init
  84 +
  85 +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
  86 +@REM Fallback to current working directory if not found.
  87 +
  88 +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
  89 +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
  90 +
  91 +set EXEC_DIR=%CD%
  92 +set WDIR=%EXEC_DIR%
  93 +:findBaseDir
  94 +IF EXIST "%WDIR%"\.mvn goto baseDirFound
  95 +cd ..
  96 +IF "%WDIR%"=="%CD%" goto baseDirNotFound
  97 +set WDIR=%CD%
  98 +goto findBaseDir
  99 +
  100 +:baseDirFound
  101 +set MAVEN_PROJECTBASEDIR=%WDIR%
  102 +cd "%EXEC_DIR%"
  103 +goto endDetectBaseDir
  104 +
  105 +:baseDirNotFound
  106 +set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
  107 +cd "%EXEC_DIR%"
  108 +
  109 +:endDetectBaseDir
  110 +
  111 +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
  112 +
  113 +@setlocal EnableExtensions EnableDelayedExpansion
  114 +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
  115 +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
  116 +
  117 +:endReadAdditionalConfig
  118 +
  119 +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
  120 +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
  121 +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
  122 +
  123 +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
  124 +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
  125 + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
  126 +)
  127 +
  128 +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
  129 +@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
  130 +if exist %WRAPPER_JAR% (
  131 + echo Found %WRAPPER_JAR%
  132 +) else (
  133 + echo Couldn't find %WRAPPER_JAR%, downloading it ...
  134 + echo Downloading from: %DOWNLOAD_URL%
  135 + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
  136 + echo Finished downloading %WRAPPER_JAR%
  137 +)
  138 +@REM End of extension
  139 +
  140 +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
  141 +if ERRORLEVEL 1 goto error
  142 +goto end
  143 +
  144 +:error
  145 +set ERROR_CODE=1
  146 +
  147 +:end
  148 +@endlocal & set ERROR_CODE=%ERROR_CODE%
  149 +
  150 +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
  151 +@REM check for post script, once with legacy .bat ending and once with .cmd ending
  152 +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
  153 +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
  154 +:skipRcPost
  155 +
  156 +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
  157 +if "%MAVEN_BATCH_PAUSE%" == "on" pause
  158 +
  159 +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
  160 +
  161 +exit /B %ERROR_CODE%
... ...
cloud/autho/pom.xml 0 → 100644
... ... @@ -0,0 +1,106 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4 + <modelVersion>4.0.0</modelVersion>
  5 + <parent>
  6 + <groupId>org.springframework.boot</groupId>
  7 + <artifactId>spring-boot-starter-parent</artifactId>
  8 + <version>2.1.7.RELEASE</version>
  9 + <relativePath/> <!-- lookup parent from repository -->
  10 + </parent>
  11 + <groupId>com.sincere</groupId>
  12 + <artifactId>autho</artifactId>
  13 + <version>0.0.1</version>
  14 + <name>autho</name>
  15 + <description>Demo project for Spring Boot</description>
  16 +
  17 + <properties>
  18 + <java.version>1.8</java.version>
  19 + <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
  20 + </properties>
  21 +
  22 + <dependencies>
  23 + <dependency>
  24 + <groupId>com.sincere</groupId>
  25 + <artifactId>common</artifactId>
  26 + <version>0.0.1-SNAPSHOT</version>
  27 + </dependency>
  28 + <dependency>
  29 + <groupId>org.springframework.cloud</groupId>
  30 + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  31 + </dependency>
  32 + <dependency>
  33 + <groupId>org.springframework.cloud</groupId>
  34 + <artifactId>spring-cloud-starter-oauth2</artifactId>
  35 + </dependency>
  36 +
  37 + <dependency>
  38 + <groupId>org.springframework.cloud</groupId>
  39 + <artifactId>spring-cloud-starter-security</artifactId>
  40 + <version>2.1.3.RELEASE</version>
  41 + </dependency>
  42 +
  43 + <dependency>
  44 + <groupId>org.springframework.boot</groupId>
  45 + <artifactId>spring-boot-starter-test</artifactId>
  46 + <scope>test</scope>
  47 + </dependency>
  48 +
  49 + <dependency>
  50 + <groupId>org.springframework.cloud</groupId>
  51 + <artifactId>spring-cloud-starter-openfeign</artifactId>
  52 + </dependency>
  53 +
  54 + <dependency>
  55 + <groupId>org.springframework.boot</groupId>
  56 + <artifactId>spring-boot-starter-data-redis</artifactId>
  57 + </dependency>
  58 + <dependency>
  59 + <groupId>com.alibaba</groupId>
  60 + <artifactId>fastjson</artifactId>
  61 + <version>1.2.58</version>
  62 + <scope>compile</scope>
  63 + </dependency>
  64 +
  65 + <dependency>
  66 + <groupId>io.grpc</groupId>
  67 + <artifactId>grpc-core</artifactId>
  68 + <version>1.18.0</version>
  69 + </dependency>
  70 +
  71 + <dependency>
  72 + <groupId>io.springfox</groupId>
  73 + <artifactId>springfox-swagger2</artifactId>
  74 + <version>2.9.2</version>
  75 + </dependency>
  76 +
  77 + <dependency>
  78 + <groupId>io.springfox</groupId>
  79 + <artifactId>springfox-swagger-ui</artifactId>
  80 + <version>2.9.2</version>
  81 + </dependency>
  82 +
  83 + </dependencies>
  84 +
  85 + <dependencyManagement>
  86 + <dependencies>
  87 + <dependency>
  88 + <groupId>org.springframework.cloud</groupId>
  89 + <artifactId>spring-cloud-dependencies</artifactId>
  90 + <version>${spring-cloud.version}</version>
  91 + <type>pom</type>
  92 + <scope>import</scope>
  93 + </dependency>
  94 + </dependencies>
  95 + </dependencyManagement>
  96 +
  97 + <build>
  98 + <plugins>
  99 + <plugin>
  100 + <groupId>org.springframework.boot</groupId>
  101 + <artifactId>spring-boot-maven-plugin</artifactId>
  102 + </plugin>
  103 + </plugins>
  104 + </build>
  105 +
  106 +</project>
... ...
cloud/autho/src/main/java/com/sincere/autho/AuthoApplication.java 0 → 100644
... ... @@ -0,0 +1,15 @@
  1 +package com.sincere.autho;
  2 +
  3 +import org.springframework.boot.SpringApplication;
  4 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  5 +import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  6 +
  7 +@EnableDiscoveryClient
  8 +@SpringBootApplication
  9 +public class AuthoApplication {
  10 +
  11 + public static void main(String[] args) {
  12 + SpringApplication.run(AuthoApplication.class, args);
  13 + }
  14 +
  15 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/annotation/EnableLogging.java 0 → 100644
... ... @@ -0,0 +1,22 @@
  1 +package com.sincere.autho.annotation;
  2 +
  3 +import com.sincere.autho.autoconfigure.LoggingConfigurationSelector;
  4 +import org.springframework.context.annotation.Import;
  5 +
  6 +import java.lang.annotation.*;
  7 +
  8 +
  9 +/**
  10 + * 启动日志框架支持
  11 + * @author owen
  12 + * @create 2017年7月2日
  13 + */
  14 +
  15 +@Target(ElementType.TYPE)
  16 +@Retention(RetentionPolicy.RUNTIME)
  17 +@Documented
  18 +//自动装配starter
  19 +@Import(LoggingConfigurationSelector.class)
  20 +public @interface EnableLogging{
  21 +// String name() ;
  22 +}
0 23 \ No newline at end of file
... ...
cloud/autho/src/main/java/com/sincere/autho/annotation/datasource/DataSource.java 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +package com.sincere.autho.annotation.datasource;
  2 +
  3 +import java.lang.annotation.*;
  4 +
  5 +
  6 +/**
  7 + * 数据源选择
  8 + * @author owen
  9 + * @create 2017年7月2日
  10 + */
  11 +@Target({ElementType.METHOD, ElementType.TYPE})
  12 +@Retention(RetentionPolicy.RUNTIME)
  13 +@Documented
  14 +public @interface DataSource {
  15 + String name();
  16 +}
0 17 \ No newline at end of file
... ...
cloud/autho/src/main/java/com/sincere/autho/annotation/log/LogAnnotation.java 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +package com.sincere.autho.annotation.log;
  2 +
  3 +import java.lang.annotation.*;
  4 +
  5 +/**
  6 + * 日志注解
  7 + * @author owen
  8 + * @create 2017年7月2日
  9 + */
  10 +@Target({ElementType.METHOD, ElementType.TYPE})
  11 +@Retention(RetentionPolicy.RUNTIME)
  12 +@Documented
  13 +public @interface LogAnnotation {
  14 +
  15 + /**
  16 + * 模块
  17 + * @return
  18 + */
  19 + String module();
  20 +
  21 + /**
  22 + * 记录执行参数
  23 + * @return
  24 + */
  25 + boolean recordRequestParam() default true;
  26 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/autoconfigure/LoggingConfigurationSelector.java 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +package com.sincere.autho.autoconfigure;
  2 +
  3 +import org.springframework.context.annotation.ImportSelector;
  4 +import org.springframework.core.type.AnnotationMetadata;
  5 +
  6 +/**
  7 + * @author owen
  8 + * @create 2017年7月2日
  9 + * 装配bean
  10 + */
  11 +public class LoggingConfigurationSelector implements ImportSelector {
  12 +
  13 + @Override
  14 + public String[] selectImports(AnnotationMetadata importingClassMetadata) {
  15 + // TODO Auto-generated method stub
  16 +// importingClassMetadata.getAllAnnotationAttributes(EnableEcho.class.getName());
  17 + return new String[] {
  18 + "com.sincere.autho.autoconfigure.datasource.DataSourceAspect",
  19 + "com.sincere.autho.autoconfigure.log.LogAnnotationAspect"
  20 + };
  21 + }
  22 +
  23 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/autoconfigure/datasource/DataSourceAspect.java 0 → 100644
... ... @@ -0,0 +1,42 @@
  1 +package com.sincere.autho.autoconfigure.datasource;
  2 +
  3 +import com.sincere.autho.annotation.datasource.DataSource;
  4 +import com.sincere.common.config.DataSourceHolder;
  5 +import com.sincere.common.config.DataSourceKey;
  6 +import org.aspectj.lang.JoinPoint;
  7 +import org.aspectj.lang.annotation.After;
  8 +import org.aspectj.lang.annotation.Aspect;
  9 +import org.aspectj.lang.annotation.Before;
  10 +import org.slf4j.Logger;
  11 +import org.slf4j.LoggerFactory;
  12 +import org.springframework.core.annotation.Order;
  13 +
  14 +/**
  15 + * 切换数据源Advice
  16 + */
  17 +@Aspect
  18 +@Order(-1) // 保证该AOP在@Transactional之前执行
  19 +public class DataSourceAspect {
  20 +
  21 + private static final Logger logger = LoggerFactory.getLogger(DataSourceAspect.class);
  22 +
  23 + @Before("@annotation(ds)")
  24 + public void changeDataSource(JoinPoint point, DataSource ds) throws Throwable {
  25 + String dsId = ds.name();
  26 + try {
  27 + DataSourceKey dataSourceKey = DataSourceKey.valueOf(dsId);
  28 + DataSourceHolder.setDataSourceKey(dataSourceKey);
  29 + } catch (Exception e) {
  30 + logger.error("数据源[{}]不存在,使用默认数据源 > {}", ds.name(), point.getSignature());
  31 + }
  32 +
  33 +
  34 + }
  35 +
  36 + @After("@annotation(ds)")
  37 + public void restoreDataSource(JoinPoint point, DataSource ds) {
  38 + logger.debug("Revert DataSource : {transIdo} > {}", ds.name(), point.getSignature());
  39 + DataSourceHolder.clearDataSourceKey();
  40 + }
  41 +
  42 +}
0 43 \ No newline at end of file
... ...
cloud/autho/src/main/java/com/sincere/autho/autoconfigure/log/LogAnnotationAspect.java 0 → 100644
... ... @@ -0,0 +1,133 @@
  1 +package com.sincere.autho.autoconfigure.log;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.sincere.autho.annotation.log.LogAnnotation;
  6 +import com.sincere.autho.log.service.LogService;
  7 +import com.sincere.autho.log.service.impl.LogServiceImpl;
  8 +import com.sincere.autho.utils.SysUserUtil;
  9 +import com.sincere.common.model.log.SysLog;
  10 +import com.sincere.common.model.system.LoginAppUser;
  11 +import com.sincere.common.util.SpringUtils;
  12 +import org.aspectj.lang.ProceedingJoinPoint;
  13 +import org.aspectj.lang.annotation.Around;
  14 +import org.aspectj.lang.annotation.Aspect;
  15 +import org.aspectj.lang.reflect.MethodSignature;
  16 +import org.slf4j.Logger;
  17 +import org.slf4j.LoggerFactory;
  18 +import org.springframework.core.annotation.Order;
  19 +
  20 +import javax.servlet.http.HttpServletRequest;
  21 +import javax.servlet.http.HttpServletResponse;
  22 +import java.util.ArrayList;
  23 +import java.util.Date;
  24 +import java.util.List;
  25 +import java.util.concurrent.CompletableFuture;
  26 +import java.util.concurrent.ThreadLocalRandom;
  27 +
  28 +/**
  29 + * 保存日志
  30 + *
  31 + * @author owen
  32 + * @create 2017年7月2日
  33 + */
  34 +@Aspect
  35 +@Order(-1) // 保证该AOP在@Transactional之前执行
  36 +public class LogAnnotationAspect {
  37 +
  38 + private static final Logger logger = LoggerFactory.getLogger(LogAnnotationAspect.class);
  39 +
  40 + @Around("@annotation(ds)")
  41 + public Object logSave(ProceedingJoinPoint joinPoint, LogAnnotation ds) throws Throwable {
  42 +
  43 + // 请求流水号
  44 + String transid = getRandom();
  45 + // 记录开始时间
  46 + long start = System.currentTimeMillis();
  47 + // 获取方法参数
  48 + String url = null;
  49 + String httpMethod = null;
  50 + Object result = null;
  51 + List<Object> httpReqArgs = new ArrayList<Object>();
  52 + SysLog log = new SysLog();
  53 + log.setCreateTime(new Date());
  54 + LoginAppUser loginAppUser = SysUserUtil.getLoginAppUser();
  55 + if (loginAppUser != null) {
  56 + log.setUsername(loginAppUser.getUsername());
  57 + }
  58 +
  59 + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
  60 +
  61 + LogAnnotation logAnnotation = methodSignature.getMethod().getDeclaredAnnotation(LogAnnotation.class);
  62 + log.setModule(logAnnotation.module() + ":" + methodSignature.getDeclaringTypeName() + "/"
  63 + + methodSignature.getName());
  64 +
  65 + Object[] args = joinPoint.getArgs();// 参数值
  66 + url = methodSignature.getDeclaringTypeName() + "/"+ methodSignature.getName();
  67 + for (Object object : args) {
  68 + if (object instanceof HttpServletRequest) {
  69 + HttpServletRequest request = (HttpServletRequest) object;
  70 + url = request.getRequestURI();
  71 + httpMethod = request.getMethod();
  72 + } else if (object instanceof HttpServletResponse) {
  73 + } else {
  74 +
  75 + httpReqArgs.add(object);
  76 + }
  77 + }
  78 +
  79 + try {
  80 + String params = JSONObject.toJSONString(httpReqArgs);
  81 + log.setParams(params);
  82 + // 打印请求参数参数
  83 + logger.info("开始请求,transid={}, url={} , httpMethod={}, reqData={} ", transid, url, httpMethod, params);
  84 + } catch (Exception e) {
  85 + logger.error("记录参数失败:{}", e.getMessage());
  86 + }
  87 +
  88 + try {
  89 + // 调用原来的方法
  90 + result = joinPoint.proceed();
  91 + log.setFlag(Boolean.TRUE);
  92 + } catch (Exception e) {
  93 + log.setFlag(Boolean.FALSE);
  94 + log.setRemark(e.getMessage());
  95 +
  96 + throw e;
  97 + } finally {
  98 +
  99 + CompletableFuture.runAsync(() -> {
  100 + try {
  101 + if (logAnnotation.recordRequestParam()) {
  102 + LogService logService = SpringUtils.getBean(LogServiceImpl.class);
  103 + logService.save(log);
  104 + }
  105 + } catch (Exception e) {
  106 + logger.error("记录参数失败:{}", e.getMessage());
  107 + }
  108 +
  109 + });
  110 + // 获取回执报文及耗时
  111 + logger.info("请求完成, transid={}, 耗时={}, resp={}:", transid, (System.currentTimeMillis() - start),
  112 + result == null ? null : JSON.toJSONString(result));
  113 +
  114 + }
  115 + return result;
  116 + }
  117 +
  118 + /**
  119 + * 生成日志随机数
  120 + *
  121 + * @return
  122 + */
  123 + public String getRandom() {
  124 + int i = 0;
  125 + StringBuilder st = new StringBuilder();
  126 + while (i < 5) {
  127 + i++;
  128 + st.append(ThreadLocalRandom.current().nextInt(10));
  129 + }
  130 + return st.toString() + System.currentTimeMillis();
  131 + }
  132 +
  133 +}
0 134 \ No newline at end of file
... ...
cloud/autho/src/main/java/com/sincere/autho/config/OAuth2ServerConfig.java 0 → 100644
... ... @@ -0,0 +1,260 @@
  1 +
  2 +package com.sincere.autho.config;
  3 +
  4 +import com.sincere.autho.service.RedisAuthorizationCodeServices;
  5 +import com.sincere.autho.service.RedisClientDetailsService;
  6 +import com.sincere.autho.token.RedisTemplateTokenStore;
  7 +import com.sincere.common.props.PermitUrlProperties;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.boot.autoconfigure.AutoConfigureAfter;
  10 +import org.springframework.boot.context.properties.EnableConfigurationProperties;
  11 +import org.springframework.context.annotation.Bean;
  12 +import org.springframework.context.annotation.Configuration;
  13 +import org.springframework.data.redis.core.RedisTemplate;
  14 +import org.springframework.security.authentication.AuthenticationManager;
  15 +import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  16 +import org.springframework.security.config.annotation.web.builders.WebSecurity;
  17 +import org.springframework.security.core.userdetails.UserDetailsService;
  18 +import org.springframework.security.oauth2.common.OAuth2AccessToken;
  19 +import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
  20 +import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
  21 +import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
  22 +import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
  23 +import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
  24 +import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
  25 +import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer;
  26 +import org.springframework.security.oauth2.provider.code.RandomValueAuthorizationCodeServices;
  27 +import org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator;
  28 +import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
  29 +import org.springframework.security.oauth2.provider.token.store.JwtTokenStore;
  30 +import org.springframework.security.web.util.matcher.RequestMatcher;
  31 +import org.springframework.stereotype.Component;
  32 +import org.springframework.util.AntPathMatcher;
  33 +
  34 +import javax.annotation.Resource;
  35 +import javax.servlet.http.HttpServletRequest;
  36 +import javax.sql.DataSource;
  37 +
  38 +/**
  39 + * @author owen 624191343@qq.com
  40 + * @version 创建时间:2017年11月12日 上午22:57:51
  41 + */
  42 +@Configuration
  43 +public class OAuth2ServerConfig {
  44 +
  45 + @Resource
  46 + private DataSource dataSource;
  47 + @Resource
  48 + private RedisTemplate<String, Object> redisTemplate;
  49 +
  50 + /**
  51 + * 声明 ClientDetails实现
  52 + */
  53 + @Bean
  54 + public RedisClientDetailsService redisClientDetailsService() {
  55 + RedisClientDetailsService clientDetailsService = new RedisClientDetailsService(dataSource);
  56 + clientDetailsService.setRedisTemplate(redisTemplate);
  57 + return clientDetailsService;
  58 + }
  59 +
  60 +
  61 + @Bean
  62 + public RandomValueAuthorizationCodeServices authorizationCodeServices() {
  63 + RedisAuthorizationCodeServices redisAuthorizationCodeServices = new RedisAuthorizationCodeServices();
  64 + redisAuthorizationCodeServices.setRedisTemplate(redisTemplate);
  65 + return redisAuthorizationCodeServices;
  66 + }
  67 +
  68 + /**
  69 + * @author owen 624191343@qq.com
  70 + * @version 创建时间:2017年11月12日 上午22:57:51 默认token存储在内存中
  71 + * DefaultTokenServices默认处理
  72 + */
  73 + @Component
  74 + @Configuration
  75 + @EnableAuthorizationServer
  76 + @AutoConfigureAfter(AuthorizationServerEndpointsConfigurer.class)
  77 + public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
  78 + /**
  79 + * 注入authenticationManager 来支持 password grant type
  80 + */
  81 + @Autowired
  82 + private AuthenticationManager authenticationManager;
  83 +
  84 + @Autowired
  85 + private UserDetailsService userDetailsService;
  86 +
  87 + @Autowired(required = false)
  88 + private RedisTemplateTokenStore redisTokenStore;
  89 +
  90 + @Autowired(required = false)
  91 + private JwtTokenStore jwtTokenStore;
  92 + @Autowired(required = false)
  93 + private JwtAccessTokenConverter jwtAccessTokenConverter;
  94 +
  95 + @Autowired
  96 + private WebResponseExceptionTranslator webResponseExceptionTranslator;
  97 +
  98 + @Autowired
  99 + private RedisClientDetailsService redisClientDetailsService;
  100 +
  101 + @Autowired(required = false)
  102 + private RandomValueAuthorizationCodeServices authorizationCodeServices;
  103 +
  104 + /**
  105 + * 配置身份认证器,配置认证方式,TokenStore,TokenGranter,OAuth2RequestFactory
  106 + */
  107 + public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
  108 +
  109 + if (jwtTokenStore != null) {
  110 + endpoints.tokenStore(jwtTokenStore).authenticationManager(authenticationManager)
  111 + // 支持
  112 + .userDetailsService(userDetailsService);
  113 + // password
  114 + // grant
  115 + // type;
  116 + } else if (redisTokenStore != null) {
  117 + endpoints.tokenStore(redisTokenStore).authenticationManager(authenticationManager)
  118 + // 支持
  119 + .userDetailsService(userDetailsService);
  120 + // password
  121 + // grant
  122 + // type;
  123 + }
  124 +
  125 + if (jwtAccessTokenConverter != null) {
  126 + endpoints.accessTokenConverter(jwtAccessTokenConverter);
  127 + }
  128 +
  129 + endpoints.authorizationCodeServices(authorizationCodeServices);
  130 +
  131 + endpoints.exceptionTranslator(webResponseExceptionTranslator);
  132 +
  133 + }
  134 +
  135 + /**
  136 + * 配置应用名称 应用id
  137 + * 配置OAuth2的客户端相关信息
  138 + */
  139 + @Override
  140 + public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
  141 +
  142 + // if(clientDetailsService!=null){
  143 + // clients.withClientDetails(clientDetailsService);
  144 + // }else{
  145 + // clients.inMemory().withClient("neusoft1").secret("neusoft1")
  146 + // .authorizedGrantTypes("authorization_code", "password",
  147 + // "refresh_token").scopes("all")
  148 + // .resourceIds(SERVER_RESOURCE_ID).accessTokenValiditySeconds(1200)
  149 + // .refreshTokenValiditySeconds(50000)
  150 + // .and().withClient("neusoft2").secret("neusoft2")
  151 + // .authorizedGrantTypes("authorization_code", "password",
  152 + // "refresh_token").scopes("all")
  153 + // .resourceIds(SERVER_RESOURCE_ID).accessTokenValiditySeconds(1200)
  154 + // .refreshTokenValiditySeconds(50000)
  155 + // ;
  156 + // }
  157 + clients.withClientDetails(redisClientDetailsService);
  158 + redisClientDetailsService.loadAllClientToCache();
  159 + }
  160 +
  161 + /**
  162 + * 对应于配置AuthorizationServer安全认证的相关信息,创建ClientCredentialsTokenEndpointFilter核心过滤器
  163 + */
  164 + @Override
  165 + public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
  166 + // url:/oauth/token_key,exposes
  167 + security.tokenKeyAccess("permitAll()")
  168 + /// public key for token
  169 + /// verification if using
  170 + /// JWT tokens
  171 + // url:/oauth/check_token
  172 + .checkTokenAccess("isAuthenticated()")
  173 + // allow check token
  174 + .allowFormAuthenticationForClients();
  175 +
  176 + // security.allowFormAuthenticationForClients();
  177 + //// security.tokenKeyAccess("permitAll()");
  178 + // security.tokenKeyAccess("isAuthenticated()");
  179 + }
  180 +
  181 + }
  182 +
  183 + /**
  184 + * 资源服务
  185 + */
  186 + @Configuration
  187 + @EnableResourceServer
  188 + @EnableConfigurationProperties(PermitUrlProperties.class)
  189 + public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
  190 +
  191 + @Autowired
  192 + private PermitUrlProperties permitUrlProperties;
  193 +
  194 + public void configure(WebSecurity web) throws Exception {
  195 + web.ignoring().antMatchers("/health");
  196 + web.ignoring().antMatchers("/oauth/user/token");
  197 + web.ignoring().antMatchers("/oauth/client/token");
  198 + }
  199 +
  200 + @Override
  201 + public void configure(HttpSecurity http) throws Exception {
  202 + http.requestMatcher(
  203 + /**
  204 + * 判断来源请求是否包含oauth2授权信息
  205 + */
  206 + new RequestMatcher() {
  207 + private AntPathMatcher antPathMatcher = new AntPathMatcher();
  208 +
  209 + @Override
  210 + public boolean matches(HttpServletRequest request) {
  211 + // 请求参数中包含access_token参数
  212 + if (request.getParameter(OAuth2AccessToken.ACCESS_TOKEN) != null) {
  213 + return true;
  214 + }
  215 +
  216 + // 头部的Authorization值以Bearer开头
  217 + String auth = request.getHeader("Authorization");
  218 + if (auth != null) {
  219 + if (auth.startsWith(OAuth2AccessToken.BEARER_TYPE)) {
  220 + return true;
  221 + }
  222 + }
  223 + if (antPathMatcher.match(request.getRequestURI(), "/oauth/userinfo")) {
  224 + return true;
  225 + }
  226 + if (antPathMatcher.match(request.getRequestURI(), "/oauth/remove/token")) {
  227 + return true;
  228 + }
  229 + if (antPathMatcher.match(request.getRequestURI(), "/oauth/get/token")) {
  230 + return true;
  231 + }
  232 + if (antPathMatcher.match(request.getRequestURI(), "/oauth/refresh/token")) {
  233 + return true;
  234 + }
  235 +
  236 + if (antPathMatcher.match(request.getRequestURI(), "/oauth/token/list")) {
  237 + return true;
  238 + }
  239 +
  240 + if (antPathMatcher.match("/clients/**", request.getRequestURI())) {
  241 + return true;
  242 + }
  243 +
  244 + if (antPathMatcher.match("/services/**", request.getRequestURI())) {
  245 + return true;
  246 + }
  247 + if (antPathMatcher.match("/redis/**", request.getRequestURI())) {
  248 + return true;
  249 + }
  250 + return false;
  251 + }
  252 + }
  253 +
  254 + ).authorizeRequests().antMatchers(permitUrlProperties.getIgnored()).permitAll().anyRequest()
  255 + .authenticated();
  256 + }
  257 +
  258 + }
  259 +
  260 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/config/SecurityConfig.java 0 → 100644
... ... @@ -0,0 +1,129 @@
  1 +package com.sincere.autho.config;
  2 +
  3 +import com.sincere.autho.handler.OauthLogoutHandler;
  4 +import com.sincere.common.props.PermitUrlProperties;
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.boot.context.properties.EnableConfigurationProperties;
  7 +import org.springframework.context.annotation.Bean;
  8 +import org.springframework.context.annotation.Configuration;
  9 +import org.springframework.security.authentication.AuthenticationManager;
  10 +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
  11 +import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  12 +import org.springframework.security.config.annotation.web.builders.WebSecurity;
  13 +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
  14 +import org.springframework.security.config.http.SessionCreationPolicy;
  15 +import org.springframework.security.core.userdetails.UserDetailsService;
  16 +import org.springframework.security.crypto.password.PasswordEncoder;
  17 +import org.springframework.security.web.AuthenticationEntryPoint;
  18 +import org.springframework.security.web.authentication.AuthenticationFailureHandler;
  19 +import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
  20 +import org.springframework.security.web.authentication.logout.HttpStatusReturningLogoutSuccessHandler;
  21 +
  22 +/**
  23 + * spring security配置
  24 + * 在WebSecurityConfigurerAdapter不拦截oauth要开放的资源
  25 + */
  26 +@Configuration
  27 +//@EnableWebSecurity
  28 +//@EnableGlobalMethodSecurity(prePostEnabled = true)
  29 +@EnableConfigurationProperties(PermitUrlProperties.class)
  30 +public class SecurityConfig extends WebSecurityConfigurerAdapter {
  31 +
  32 + @Autowired
  33 + private AuthenticationSuccessHandler authenticationSuccessHandler;
  34 + @Autowired
  35 + private AuthenticationFailureHandler authenticationFailureHandler;
  36 + // @Autowired
  37 + // private LogoutSuccessHandler logoutSuccessHandler;
  38 + @Autowired(required = false)
  39 + private AuthenticationEntryPoint authenticationEntryPoint;
  40 + @Autowired
  41 + private UserDetailsService userDetailsService;
  42 +
  43 + @Autowired
  44 + private PasswordEncoder passwordEncoder;
  45 +
  46 + @Autowired
  47 + private OauthLogoutHandler oauthLogoutHandler;
  48 + @Autowired
  49 + private PermitUrlProperties permitUrlProperties ;
  50 +
  51 + @Autowired
  52 + private ValidateCodeSecurityConfig validateCodeSecurityConfig ;
  53 +
  54 + @Override
  55 + public void configure(WebSecurity web) throws Exception {
  56 + web.ignoring().antMatchers("/v2/api-docs", "/configuration/ui", "/swagger-resources", "/configuration/security",
  57 + "/swagger-ui.html", "/webjars/**", "/doc.html", "/login.html");
  58 + web.ignoring().antMatchers("/js/**");
  59 + web.ignoring().antMatchers("/css/**");
  60 + web.ignoring().antMatchers("/health");
  61 + // 忽略登录界面
  62 + web.ignoring().antMatchers("/login.html");
  63 + web.ignoring().antMatchers("/index.html");
  64 + web.ignoring().antMatchers("/oauth/user/token");
  65 + web.ignoring().antMatchers("/oauth/client/token");
  66 + web.ignoring().antMatchers("/validata/code/**");
  67 + web.ignoring().antMatchers(permitUrlProperties.getIgnored());
  68 +
  69 + }
  70 + /**
  71 + * 认证管理
  72 + *
  73 + * @return 认证管理对象
  74 + * @throws Exception
  75 + * 认证异常信息
  76 + */
  77 + @Override
  78 + @Bean
  79 + public AuthenticationManager authenticationManagerBean() throws Exception {
  80 + return super.authenticationManagerBean();
  81 + }
  82 +
  83 + @Override
  84 + protected void configure(HttpSecurity http) throws Exception {
  85 + http.csrf().disable();
  86 +
  87 + http.authorizeRequests()
  88 + .anyRequest().authenticated();
  89 + http.formLogin().loginPage("/login.html").loginProcessingUrl("/user/login")
  90 + .successHandler(authenticationSuccessHandler).failureHandler(authenticationFailureHandler);
  91 +
  92 + // 基于密码 等模式可以无session,不支持授权码模式
  93 + if (authenticationEntryPoint != null) {
  94 + http.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint);
  95 + http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
  96 +
  97 + } else {
  98 + // 授权码模式单独处理,需要session的支持,此模式可以支持所有oauth2的认证
  99 + http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED);
  100 + }
  101 +
  102 + http.logout().logoutSuccessUrl("/login.html")
  103 + .logoutSuccessHandler(new HttpStatusReturningLogoutSuccessHandler())
  104 + .addLogoutHandler(oauthLogoutHandler).clearAuthentication(true);
  105 +
  106 + //增加验证码处理
  107 + http.apply(validateCodeSecurityConfig) ;
  108 + // http.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler);
  109 + // 解决不允许显示在iframe的问题
  110 + http.headers().frameOptions().disable();
  111 + http.headers().cacheControl();
  112 +
  113 + }
  114 +
  115 + /**
  116 + * 全局用户信息
  117 + *
  118 + * @param auth
  119 + * 认证管理
  120 + * @throws Exception
  121 + * 用户认证异常信息
  122 + */
  123 + @Autowired
  124 + public void globalUserDetails(AuthenticationManagerBuilder auth) throws Exception {
  125 + auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder);
  126 + }
  127 +
  128 +
  129 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/config/ValidateCodeSecurityConfig.java 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +/**
  2 + *
  3 + */
  4 +package com.sincere.autho.config;
  5 +
  6 +import org.springframework.security.config.annotation.SecurityConfigurerAdapter;
  7 +import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  8 +import org.springframework.security.web.DefaultSecurityFilterChain;
  9 +import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import javax.annotation.Resource;
  13 +import javax.servlet.Filter;
  14 +
  15 +/**
  16 + * 校验码相关安全配置
  17 + *
  18 + * @author zlt
  19 + */
  20 +@Component("validateCodeSecurityConfig")
  21 +public class ValidateCodeSecurityConfig extends SecurityConfigurerAdapter<DefaultSecurityFilterChain, HttpSecurity> {
  22 + @Resource
  23 + private Filter validateCodeFilter;
  24 +
  25 + @Override
  26 + public void configure(HttpSecurity http) {
  27 + http.addFilterBefore(validateCodeFilter, AbstractPreAuthenticatedProcessingFilter.class);
  28 + }
  29 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/control/OAuth2Controller.java 0 → 100644
... ... @@ -0,0 +1,482 @@
  1 +package com.sincere.autho.control;
  2 +
  3 +import com.fasterxml.jackson.core.JsonProcessingException;
  4 +import com.fasterxml.jackson.databind.ObjectMapper;
  5 +import com.sincere.autho.annotation.log.LogAnnotation;
  6 +import com.sincere.autho.service.RedisClientDetailsService;
  7 +import com.sincere.autho.utils.SpringUtil;
  8 +import com.sincere.common.commons.PageResult;
  9 +import com.sincere.common.model.system.LoginAppUser;
  10 +import com.sincere.common.model.system.SysPermission;
  11 +import io.swagger.annotations.Api;
  12 +import io.swagger.annotations.ApiOperation;
  13 +import io.swagger.annotations.ApiParam;
  14 +import org.apache.commons.collections.MapUtils;
  15 +import org.slf4j.Logger;
  16 +import org.slf4j.LoggerFactory;
  17 +import org.springframework.beans.factory.annotation.Autowired;
  18 +import org.springframework.dao.DataAccessException;
  19 +import org.springframework.data.redis.connection.RedisConnection;
  20 +import org.springframework.data.redis.core.Cursor;
  21 +import org.springframework.data.redis.core.RedisCallback;
  22 +import org.springframework.data.redis.core.RedisTemplate;
  23 +import org.springframework.data.redis.core.ScanOptions;
  24 +import org.springframework.http.HttpStatus;
  25 +import org.springframework.security.authentication.AuthenticationManager;
  26 +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
  27 +import org.springframework.security.core.Authentication;
  28 +import org.springframework.security.core.context.SecurityContextHolder;
  29 +import org.springframework.security.crypto.password.PasswordEncoder;
  30 +import org.springframework.security.oauth2.common.OAuth2AccessToken;
  31 +import org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException;
  32 +import org.springframework.security.oauth2.provider.*;
  33 +import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
  34 +import org.springframework.security.oauth2.provider.client.ClientCredentialsTokenGranter;
  35 +import org.springframework.security.oauth2.provider.refresh.RefreshTokenGranter;
  36 +import org.springframework.security.oauth2.provider.request.DefaultOAuth2RequestFactory;
  37 +import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
  38 +import org.springframework.security.oauth2.provider.token.TokenStore;
  39 +import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
  40 +import org.springframework.web.bind.annotation.PostMapping;
  41 +import org.springframework.web.bind.annotation.RequestMapping;
  42 +import org.springframework.web.bind.annotation.RequestParam;
  43 +import org.springframework.web.bind.annotation.RestController;
  44 +
  45 +import javax.annotation.Resource;
  46 +import javax.servlet.http.HttpServletRequest;
  47 +import javax.servlet.http.HttpServletResponse;
  48 +import java.io.IOException;
  49 +import java.util.*;
  50 +
  51 +/**
  52 + * @author 作者 owen E-mail: 624191343@qq.com
  53 + * @version 创建时间:2018年4月28日 下午2:18:54 类说明
  54 + */
  55 +
  56 +@Api(tags = "OAuth2相关操作")
  57 +@RestController
  58 +public class OAuth2Controller {
  59 +
  60 + private static final Logger logger = LoggerFactory.getLogger(OAuth2Controller.class);
  61 + @Resource
  62 + private ObjectMapper objectMapper; // springmvc启动时自动装配json处理类
  63 + @Autowired
  64 + private PasswordEncoder passwordEncoder;
  65 +
  66 + @Autowired
  67 + private TokenStore tokenStore;
  68 +
  69 + @Autowired
  70 + private RedisTemplate<String, Object> redisTemplate;
  71 +
  72 + @ApiOperation(value = "用户名密码获取token")
  73 + @PostMapping("/oauth/user/token")
  74 + public void getUserTokenInfo(
  75 + @ApiParam(required = true, name = "username", value = "账号") @RequestParam(value = "username") String username,
  76 + @ApiParam(required = true, name = "password", value = "密码") @RequestParam(value = "password") String password,
  77 + HttpServletRequest request, HttpServletResponse response) {
  78 + String clientId = request.getHeader("client_id");
  79 + String clientSecret = request.getHeader("client_secret");
  80 +
  81 + try {
  82 +
  83 + if (clientId == null || "".equals(clientId)) {
  84 + throw new UnapprovedClientAuthenticationException("请求头中无client_id信息");
  85 + }
  86 +
  87 + if (clientSecret == null || "".equals(clientSecret)) {
  88 + throw new UnapprovedClientAuthenticationException("请求头中无client_secret信息");
  89 + }
  90 +
  91 + RedisClientDetailsService clientDetailsService = SpringUtil.getBean(RedisClientDetailsService.class);
  92 +
  93 + ClientDetails clientDetails = clientDetailsService.loadClientByClientId(clientId);
  94 +
  95 + if (clientDetails == null) {
  96 + throw new UnapprovedClientAuthenticationException("clientId对应的信息不存在");
  97 + } else if (!passwordEncoder.matches(clientSecret, clientDetails.getClientSecret())) {
  98 + throw new UnapprovedClientAuthenticationException("clientSecret不匹配");
  99 + }
  100 +
  101 + TokenRequest tokenRequest = new TokenRequest(MapUtils.EMPTY_MAP, clientId, clientDetails.getScope(),
  102 + "customer");
  103 +
  104 + OAuth2Request oAuth2Request = tokenRequest.createOAuth2Request(clientDetails);
  105 +
  106 + UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);
  107 +
  108 + AuthenticationManager authenticationManager = SpringUtil.getBean(AuthenticationManager.class);
  109 +
  110 + Authentication authentication = authenticationManager.authenticate(token);
  111 + SecurityContextHolder.getContext().setAuthentication(authentication);
  112 +
  113 + OAuth2Authentication oAuth2Authentication = new OAuth2Authentication(oAuth2Request, authentication);
  114 +
  115 + AuthorizationServerTokenServices authorizationServerTokenServices = SpringUtil
  116 + .getBean("defaultAuthorizationServerTokenServices", AuthorizationServerTokenServices.class);
  117 +
  118 + OAuth2AccessToken oAuth2AccessToken = authorizationServerTokenServices
  119 + .createAccessToken(oAuth2Authentication);
  120 +
  121 + oAuth2Authentication.setAuthenticated(true);
  122 +
  123 + response.setContentType("application/json;charset=UTF-8");
  124 + response.getWriter().write(objectMapper.writeValueAsString(oAuth2AccessToken));
  125 + response.getWriter().flush();
  126 + response.getWriter().close();
  127 +
  128 + } catch (Exception e) {
  129 +
  130 + response.setStatus(HttpStatus.UNAUTHORIZED.value());
  131 +
  132 + response.setContentType("application/json;charset=UTF-8");
  133 +
  134 + Map<String, String> rsp = new HashMap<>();
  135 + rsp.put("resp_code", HttpStatus.UNAUTHORIZED.value() + "");
  136 + rsp.put("rsp_msg", e.getMessage());
  137 +
  138 + try {
  139 + response.getWriter().write(objectMapper.writeValueAsString(rsp));
  140 + response.getWriter().flush();
  141 + response.getWriter().close();
  142 + } catch (JsonProcessingException e1) {
  143 + // TODO Auto-generated catch block
  144 + e1.printStackTrace();
  145 + } catch (IOException e1) {
  146 + // TODO Auto-generated catch block
  147 + e1.printStackTrace();
  148 + }
  149 +
  150 + }
  151 + }
  152 +
  153 +
  154 + @ApiOperation(value = "clientId获取token")
  155 + @PostMapping("/oauth/client/token")
  156 + @LogAnnotation(module = "autho", recordRequestParam = false)
  157 + public void getClientTokenInfo(HttpServletRequest request, HttpServletResponse response) {
  158 +
  159 + String clientId = request.getHeader("client_id");
  160 + String clientSecret = request.getHeader("client_secret");
  161 + try {
  162 +
  163 + if (clientId == null || "".equals(clientId)) {
  164 + throw new UnapprovedClientAuthenticationException("请求参数中无clientId信息");
  165 + }
  166 +
  167 + if (clientSecret == null || "".equals(clientSecret)) {
  168 + throw new UnapprovedClientAuthenticationException("请求参数中无clientSecret信息");
  169 + }
  170 +
  171 + RedisClientDetailsService clientDetailsService = SpringUtil.getBean(RedisClientDetailsService.class);
  172 +
  173 + ClientDetails clientDetails = clientDetailsService.loadClientByClientId(clientId);
  174 +
  175 + if (clientDetails == null) {
  176 + throw new UnapprovedClientAuthenticationException("clientId对应的信息不存在");
  177 + } else if (!passwordEncoder.matches(clientSecret, clientDetails.getClientSecret())) {
  178 + throw new UnapprovedClientAuthenticationException("clientSecret不匹配");
  179 + }
  180 +
  181 + Map<String, String> map = new HashMap<>();
  182 + map.put("client_secret", clientSecret);
  183 + map.put("client_id", clientId);
  184 + map.put("grant_type", "client_credentials");
  185 + TokenRequest tokenRequest = new TokenRequest(map, clientId, clientDetails.getScope(), "client_credentials");
  186 +
  187 + OAuth2Request oAuth2Request = tokenRequest.createOAuth2Request(clientDetails);
  188 +
  189 + AuthorizationServerTokenServices authorizationServerTokenServices = SpringUtil
  190 + .getBean("defaultAuthorizationServerTokenServices", AuthorizationServerTokenServices.class);
  191 + OAuth2RequestFactory requestFactory = new DefaultOAuth2RequestFactory(clientDetailsService);
  192 + ClientCredentialsTokenGranter clientCredentialsTokenGranter = new ClientCredentialsTokenGranter(
  193 + authorizationServerTokenServices, clientDetailsService, requestFactory);
  194 +
  195 + clientCredentialsTokenGranter.setAllowRefresh(true);
  196 + OAuth2AccessToken oAuth2AccessToken = clientCredentialsTokenGranter.grant("client_credentials",
  197 + tokenRequest);
  198 +
  199 + response.setContentType("application/json;charset=UTF-8");
  200 + response.getWriter().write(objectMapper.writeValueAsString(oAuth2AccessToken));
  201 + response.getWriter().flush();
  202 + response.getWriter().close();
  203 +
  204 + } catch (Exception e) {
  205 +
  206 + response.setStatus(HttpStatus.UNAUTHORIZED.value());
  207 + response.setContentType("application/json;charset=UTF-8");
  208 + Map<String, String> rsp = new HashMap<>();
  209 + rsp.put("resp_code", HttpStatus.UNAUTHORIZED.value() + "");
  210 + rsp.put("rsp_msg", e.getMessage());
  211 +
  212 + try {
  213 + response.getWriter().write(objectMapper.writeValueAsString(rsp));
  214 + response.getWriter().flush();
  215 + response.getWriter().close();
  216 + } catch (JsonProcessingException e1) {
  217 + // TODO Auto-generated catch block
  218 + e1.printStackTrace();
  219 + } catch (IOException e1) {
  220 + // TODO Auto-generated catch block
  221 + e1.printStackTrace();
  222 + }
  223 +
  224 + }
  225 + }
  226 +
  227 + @ApiOperation(value = "access_token刷新token")
  228 + @PostMapping(value = "/oauth/refresh/token", params = "access_token")
  229 + public void refreshTokenInfo(String access_token, HttpServletRequest request, HttpServletResponse response) {
  230 +
  231 + // 拿到当前用户信息
  232 + try {
  233 + Authentication user = SecurityContextHolder.getContext().getAuthentication();
  234 +
  235 + if (user != null) {
  236 + if (user instanceof OAuth2Authentication) {
  237 + Authentication athentication = (Authentication) user;
  238 + OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) athentication.getDetails();
  239 + }
  240 +
  241 + }
  242 + OAuth2AccessToken accessToken = tokenStore.readAccessToken(access_token);
  243 + OAuth2Authentication auth = (OAuth2Authentication) user;
  244 + RedisClientDetailsService clientDetailsService = SpringUtil.getBean(RedisClientDetailsService.class);
  245 +
  246 + ClientDetails clientDetails = clientDetailsService
  247 + .loadClientByClientId(auth.getOAuth2Request().getClientId());
  248 +
  249 + AuthorizationServerTokenServices authorizationServerTokenServices = SpringUtil
  250 + .getBean("defaultAuthorizationServerTokenServices", AuthorizationServerTokenServices.class);
  251 + OAuth2RequestFactory requestFactory = new DefaultOAuth2RequestFactory(clientDetailsService);
  252 +
  253 + RefreshTokenGranter refreshTokenGranter = new RefreshTokenGranter(authorizationServerTokenServices,
  254 + clientDetailsService, requestFactory);
  255 +
  256 + Map<String, String> map = new HashMap<>();
  257 + map.put("grant_type", "refresh_token");
  258 + map.put("refresh_token", accessToken.getRefreshToken().getValue());
  259 + TokenRequest tokenRequest = new TokenRequest(map, auth.getOAuth2Request().getClientId(),
  260 + auth.getOAuth2Request().getScope(), "refresh_token");
  261 +
  262 + OAuth2AccessToken oAuth2AccessToken = refreshTokenGranter.grant("refresh_token", tokenRequest);
  263 +
  264 + tokenStore.removeAccessToken(accessToken);
  265 +
  266 + response.setContentType("application/json;charset=UTF-8");
  267 + response.getWriter().write(objectMapper.writeValueAsString(oAuth2AccessToken));
  268 + response.getWriter().flush();
  269 + response.getWriter().close();
  270 + } catch (Exception e) {
  271 + response.setStatus(HttpStatus.UNAUTHORIZED.value());
  272 + response.setContentType("application/json;charset=UTF-8");
  273 + Map<String, String> rsp = new HashMap<>();
  274 + rsp.put("resp_code", HttpStatus.UNAUTHORIZED.value() + "");
  275 + rsp.put("rsp_msg", e.getMessage());
  276 +
  277 + try {
  278 + response.getWriter().write(objectMapper.writeValueAsString(rsp));
  279 + response.getWriter().flush();
  280 + response.getWriter().close();
  281 + } catch (JsonProcessingException e1) {
  282 + // TODO Auto-generated catch block
  283 + e1.printStackTrace();
  284 + } catch (IOException e1) {
  285 + // TODO Auto-generated catch block
  286 + e1.printStackTrace();
  287 + }
  288 + }
  289 +
  290 + }
  291 +
  292 + /**
  293 + * 移除access_token和refresh_token
  294 + *
  295 + * @param access_token
  296 + */
  297 + @ApiOperation(value = "移除token")
  298 + @PostMapping(value = "/oauth/remove/token", params = "access_token")
  299 + public void removeToken(String access_token) {
  300 +
  301 + // 拿到当前用户信息
  302 + Authentication user = SecurityContextHolder.getContext().getAuthentication();
  303 +
  304 + if (user != null) {
  305 + if (user instanceof OAuth2Authentication) {
  306 + Authentication athentication = (Authentication) user;
  307 + OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) athentication.getDetails();
  308 + }
  309 +
  310 + }
  311 + OAuth2AccessToken accessToken = tokenStore.readAccessToken(access_token);
  312 + if (accessToken != null) {
  313 + // 移除access_token
  314 + tokenStore.removeAccessToken(accessToken);
  315 +
  316 + // 移除refresh_token
  317 + if (accessToken.getRefreshToken() != null) {
  318 + tokenStore.removeRefreshToken(accessToken.getRefreshToken());
  319 + }
  320 +
  321 + }
  322 + }
  323 +
  324 + @ApiOperation(value = "获取token信息")
  325 + @PostMapping(value = "/oauth/get/token", params = "access_token")
  326 + public OAuth2AccessToken getTokenInfo(String access_token) {
  327 +
  328 + // 拿到当前用户信息
  329 + Authentication user = SecurityContextHolder.getContext().getAuthentication();
  330 +
  331 + if (user != null) {
  332 + if (user instanceof OAuth2Authentication) {
  333 + Authentication athentication = (Authentication) user;
  334 + OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) athentication.getDetails();
  335 + }
  336 +
  337 + }
  338 + OAuth2AccessToken accessToken = tokenStore.readAccessToken(access_token);
  339 +
  340 + return accessToken;
  341 +
  342 + }
  343 +
  344 + /**
  345 + * 当前登陆用户信息
  346 + * security获取当前登录用户的方法是SecurityContextHolder.getContext().getAuthentication()
  347 + * 这里的实现类是org.springframework.security.oauth2.provider.OAuth2Authentication
  348 + *
  349 + * @return
  350 + */
  351 + @ApiOperation(value = "当前登陆用户信息")
  352 + @RequestMapping(value = { "/oauth/userinfo" }, produces = "application/json") // 获取用户信息。/auth/user
  353 + public Map<String, Object> getCurrentUserDetail() {
  354 + Map<String, Object> userInfo = new HashMap<>();
  355 + userInfo.put("user", SecurityContextHolder.getContext().getAuthentication().getPrincipal());
  356 + logger.debug("认证详细信息:" + SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString());
  357 +
  358 + List<SysPermission> permissions = new ArrayList<>();
  359 +
  360 + new ArrayList(SecurityContextHolder.getContext().getAuthentication().getAuthorities()).forEach(o -> {
  361 + SysPermission sysPermission = new SysPermission();
  362 + sysPermission.setPermission(o.toString());
  363 + permissions.add(sysPermission);
  364 + });
  365 + // userInfo.put("authorities",
  366 + // AuthorityUtils.authorityListToSet(SecurityContextHolder.getContext().getAuthentication().getAuthorities())
  367 + // );
  368 + userInfo.put("permissions", permissions);
  369 +
  370 + userInfo.put("resp_code", "200");
  371 +
  372 + logger.info("返回信息:{}", userInfo);
  373 +
  374 + return userInfo;
  375 + }
  376 +
  377 + @ApiOperation(value = "token列表")
  378 + @PostMapping("/oauth/token/list")
  379 + public PageResult<HashMap<String, String>> getUserTokenInfo(@RequestParam Map<String, Object> params)
  380 + throws Exception {
  381 + List<HashMap<String, String>> list = new ArrayList<>();
  382 +
  383 + Set<String> keys = redisTemplate.keys("access:" + "*") ;
  384 +// Object key1 = keys.toArray()[0];
  385 +// Object token1 = redisTemplate.opsForValue().get(key1);
  386 + //根据分页参数获取对应数据
  387 + // List<String> pages = findKeysForPage("access:" + "*", MapUtils.getInteger(params, "page"),MapUtils.getInteger(params, "limit"));
  388 +
  389 + for (Object key: keys.toArray()) {
  390 +// String key = page;
  391 +// String accessToken = StringUtils.substringAfter(key, "access:");
  392 +// OAuth2AccessToken token = tokenStore.readAccessToken(accessToken);
  393 + OAuth2AccessToken token = (OAuth2AccessToken)redisTemplate.opsForValue().get(key);
  394 + HashMap<String, String> map = new HashMap<String, String>();
  395 +
  396 + try {
  397 + map.put("token_type", token.getTokenType());
  398 + map.put("token_value", token.getValue());
  399 + map.put("expires_in", token.getExpiresIn()+"");
  400 + } catch (Exception e) {
  401 +
  402 + }
  403 +
  404 +
  405 + OAuth2Authentication oAuth2Auth = tokenStore.readAuthentication(token);
  406 + Authentication authentication = oAuth2Auth.getUserAuthentication();
  407 +
  408 + map.put("client_id", oAuth2Auth.getOAuth2Request().getClientId());
  409 + map.put("grant_type", oAuth2Auth.getOAuth2Request().getGrantType());
  410 +
  411 + if (authentication instanceof UsernamePasswordAuthenticationToken) {
  412 + UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) authentication;
  413 +
  414 + if(authenticationToken.getPrincipal() instanceof LoginAppUser ){
  415 + LoginAppUser user = (LoginAppUser) authenticationToken.getPrincipal();
  416 + map.put("user_id", user.getId()+"");
  417 + map.put("user_name", user.getUsername()+"");
  418 + map.put("user_head_imgurl", user.getHeadImgUrl()+"");
  419 + }
  420 +
  421 +
  422 + }else if (authentication instanceof PreAuthenticatedAuthenticationToken){
  423 + //刷新token方式
  424 + PreAuthenticatedAuthenticationToken authenticationToken = (PreAuthenticatedAuthenticationToken) authentication;
  425 + if(authenticationToken.getPrincipal() instanceof LoginAppUser ){
  426 + LoginAppUser user = (LoginAppUser) authenticationToken.getPrincipal();
  427 + map.put("user_id", user.getId()+"");
  428 + map.put("user_name", user.getUsername()+"");
  429 + map.put("user_head_imgurl", user.getHeadImgUrl()+"");
  430 + }
  431 +
  432 + }
  433 + list.add(map);
  434 +
  435 + }
  436 +
  437 +
  438 +
  439 + return PageResult.<HashMap<String, String>>builder().data(list).code(0).count((long) keys.size()).build();
  440 +
  441 + }
  442 +
  443 + public List<String> findKeysForPage(String patternKey, int pageNum, int pageSize) {
  444 +
  445 + Set<String> execute = redisTemplate.execute(new RedisCallback<Set<String>>() {
  446 +
  447 + @Override
  448 + public Set<String> doInRedis(RedisConnection connection) throws DataAccessException {
  449 +
  450 + Set<String> binaryKeys = new HashSet<>();
  451 +
  452 + Cursor<byte[]> cursor = connection
  453 + .scan(new ScanOptions.ScanOptionsBuilder().match(patternKey).count(1000).build());
  454 + int tmpIndex = 0;
  455 + int startIndex = (pageNum - 1) * pageSize;
  456 + int end = pageNum * pageSize;
  457 + while (cursor.hasNext()) {
  458 + if (tmpIndex >= startIndex && tmpIndex < end) {
  459 + binaryKeys.add(new String(cursor.next()));
  460 + tmpIndex++;
  461 + continue;
  462 + }
  463 +
  464 + // 获取到满足条件的数据后,就可以退出了
  465 + if (tmpIndex >= end) {
  466 + break;
  467 + }
  468 +
  469 + tmpIndex++;
  470 + cursor.next();
  471 + }
  472 + connection.close();
  473 + return binaryKeys;
  474 + }
  475 + });
  476 +
  477 + List<String> result = new ArrayList<String>(pageSize);
  478 + result.addAll(execute);
  479 + return result;
  480 + }
  481 +
  482 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/control/UserController.java 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +package com.sincere.autho.control;
  2 +
  3 +import org.springframework.web.bind.annotation.GetMapping;
  4 +import org.springframework.web.bind.annotation.RestController;
  5 +
  6 +import java.security.Principal;
  7 +
  8 +@RestController
  9 +public class UserController {
  10 +
  11 + @GetMapping("/user")
  12 + public Principal user(Principal user){
  13 + return user;
  14 + }
  15 +
  16 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/handler/ExceptionHandlerAdvice.java 0 → 100644
... ... @@ -0,0 +1,63 @@
  1 +package com.sincere.autho.handler;
  2 +
  3 +import io.grpc.StatusRuntimeException;
  4 +import org.springframework.http.HttpStatus;
  5 +import org.springframework.security.access.AccessDeniedException;
  6 +import org.springframework.web.bind.annotation.ExceptionHandler;
  7 +import org.springframework.web.bind.annotation.ResponseStatus;
  8 +import org.springframework.web.bind.annotation.RestControllerAdvice;
  9 +
  10 +import java.util.HashMap;
  11 +import java.util.Map;
  12 +
  13 +
  14 +/**
  15 + * @author 作者 owen E-mail: 624191343@qq.com
  16 + * @version 创建时间:2017年11月12日 上午22:57:51
  17 + * 异常通用处理
  18 +*/
  19 +@RestControllerAdvice
  20 +public class ExceptionHandlerAdvice {
  21 +
  22 + /**
  23 + * IllegalArgumentException异常处理返回json
  24 + * 状态码:400
  25 + * @param exception
  26 + * @return
  27 + */
  28 + @ExceptionHandler({ IllegalArgumentException.class })
  29 + @ResponseStatus(HttpStatus.BAD_REQUEST)
  30 + public Map<String, Object> badRequestException(IllegalArgumentException exception) {
  31 + Map<String, Object> data = new HashMap<>();
  32 + data.put("resp_code", HttpStatus.BAD_REQUEST.value());
  33 + data.put("resp_msg", exception.getMessage());
  34 +
  35 + return data;
  36 + }
  37 + /**
  38 + * AccessDeniedException异常处理返回json
  39 + * 状态码:403
  40 + * @param exception
  41 + * @return
  42 + */
  43 + @ExceptionHandler({ AccessDeniedException.class })
  44 + @ResponseStatus(HttpStatus.FORBIDDEN)
  45 + public Map<String, Object> badMethodExpressException(AccessDeniedException exception) {
  46 + Map<String, Object> data = new HashMap<>();
  47 + data.put("resp_code", HttpStatus.FORBIDDEN.value());
  48 + data.put("resp_msg", exception.getMessage());
  49 +
  50 + return data;
  51 + }
  52 + @ExceptionHandler({ StatusRuntimeException.class })
  53 + @ResponseStatus(HttpStatus.BAD_REQUEST)
  54 + public Map<String, Object> badRequestException(StatusRuntimeException exception) {
  55 + Map<String, Object> data = new HashMap<>();
  56 + data.put("resp_code", HttpStatus.INTERNAL_SERVER_ERROR.value());
  57 + data.put("resp_msg", exception.getMessage());
  58 +
  59 + return data;
  60 + }
  61 +
  62 +
  63 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/handler/OauthLogoutHandler.java 0 → 100644
... ... @@ -0,0 +1,90 @@
  1 +package com.sincere.autho.handler;
  2 +
  3 +import org.slf4j.Logger;
  4 +import org.slf4j.LoggerFactory;
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.security.core.Authentication;
  7 +import org.springframework.security.oauth2.common.OAuth2AccessToken;
  8 +import org.springframework.security.oauth2.common.OAuth2RefreshToken;
  9 +import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
  10 +import org.springframework.security.oauth2.provider.token.TokenStore;
  11 +import org.springframework.security.web.authentication.logout.LogoutHandler;
  12 +import org.springframework.util.Assert;
  13 +
  14 +import javax.servlet.http.HttpServletRequest;
  15 +import javax.servlet.http.HttpServletResponse;
  16 +import java.util.Enumeration;
  17 +
  18 +/**
  19 + * @author keets
  20 + * @date 2017/10/17
  21 + */
  22 +public class OauthLogoutHandler implements LogoutHandler {
  23 +
  24 + private static final Logger logger = LoggerFactory.getLogger(OauthLogoutHandler.class);
  25 +
  26 + @Autowired
  27 + private TokenStore tokenStore;
  28 +
  29 + @Override
  30 + public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
  31 + Assert.notNull(tokenStore, "tokenStore must be set");
  32 + String token = extractToken(request);
  33 + if(token!=null || !"".equals(token)){
  34 + OAuth2AccessToken existingAccessToken = tokenStore.readAccessToken(token);
  35 + OAuth2RefreshToken refreshToken;
  36 + if (existingAccessToken != null) {
  37 + if (existingAccessToken.getRefreshToken() != null) {
  38 + logger.info("remove refreshToken!", existingAccessToken.getRefreshToken());
  39 + refreshToken = existingAccessToken.getRefreshToken();
  40 + tokenStore.removeRefreshToken(refreshToken);
  41 + }
  42 + logger.info("remove existingAccessToken!", existingAccessToken);
  43 + tokenStore.removeAccessToken(existingAccessToken);
  44 + }
  45 + return;
  46 + }
  47 +
  48 + }
  49 +
  50 + protected String extractToken(HttpServletRequest request) {
  51 + // first check the header...
  52 + String token = extractHeaderToken(request);
  53 +
  54 + // bearer type allows a request parameter as well
  55 + if (token == null) {
  56 + logger.debug("Token not found in headers. Trying request parameters.");
  57 + token = request.getParameter(OAuth2AccessToken.ACCESS_TOKEN);
  58 + if (token == null) {
  59 + logger.debug("Token not found in request parameters. Not an OAuth2 request.");
  60 + } else {
  61 + request.setAttribute(OAuth2AuthenticationDetails.ACCESS_TOKEN_TYPE, OAuth2AccessToken.BEARER_TYPE);
  62 + }
  63 + }
  64 +
  65 + return token;
  66 + }
  67 +
  68 + protected String extractHeaderToken(HttpServletRequest request) {
  69 + Enumeration<String> headers = request.getHeaders("Authorization");
  70 + while (headers.hasMoreElements()) { // typically there is only one (most
  71 + // servers enforce that)
  72 + String value = headers.nextElement();
  73 + if ((value.toLowerCase().startsWith(OAuth2AccessToken.BEARER_TYPE.toLowerCase()))) {
  74 + String authHeaderValue = value.substring(OAuth2AccessToken.BEARER_TYPE.length()).trim();
  75 + // Add this here for the auth details later. Would be better to
  76 + // change the signature of this method.
  77 + request.setAttribute(OAuth2AuthenticationDetails.ACCESS_TOKEN_TYPE,
  78 + value.substring(0, OAuth2AccessToken.BEARER_TYPE.length()).trim());
  79 + int commaIndex = authHeaderValue.indexOf(',');
  80 + if (commaIndex > 0) {
  81 + authHeaderValue = authHeaderValue.substring(0, commaIndex);
  82 + }
  83 + return authHeaderValue;
  84 + }
  85 + }
  86 +
  87 + return null;
  88 + }
  89 +
  90 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/log/dao/LogDao.java 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +package com.sincere.autho.log.dao;
  2 +
  3 +import com.sincere.common.model.log.SysLog;
  4 +import org.apache.ibatis.annotations.Insert;
  5 +import org.apache.ibatis.annotations.Mapper;
  6 +
  7 +@Mapper
  8 +public interface LogDao {
  9 +
  10 + @Insert("insert into sys_log(username, module, params, remark, flag, createTime) values(#{username}, #{module}, #{params}, #{remark}, #{flag}, #{createTime})")
  11 + int save(SysLog log);
  12 +
  13 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/log/service/LogService.java 0 → 100644
... ... @@ -0,0 +1,11 @@
  1 +package com.sincere.autho.log.service;
  2 +
  3 +
  4 +import com.sincere.common.model.log.SysLog;
  5 +
  6 +public interface LogService {
  7 +
  8 + void save(SysLog log);
  9 +
  10 +
  11 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/log/service/impl/LogServiceImpl.java 0 → 100644
... ... @@ -0,0 +1,34 @@
  1 +package com.sincere.autho.log.service.impl;
  2 +
  3 +import com.sincere.autho.annotation.datasource.DataSource;
  4 +import com.sincere.autho.log.dao.LogDao;
  5 +import com.sincere.autho.log.service.LogService;
  6 +import com.sincere.common.model.log.SysLog;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.scheduling.annotation.Async;
  9 +import org.springframework.stereotype.Service;
  10 +
  11 +import java.util.Date;
  12 +
  13 +@Service
  14 +public class LogServiceImpl implements LogService {
  15 +
  16 + @Autowired
  17 + private LogDao logDao;
  18 +
  19 + @Async
  20 + @Override
  21 + @DataSource(name="log")
  22 + public void save(SysLog log) {
  23 + if (log.getCreateTime() == null) {
  24 + log.setCreateTime(new Date());
  25 + }
  26 + if (log.getFlag() == null) {
  27 + log.setFlag(Boolean.TRUE);
  28 + }
  29 +
  30 + logDao.save(log);
  31 + }
  32 +
  33 +
  34 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/service/RedisAuthorizationCodeServices.java 0 → 100644
... ... @@ -0,0 +1,58 @@
  1 +package com.sincere.autho.service;
  2 +
  3 +import org.springframework.data.redis.core.RedisTemplate;
  4 +import org.springframework.security.oauth2.provider.OAuth2Authentication;
  5 +import org.springframework.security.oauth2.provider.code.RandomValueAuthorizationCodeServices;
  6 +
  7 +import java.util.concurrent.TimeUnit;
  8 +
  9 +/**
  10 + * JdbcAuthorizationCodeServices替换
  11 + */
  12 +public class RedisAuthorizationCodeServices extends RandomValueAuthorizationCodeServices {
  13 +
  14 + private RedisTemplate<String,Object> redisTemplate ;
  15 +
  16 +
  17 + public RedisTemplate<String, Object> getRedisTemplate() {
  18 + return redisTemplate;
  19 + }
  20 +
  21 + public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
  22 + this.redisTemplate = redisTemplate;
  23 + }
  24 +
  25 + /**
  26 + * 替换JdbcAuthorizationCodeServices的存储策略
  27 + * 将存储code到redis,并设置过期时间,10分钟<br>
  28 + */
  29 + @Override
  30 + protected void store(String code, OAuth2Authentication authentication) {
  31 +
  32 + redisTemplate.opsForValue().set(redisKey(code), authentication, 10, TimeUnit.MINUTES);
  33 +
  34 +
  35 + }
  36 +
  37 + @Override
  38 + protected OAuth2Authentication remove(final String code) {
  39 +
  40 + String codeKey =redisKey(code) ;
  41 +
  42 + OAuth2Authentication token = (OAuth2Authentication) redisTemplate.opsForValue().get(codeKey) ;
  43 +
  44 + this.redisTemplate.delete(codeKey);
  45 +
  46 + return token;
  47 + }
  48 +
  49 + /**
  50 + * redis中 code key的前缀
  51 + *
  52 + * @param code
  53 + * @return
  54 + */
  55 + private String redisKey(String code) {
  56 + return "oauth:code:" + code;
  57 + }
  58 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/service/RedisClientDetailsService.java 0 → 100644
... ... @@ -0,0 +1,153 @@
  1 +package com.sincere.autho.service;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import org.apache.commons.lang.StringUtils;
  5 +import org.slf4j.Logger;
  6 +import org.slf4j.LoggerFactory;
  7 +import org.springframework.data.redis.core.RedisTemplate;
  8 +import org.springframework.security.oauth2.common.exceptions.InvalidClientException;
  9 +import org.springframework.security.oauth2.provider.ClientDetails;
  10 +import org.springframework.security.oauth2.provider.NoSuchClientException;
  11 +import org.springframework.security.oauth2.provider.client.BaseClientDetails;
  12 +import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService;
  13 +import org.springframework.util.CollectionUtils;
  14 +
  15 +import javax.sql.DataSource;
  16 +import java.util.List;
  17 +
  18 +
  19 +/**
  20 + * @author owen 624191343@qq.com
  21 + * @version 创建时间:2017年11月12日 上午22:57:51
  22 + * 类说明
  23 + * 将oauth_client_details表数据缓存到redis,这里做个缓存优化
  24 + * layui模块中有对oauth_client_details的crud, 注意同步redis的数据
  25 + * 注意对oauth_client_details清楚redis db部分数据的清空
  26 + */
  27 +
  28 +public class RedisClientDetailsService extends JdbcClientDetailsService {
  29 +
  30 +
  31 + // 扩展 默认的 ClientDetailsService, 增加逻辑删除判断( status = 1)
  32 + private static final String SELECT_CLIENT_DETAILS_SQL = "select client_id, client_secret, resource_ids, scope, authorized_grant_types, " +
  33 + "web_server_redirect_uri, authorities, access_token_validity, refresh_token_validity, additional_information, autoapprove " +
  34 + "from oauth_client_details where client_id = ? and `status` = 1 ";
  35 +
  36 +
  37 + private static final String SELECT_FIND_STATEMENT = "select client_id, client_secret,resource_ids, scope, "
  38 + + "authorized_grant_types, web_server_redirect_uri, authorities, access_token_validity, "
  39 + + "refresh_token_validity, additional_information, autoapprove from oauth_client_details where `status` = 1 order by client_id " ;
  40 +
  41 + /**
  42 + * 缓存client的redis key,这里是hash结构存储
  43 + */
  44 + private static final String CACHE_CLIENT_KEY = "oauth_client_details";
  45 +
  46 + private Logger logger = LoggerFactory.getLogger(RedisClientDetailsService.class) ;
  47 +
  48 + private RedisTemplate<String,Object> redisTemplate ;
  49 +
  50 + public RedisTemplate<String, Object> getRedisTemplate() {
  51 + return redisTemplate;
  52 + }
  53 +
  54 + public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
  55 + this.redisTemplate = redisTemplate;
  56 + }
  57 +
  58 + public RedisClientDetailsService(DataSource dataSource) {
  59 + super(dataSource);
  60 + setSelectClientDetailsSql(SELECT_CLIENT_DETAILS_SQL) ;
  61 + setFindClientDetailsSql(SELECT_FIND_STATEMENT) ;
  62 + }
  63 +
  64 +
  65 +
  66 + @Override
  67 + public ClientDetails loadClientByClientId(String clientId) throws InvalidClientException {
  68 + ClientDetails clientDetails = null;
  69 +
  70 + // 先从redis获取
  71 + String value = (String) redisTemplate.boundHashOps(CACHE_CLIENT_KEY).get(clientId);
  72 + if (StringUtils.isBlank(value)) {
  73 + clientDetails = cacheAndGetClient(clientId);
  74 + } else {
  75 + clientDetails = JSONObject.parseObject(value, BaseClientDetails.class);
  76 + }
  77 +
  78 + return clientDetails;
  79 + }
  80 +
  81 + /**
  82 + * 缓存client并返回client
  83 + *
  84 + * @param clientId
  85 + * @return
  86 + */
  87 + private ClientDetails cacheAndGetClient(String clientId) {
  88 + // 从数据库读取
  89 + ClientDetails clientDetails = null ;
  90 + try {
  91 + clientDetails = super.loadClientByClientId(clientId);
  92 + if (clientDetails != null) {
  93 + // 写入redis缓存
  94 + redisTemplate.boundHashOps(CACHE_CLIENT_KEY).put(clientId, JSONObject.toJSONString(clientDetails));
  95 + logger.info("缓存clientId:{},{}", clientId, clientDetails);
  96 + }
  97 + }catch (NoSuchClientException e){
  98 + logger.info("clientId:{},{}", clientId, clientId );
  99 + }catch (InvalidClientException e) {
  100 + // TODO Auto-generated catch block
  101 + e.printStackTrace();
  102 + }
  103 +
  104 + return clientDetails;
  105 + }
  106 +
  107 + @Override
  108 + public void updateClientDetails(ClientDetails clientDetails) throws NoSuchClientException {
  109 + super.updateClientDetails(clientDetails);
  110 + cacheAndGetClient(clientDetails.getClientId());
  111 + }
  112 +
  113 + @Override
  114 + public void updateClientSecret(String clientId, String secret) throws NoSuchClientException {
  115 + super.updateClientSecret(clientId, secret);
  116 + cacheAndGetClient(clientId);
  117 + }
  118 +
  119 + @Override
  120 + public void removeClientDetails(String clientId) throws NoSuchClientException {
  121 + super.removeClientDetails(clientId);
  122 + removeRedisCache(clientId);
  123 + }
  124 +
  125 + /**
  126 + * 删除redis缓存
  127 + *
  128 + * @param clientId
  129 + */
  130 + private void removeRedisCache(String clientId) {
  131 + redisTemplate.boundHashOps(CACHE_CLIENT_KEY).delete(clientId);
  132 + }
  133 +
  134 + /**
  135 + * 将oauth_client_details全表刷入redis
  136 + */
  137 + public void loadAllClientToCache() {
  138 + if (redisTemplate.hasKey(CACHE_CLIENT_KEY)) {
  139 + return;
  140 + }
  141 + logger.info("将oauth_client_details全表刷入redis");
  142 +
  143 + List<ClientDetails> list = super.listClientDetails();
  144 + if (CollectionUtils.isEmpty(list)) {
  145 + logger.error("oauth_client_details表数据为空,请检查");
  146 + return;
  147 + }
  148 +
  149 + list.parallelStream().forEach(client -> {
  150 + redisTemplate.boundHashOps(CACHE_CLIENT_KEY).put(client.getClientId(), JSONObject.toJSONString(client));
  151 + });
  152 + }
  153 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/token/RedisTemplateTokenStore.java 0 → 100644
... ... @@ -0,0 +1,331 @@
  1 +package com.sincere.autho.token;
  2 +
  3 +import com.sincere.common.model.system.LoginAppUser;
  4 +import org.springframework.data.redis.core.RedisTemplate;
  5 +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
  6 +import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
  7 +import org.springframework.security.oauth2.common.ExpiringOAuth2RefreshToken;
  8 +import org.springframework.security.oauth2.common.OAuth2AccessToken;
  9 +import org.springframework.security.oauth2.common.OAuth2RefreshToken;
  10 +import org.springframework.security.oauth2.provider.OAuth2Authentication;
  11 +import org.springframework.security.oauth2.provider.token.AuthenticationKeyGenerator;
  12 +import org.springframework.security.oauth2.provider.token.DefaultAuthenticationKeyGenerator;
  13 +import org.springframework.security.oauth2.provider.token.TokenStore;
  14 +
  15 +import java.time.Instant;
  16 +import java.time.LocalDateTime;
  17 +import java.time.ZoneId;
  18 +import java.util.*;
  19 +import java.util.concurrent.TimeUnit;
  20 +
  21 +/**
  22 + * @version redis集群存储token
  23 + */
  24 +
  25 +public class RedisTemplateTokenStore implements TokenStore {
  26 +
  27 + private static final String ACCESS = "access:";
  28 + private static final String AUTH_TO_ACCESS = "auth_to_access:";
  29 + private static final String AUTH = "auth:";
  30 + private static final String REFRESH_AUTH = "refresh_auth:";
  31 + private static final String ACCESS_TO_REFRESH = "access_to_refresh:";
  32 + private static final String REFRESH = "refresh:";
  33 + private static final String REFRESH_TO_ACCESS = "refresh_to_access:";
  34 + private static final String CLIENT_ID_TO_ACCESS = "client_id_to_access:";
  35 + private static final String UNAME_TO_ACCESS = "uname_to_access:";
  36 + private static final String TOKEN = "token:";
  37 +
  38 + private RedisTemplate<String, Object> redisTemplate;
  39 +
  40 + public RedisTemplate<String, Object> getRedisTemplate() {
  41 + return redisTemplate;
  42 + }
  43 +
  44 + public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
  45 + this.redisTemplate = redisTemplate;
  46 + }
  47 +
  48 + private AuthenticationKeyGenerator authenticationKeyGenerator = new DefaultAuthenticationKeyGenerator();
  49 +
  50 + public void setAuthenticationKeyGenerator(AuthenticationKeyGenerator authenticationKeyGenerator) {
  51 + this.authenticationKeyGenerator = authenticationKeyGenerator;
  52 + }
  53 +
  54 + public OAuth2AccessToken getAccessToken(OAuth2Authentication authentication) {
  55 + String key = authenticationKeyGenerator.extractKey(authentication);
  56 + OAuth2AccessToken accessToken = (OAuth2AccessToken) redisTemplate.opsForValue().get(AUTH_TO_ACCESS + key);
  57 + if (accessToken != null
  58 + && !key.equals(authenticationKeyGenerator.extractKey(readAuthentication(accessToken.getValue())))) {
  59 + // Keep the stores consistent (maybe the same user is represented by
  60 + // this authentication but the details
  61 + // have changed)
  62 + storeAccessToken(accessToken, authentication);
  63 + }
  64 + return accessToken;
  65 + }
  66 +
  67 + public OAuth2Authentication readAuthentication(OAuth2AccessToken token) {
  68 + return readAuthentication(token.getValue());
  69 + }
  70 +
  71 + public OAuth2Authentication readAuthentication(String token) {
  72 + return (OAuth2Authentication) this.redisTemplate.opsForValue().get(AUTH + token);
  73 + }
  74 +
  75 + public OAuth2Authentication readAuthenticationForRefreshToken(OAuth2RefreshToken token) {
  76 + return readAuthenticationForRefreshToken(token.getValue());
  77 + }
  78 +
  79 + public OAuth2Authentication readAuthenticationForRefreshToken(String token) {
  80 + return (OAuth2Authentication) this.redisTemplate.opsForValue().get(REFRESH_AUTH + token);
  81 + }
  82 +
  83 + public void storeAccessToken(OAuth2AccessToken token, OAuth2Authentication authentication) {
  84 +
  85 + OAuth2AccessToken existingAccessToken = this.getAccessToken(authentication);
  86 +
  87 + this.redisTemplate.opsForValue().set(ACCESS + token.getValue(), token);
  88 + this.redisTemplate.opsForValue().set(AUTH + token.getValue(), authentication);
  89 + this.redisTemplate.opsForValue().set(AUTH_TO_ACCESS + authenticationKeyGenerator.extractKey(authentication),
  90 + token);
  91 +
  92 + Map<String, Object> params = new HashMap<>();
  93 +
  94 + params.put("clientId", authentication.getOAuth2Request().getClientId());
  95 +
  96 + if (authentication.getUserAuthentication() instanceof UsernamePasswordAuthenticationToken) {
  97 + UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) authentication
  98 + .getUserAuthentication();
  99 + LoginAppUser appUser = (LoginAppUser) authenticationToken.getPrincipal();
  100 + params.put("username", appUser.getUsername());
  101 + params.put("authorities", appUser.getAuthorities());
  102 + }
  103 +
  104 + if (!params.isEmpty()) {
  105 + this.redisTemplate.opsForValue().set(TOKEN + token.getValue(), params);
  106 + }
  107 +
  108 + if (!authentication.isClientOnly()) {
  109 + if (existingAccessToken != null) {
  110 + if (!existingAccessToken.isExpired()) {
  111 + int seconds = token.getExpiresIn();
  112 + redisTemplate.expire(UNAME_TO_ACCESS + authentication.getOAuth2Request().getClientId(), seconds,
  113 + TimeUnit.SECONDS);
  114 + } else {
  115 + redisTemplate.opsForList().rightPush(UNAME_TO_ACCESS + getApprovalKey(authentication), token);
  116 + }
  117 + } else {
  118 + redisTemplate.opsForList().rightPush(UNAME_TO_ACCESS + getApprovalKey(authentication), token);
  119 + }
  120 +
  121 + }
  122 +
  123 + if (existingAccessToken != null) {
  124 + if (!existingAccessToken.isExpired()) {
  125 + int seconds = token.getExpiresIn();
  126 + redisTemplate.expire(CLIENT_ID_TO_ACCESS + authentication.getOAuth2Request().getClientId(), seconds,
  127 + TimeUnit.SECONDS);
  128 +
  129 + } else {
  130 + redisTemplate.opsForList()
  131 + .rightPush(CLIENT_ID_TO_ACCESS + authentication.getOAuth2Request().getClientId(), token);
  132 + }
  133 + } else {
  134 + redisTemplate.opsForList().rightPush(CLIENT_ID_TO_ACCESS + authentication.getOAuth2Request().getClientId(),
  135 + token);
  136 + }
  137 +
  138 + if (token.getExpiration() != null) {
  139 +
  140 + int seconds = token.getExpiresIn();
  141 + redisTemplate.expire(ACCESS + token.getValue(), seconds, TimeUnit.SECONDS);
  142 + redisTemplate.expire(AUTH + token.getValue(), seconds, TimeUnit.SECONDS);
  143 + redisTemplate.expire(TOKEN + token.getValue(), seconds, TimeUnit.SECONDS);
  144 + redisTemplate.expire(AUTH_TO_ACCESS + authenticationKeyGenerator.extractKey(authentication), seconds,
  145 + TimeUnit.SECONDS);
  146 + redisTemplate.expire(CLIENT_ID_TO_ACCESS + authentication.getOAuth2Request().getClientId(), seconds,
  147 + TimeUnit.SECONDS);
  148 + redisTemplate.expire(UNAME_TO_ACCESS + getApprovalKey(authentication), seconds, TimeUnit.SECONDS);
  149 + }
  150 +
  151 + OAuth2RefreshToken refreshToken = token.getRefreshToken();
  152 +
  153 + if (token.getRefreshToken() != null && token.getRefreshToken().getValue() != null) {
  154 + this.redisTemplate.opsForValue().set(REFRESH_TO_ACCESS + token.getRefreshToken().getValue(),
  155 + token.getValue());
  156 + this.redisTemplate.opsForValue().set(ACCESS_TO_REFRESH + token.getValue(),
  157 + token.getRefreshToken().getValue());
  158 +
  159 + if (refreshToken instanceof ExpiringOAuth2RefreshToken) {
  160 + ExpiringOAuth2RefreshToken expiringRefreshToken = (ExpiringOAuth2RefreshToken) refreshToken;
  161 + Date expiration = expiringRefreshToken.getExpiration();
  162 + if (expiration != null) {
  163 + int seconds = Long.valueOf((expiration.getTime() - System.currentTimeMillis()) / 1000L).intValue();
  164 +
  165 + redisTemplate.expire(REFRESH_TO_ACCESS + token.getRefreshToken().getValue(), seconds,
  166 + TimeUnit.SECONDS);
  167 + redisTemplate.expire(ACCESS_TO_REFRESH + token.getValue(), seconds, TimeUnit.SECONDS);
  168 +
  169 + }
  170 + }
  171 +
  172 + }
  173 + }
  174 +
  175 + private String getApprovalKey(OAuth2Authentication authentication) {
  176 + String userName = authentication.getUserAuthentication() == null ? ""
  177 + : authentication.getUserAuthentication().getName();
  178 + return getApprovalKey(authentication.getOAuth2Request().getClientId(), userName);
  179 + }
  180 +
  181 + private String getApprovalKey(String clientId, String userName) {
  182 + return clientId + (userName == null ? "" : ":" + userName);
  183 + }
  184 +
  185 + public void removeAccessToken(OAuth2AccessToken accessToken) {
  186 + removeAccessToken(accessToken.getValue());
  187 + }
  188 +
  189 + public OAuth2AccessToken readAccessToken(String tokenValue) {
  190 +
  191 + OAuth2Authentication oauth2Authentication = (OAuth2Authentication) this.redisTemplate.opsForValue()
  192 + .get(AUTH + tokenValue);
  193 + OAuth2AccessToken oauth2AccessToken = (OAuth2AccessToken) this.redisTemplate.opsForValue()
  194 + .get(ACCESS + tokenValue);
  195 + if (oauth2Authentication != null) {
  196 + String auth_to_access = authenticationKeyGenerator.extractKey(oauth2Authentication);
  197 + if (oauth2AccessToken != null) {
  198 + if (oauth2AccessToken.getExpiresIn() < 180) {
  199 +
  200 + if (oauth2AccessToken instanceof DefaultOAuth2AccessToken) {
  201 + DefaultOAuth2AccessToken token = (DefaultOAuth2AccessToken) oauth2AccessToken;
  202 +// Calendar cal = Calendar.getInstance();
  203 +// cal.add(Calendar.DATE, 30);
  204 +// Date date = cal.getTime();
  205 + /**
  206 + * 自动续费 30分钟
  207 + */
  208 + LocalDateTime t1 = LocalDateTime.now().plusMinutes(30);
  209 + ZoneId zone = ZoneId.systemDefault();
  210 + Instant instant = t1.atZone(zone).toInstant();
  211 + Date date = Date.from(instant);
  212 +
  213 + token.setExpiration(date);
  214 +
  215 + int seconds = token.getExpiresIn();
  216 +
  217 + this.redisTemplate.opsForValue().set(AUTH_TO_ACCESS + auth_to_access, token, seconds,
  218 + TimeUnit.SECONDS);
  219 + this.redisTemplate.opsForValue().set(ACCESS + token.getValue(), token, seconds,
  220 + TimeUnit.SECONDS);
  221 +
  222 + redisTemplate.expire(AUTH + token.getValue(), seconds, TimeUnit.SECONDS);
  223 + redisTemplate.expire(TOKEN + token.getValue(), seconds, TimeUnit.SECONDS);
  224 +
  225 + redisTemplate.expire(
  226 + CLIENT_ID_TO_ACCESS + oauth2Authentication.getOAuth2Request().getClientId(), seconds,
  227 + TimeUnit.SECONDS);
  228 + redisTemplate.expire(UNAME_TO_ACCESS + getApprovalKey(oauth2Authentication), seconds,
  229 + TimeUnit.SECONDS);
  230 +
  231 + }
  232 +
  233 + }
  234 + }
  235 + }
  236 +
  237 + return oauth2AccessToken;
  238 + }
  239 +
  240 + public void removeAccessToken(String tokenValue) {
  241 + OAuth2AccessToken removed = (OAuth2AccessToken) redisTemplate.opsForValue().get(ACCESS + tokenValue);
  242 + // Don't remove the refresh token - it's up to the caller to do that
  243 + OAuth2Authentication authentication = (OAuth2Authentication) this.redisTemplate.opsForValue()
  244 + .get(AUTH + tokenValue);
  245 +
  246 + this.redisTemplate.delete(AUTH + tokenValue);
  247 + redisTemplate.delete(ACCESS + tokenValue);
  248 + redisTemplate.delete(TOKEN + tokenValue);
  249 + this.redisTemplate.delete(ACCESS_TO_REFRESH + tokenValue);
  250 +
  251 + if (authentication != null) {
  252 + this.redisTemplate.delete(AUTH_TO_ACCESS + authenticationKeyGenerator.extractKey(authentication));
  253 +
  254 + String clientId = authentication.getOAuth2Request().getClientId();
  255 +
  256 + // redisTemplate.opsForList().rightPush("UNAME_TO_ACCESS:"+getApprovalKey(authentication),
  257 + // token) ;
  258 + redisTemplate.opsForList().leftPop(UNAME_TO_ACCESS + getApprovalKey(clientId, authentication.getName()));
  259 +
  260 + redisTemplate.opsForList().leftPop(CLIENT_ID_TO_ACCESS + clientId);
  261 +
  262 + this.redisTemplate.delete(AUTH_TO_ACCESS + authenticationKeyGenerator.extractKey(authentication));
  263 + }
  264 + }
  265 +
  266 + public void storeRefreshToken(OAuth2RefreshToken refreshToken, OAuth2Authentication authentication) {
  267 + this.redisTemplate.opsForValue().set(REFRESH + refreshToken.getValue(), refreshToken);
  268 + this.redisTemplate.opsForValue().set(REFRESH_AUTH + refreshToken.getValue(), authentication);
  269 + }
  270 +
  271 + public OAuth2RefreshToken readRefreshToken(String tokenValue) {
  272 + return (OAuth2RefreshToken) this.redisTemplate.opsForValue().get(REFRESH + tokenValue);
  273 + }
  274 +
  275 + public void removeRefreshToken(OAuth2RefreshToken refreshToken) {
  276 + removeRefreshToken(refreshToken.getValue());
  277 + }
  278 +
  279 + public void removeRefreshToken(String tokenValue) {
  280 + this.redisTemplate.delete(REFRESH + tokenValue);
  281 + this.redisTemplate.delete(REFRESH_AUTH + tokenValue);
  282 + this.redisTemplate.delete(REFRESH_TO_ACCESS + tokenValue);
  283 + }
  284 +
  285 + public void removeAccessTokenUsingRefreshToken(OAuth2RefreshToken refreshToken) {
  286 + removeAccessTokenUsingRefreshToken(refreshToken.getValue());
  287 + }
  288 +
  289 + private void removeAccessTokenUsingRefreshToken(String refreshToken) {
  290 +
  291 + String token = (String) this.redisTemplate.opsForValue().get(REFRESH_TO_ACCESS + refreshToken);
  292 +
  293 + if (token != null) {
  294 + redisTemplate.delete(REFRESH_TO_ACCESS + refreshToken);
  295 + }
  296 + }
  297 +
  298 + public Collection<OAuth2AccessToken> findTokensByClientIdAndUserName(String clientId, String userName) {
  299 + List<Object> result = redisTemplate.opsForList().range(UNAME_TO_ACCESS + getApprovalKey(clientId, userName), 0,
  300 + -1);
  301 +
  302 + if (result == null || result.size() == 0) {
  303 + return Collections.<OAuth2AccessToken>emptySet();
  304 + }
  305 + List<OAuth2AccessToken> accessTokens = new ArrayList<OAuth2AccessToken>(result.size());
  306 +
  307 + for (Iterator<Object> it = result.iterator(); it.hasNext();) {
  308 + OAuth2AccessToken accessToken = (OAuth2AccessToken) it.next();
  309 + accessTokens.add(accessToken);
  310 + }
  311 +
  312 + return Collections.<OAuth2AccessToken>unmodifiableCollection(accessTokens);
  313 + }
  314 +
  315 + public Collection<OAuth2AccessToken> findTokensByClientId(String clientId) {
  316 + List<Object> result = redisTemplate.opsForList().range((CLIENT_ID_TO_ACCESS + clientId), 0, -1);
  317 +
  318 + if (result == null || result.size() == 0) {
  319 + return Collections.<OAuth2AccessToken>emptySet();
  320 + }
  321 + List<OAuth2AccessToken> accessTokens = new ArrayList<OAuth2AccessToken>(result.size());
  322 +
  323 + for (Iterator<Object> it = result.iterator(); it.hasNext();) {
  324 + OAuth2AccessToken accessToken = (OAuth2AccessToken) it.next();
  325 + accessTokens.add(accessToken);
  326 + }
  327 +
  328 + return Collections.<OAuth2AccessToken>unmodifiableCollection(accessTokens);
  329 + }
  330 +
  331 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/utils/SpringUtil.java 0 → 100644
... ... @@ -0,0 +1,35 @@
  1 +package com.sincere.autho.utils;
  2 +
  3 +import org.springframework.beans.BeansException;
  4 +import org.springframework.context.ApplicationContext;
  5 +import org.springframework.context.ApplicationContextAware;
  6 +import org.springframework.core.env.Environment;
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +/**
  10 + * spring获取bean工具类
  11 + *
  12 + *
  13 + */
  14 +@Component
  15 +public class SpringUtil implements ApplicationContextAware {
  16 +
  17 + private static ApplicationContext applicationContext = null;
  18 +
  19 + @Override
  20 + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  21 + SpringUtil.applicationContext = applicationContext;
  22 + }
  23 +
  24 + public static <T> T getBean(Class<T> cla) {
  25 + return applicationContext.getBean(cla);
  26 + }
  27 +
  28 + public static <T> T getBean(String name, Class<T> cal) {
  29 + return applicationContext.getBean(name, cal);
  30 + }
  31 +
  32 + public static String getProperty(String key) {
  33 + return applicationContext.getBean(Environment.class).getProperty(key);
  34 + }
  35 +}
... ...
cloud/autho/src/main/java/com/sincere/autho/utils/SysUserUtil.java 0 → 100644
... ... @@ -0,0 +1,41 @@
  1 +package com.sincere.autho.utils;
  2 +
  3 +import com.sincere.common.model.system.LoginAppUser;
  4 +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
  5 +import org.springframework.security.core.Authentication;
  6 +import org.springframework.security.core.context.SecurityContextHolder;
  7 +import org.springframework.security.oauth2.provider.OAuth2Authentication;
  8 +import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
  9 +
  10 +/**
  11 + * @author 作者 owen E-mail: 624191343@qq.com
  12 + * @version 创建时间:2017年11月12日 上午22:57:51 获取用户信息
  13 + */
  14 +public class SysUserUtil {
  15 +
  16 + /**
  17 + * 获取登陆的 LoginAppUser
  18 + *
  19 + * @return
  20 + */
  21 + @SuppressWarnings("rawtypes")
  22 + public static LoginAppUser getLoginAppUser() {
  23 + Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
  24 + if (authentication instanceof OAuth2Authentication) {
  25 + OAuth2Authentication oAuth2Auth = (OAuth2Authentication) authentication;
  26 + authentication = oAuth2Auth.getUserAuthentication();
  27 +
  28 + if (authentication instanceof UsernamePasswordAuthenticationToken) {
  29 + UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) authentication;
  30 + return (LoginAppUser) authenticationToken.getPrincipal();
  31 + } else if (authentication instanceof PreAuthenticatedAuthenticationToken) {
  32 + // 刷新token方式
  33 + PreAuthenticatedAuthenticationToken authenticationToken = (PreAuthenticatedAuthenticationToken) authentication;
  34 + return (LoginAppUser) authenticationToken.getPrincipal();
  35 +
  36 + }
  37 + }
  38 +
  39 + return null;
  40 + }
  41 +}
... ...
cloud/autho/src/main/resources/application.yaml 0 → 100644
... ... @@ -0,0 +1,96 @@
  1 +server:
  2 + port: 8763
  3 +
  4 +spring:
  5 + application:
  6 + name: auth-server
  7 +session:
  8 + store-type: redis
  9 + datasource:
  10 + dynamic:
  11 + enable: true
  12 + druid:
  13 + # JDBC 配置(驱动类自动从url的mysql识别,数据源类型自动识别)
  14 + core:
  15 + url: jdbc:mysql://localhost/oauth-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
  16 + username: root
  17 + password: root
  18 + driver-class-name: com.mysql.jdbc.Driver
  19 + log:
  20 + url: jdbc:mysql://59.110.164.254:3306/log-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
  21 + username: root
  22 + password: root
  23 + driver-class-name: com.mysql.jdbc.Driver
  24 + #连接池配置(通常来说,只需要修改initialSize、minIdle、maxActive
  25 + initial-size: 1
  26 + max-active: 20
  27 + min-idle: 1
  28 + # 配置获取连接等待超时的时间
  29 + max-wait: 60000
  30 + #打开PSCache,并且指定每个连接上PSCache的大小
  31 + pool-prepared-statements: true
  32 + max-pool-prepared-statement-per-connection-size: 20
  33 + validation-query: SELECT 'x'
  34 + test-on-borrow: false
  35 + test-on-return: false
  36 + test-while-idle: true
  37 + #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
  38 + time-between-eviction-runs-millis: 60000
  39 + #配置一个连接在池中最小生存的时间,单位是毫秒
  40 + min-evictable-idle-time-millis: 300000
  41 + filters: stat,wall
  42 + # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
  43 + #是否启用StatFilter默认值true
  44 + web-stat-filter.enabled: true
  45 + web-stat-filter.url-pattern: /*
  46 + web-stat-filter.exclusions: "*.js , *.gif ,*.jpg ,*.png ,*.css ,*.ico , /druid/*"
  47 + web-stat-filter.session-stat-max-count: 1000
  48 + web-stat-filter.profile-enable: true
  49 + # StatViewServlet配置
  50 + #展示Druid的统计信息,StatViewServlet的用途包括:1.提供监控信息展示的html页面2.提供监控信息的JSON API
  51 + #是否启用StatViewServlet默认值true
  52 + stat-view-servlet.enabled: true
  53 + #根据配置中的url-pattern来访问内置监控页面,如果是上面的配置,内置监控页面的首页是/druid/index.html例如:
  54 + #http://110.76.43.235:9000/druid/index.html
  55 + #http://110.76.43.235:8080/mini-web/druid/index.html
  56 + stat-view-servlet.url-pattern: /druid/*
  57 + #允许清空统计数据
  58 + stat-view-servlet.reset-enable: true
  59 + stat-view-servlet.login-username: admin
  60 + stat-view-servlet.login-password: admin
  61 + #StatViewSerlvet展示出来的监控信息比较敏感,是系统运行的内部情况,如果你需要做访问控制,可以配置allow和deny这两个参数
  62 + #deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。如果allow没有配置或者为空,则允许所有访问
  63 + #配置的格式
  64 + #<IP>
  65 + #或者<IP>/<SUB_NET_MASK_size>其中128.242.127.1/24
  66 + #24表示,前面24位是子网掩码,比对的时候,前面24位相同就匹配,不支持IPV6。
  67 + #stat-view-servlet.allow=
  68 + #stat-view-servlet.deny=128.242.127.1/24,128.242.128.1
  69 + # Spring监控配置,说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置
  70 + #aop-patterns= # Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔
  71 +################### mysq end ##########################
  72 +
  73 +
  74 +eureka:
  75 + instance:
  76 + hostname: localhost
  77 + lease-expiration-duration-in-seconds: 60
  78 + lease-renewal-interval-in-seconds: 10
  79 + client:
  80 + service-url:
  81 + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/
  82 +
  83 +
  84 + redis:
  85 + ################### redis 单机版 start ##########################
  86 + host: localhost
  87 + port: 6379
  88 + timeout: 6000
  89 + database: 2
  90 + lettuce:
  91 + pool:
  92 + max-active: 10 # 连接池最大连接数(使用负值表示没有限制),如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)
  93 + max-idle: 8 # 连接池中的最大空闲连接 ,默认值也是8
  94 + max-wait: 100 # # 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException
  95 + min-idle: 2 # 连接池中的最小空闲连接 ,默认值也是0
  96 + shutdown-timeout: 100ms
0 97 \ No newline at end of file
... ...
cloud/autho/src/test/java/com/sincere/autho/AuthoApplicationTests.java 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +package com.sincere.autho;
  2 +
  3 +import org.junit.Test;
  4 +import org.junit.runner.RunWith;
  5 +import org.springframework.boot.test.context.SpringBootTest;
  6 +import org.springframework.test.context.junit4.SpringRunner;
  7 +
  8 +@RunWith(SpringRunner.class)
  9 +@SpringBootTest
  10 +public class AuthoApplicationTests {
  11 +
  12 + @Test
  13 + public void contextLoads() {
  14 + }
  15 +
  16 +}
... ...
cloud/cloud-server/.gitignore
... ... @@ -1,31 +0,0 @@
1   -HELP.md
2   -target/
3   -!.mvn/wrapper/maven-wrapper.jar
4   -!**/src/main/**
5   -!**/src/test/**
6   -
7   -### STS ###
8   -.apt_generated
9   -.classpath
10   -.factorypath
11   -.project
12   -.settings
13   -.springBeans
14   -.sts4-cache
15   -
16   -### IntelliJ IDEA ###
17   -.idea
18   -*.iws
19   -*.iml
20   -*.ipr
21   -
22   -### NetBeans ###
23   -/nbproject/private/
24   -/nbbuild/
25   -/dist/
26   -/nbdist/
27   -/.nb-gradle/
28   -build/
29   -
30   -### VS Code ###
31   -.vscode/
cloud/cloud-server/.mvn/wrapper/MavenWrapperDownloader.java
... ... @@ -1,114 +0,0 @@
1   -/*
2   -Licensed to the Apache Software Foundation (ASF) under one
3   -or more contributor license agreements. See the NOTICE file
4   -distributed with this work for additional information
5   -regarding copyright ownership. The ASF licenses this file
6   -to you under the Apache License, Version 2.0 (the
7   -"License"); you may not use this file except in compliance
8   -with the License. You may obtain a copy of the License at
9   -
10   - https://www.apache.org/licenses/LICENSE-2.0
11   -
12   -Unless required by applicable law or agreed to in writing,
13   -software distributed under the License is distributed on an
14   -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   -KIND, either express or implied. See the License for the
16   -specific language governing permissions and limitations
17   -under the License.
18   -*/
19   -
20   -import java.io.File;
21   -import java.io.FileInputStream;
22   -import java.io.FileOutputStream;
23   -import java.io.IOException;
24   -import java.net.URL;
25   -import java.nio.channels.Channels;
26   -import java.nio.channels.ReadableByteChannel;
27   -import java.util.Properties;
28   -
29   -public class MavenWrapperDownloader {
30   -
31   - /**
32   - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
33   - */
34   - private static final String DEFAULT_DOWNLOAD_URL =
35   - "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
36   -
37   - /**
38   - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
39   - * use instead of the default one.
40   - */
41   - private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
42   - ".mvn/wrapper/maven-wrapper.properties";
43   -
44   - /**
45   - * Path where the maven-wrapper.jar will be saved to.
46   - */
47   - private static final String MAVEN_WRAPPER_JAR_PATH =
48   - ".mvn/wrapper/maven-wrapper.jar";
49   -
50   - /**
51   - * Name of the property which should be used to override the default download url for the wrapper.
52   - */
53   - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
54   -
55   - public static void main(String args[]) {
56   - System.out.println("- Downloader started");
57   - File baseDirectory = new File(args[0]);
58   - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
59   -
60   - // If the maven-wrapper.properties exists, read it and check if it contains a custom
61   - // wrapperUrl parameter.
62   - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
63   - String url = DEFAULT_DOWNLOAD_URL;
64   - if (mavenWrapperPropertyFile.exists()) {
65   - FileInputStream mavenWrapperPropertyFileInputStream = null;
66   - try {
67   - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
68   - Properties mavenWrapperProperties = new Properties();
69   - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
70   - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
71   - } catch (IOException e) {
72   - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
73   - } finally {
74   - try {
75   - if (mavenWrapperPropertyFileInputStream != null) {
76   - mavenWrapperPropertyFileInputStream.close();
77   - }
78   - } catch (IOException e) {
79   - // Ignore ...
80   - }
81   - }
82   - }
83   - System.out.println("- Downloading from: : " + url);
84   -
85   - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
86   - if (!outputFile.getParentFile().exists()) {
87   - if (!outputFile.getParentFile().mkdirs()) {
88   - System.out.println(
89   - "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
90   - }
91   - }
92   - System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
93   - try {
94   - downloadFileFromURL(url, outputFile);
95   - System.out.println("Done");
96   - System.exit(0);
97   - } catch (Throwable e) {
98   - System.out.println("- Error downloading");
99   - e.printStackTrace();
100   - System.exit(1);
101   - }
102   - }
103   -
104   - private static void downloadFileFromURL(String urlString, File destination) throws Exception {
105   - URL website = new URL(urlString);
106   - ReadableByteChannel rbc;
107   - rbc = Channels.newChannel(website.openStream());
108   - FileOutputStream fos = new FileOutputStream(destination);
109   - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
110   - fos.close();
111   - rbc.close();
112   - }
113   -
114   -}
cloud/cloud-server/.mvn/wrapper/maven-wrapper.jar
No preview for this file type
cloud/cloud-server/.mvn/wrapper/maven-wrapper.properties
... ... @@ -1 +0,0 @@
1   -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
cloud/cloud-server/mvnw
... ... @@ -1,286 +0,0 @@
1   -#!/bin/sh
2   -# ----------------------------------------------------------------------------
3   -# Licensed to the Apache Software Foundation (ASF) under one
4   -# or more contributor license agreements. See the NOTICE file
5   -# distributed with this work for additional information
6   -# regarding copyright ownership. The ASF licenses this file
7   -# to you under the Apache License, Version 2.0 (the
8   -# "License"); you may not use this file except in compliance
9   -# with the License. You may obtain a copy of the License at
10   -#
11   -# https://www.apache.org/licenses/LICENSE-2.0
12   -#
13   -# Unless required by applicable law or agreed to in writing,
14   -# software distributed under the License is distributed on an
15   -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   -# KIND, either express or implied. See the License for the
17   -# specific language governing permissions and limitations
18   -# under the License.
19   -# ----------------------------------------------------------------------------
20   -
21   -# ----------------------------------------------------------------------------
22   -# Maven2 Start Up Batch script
23   -#
24   -# Required ENV vars:
25   -# ------------------
26   -# JAVA_HOME - location of a JDK home dir
27   -#
28   -# Optional ENV vars
29   -# -----------------
30   -# M2_HOME - location of maven2's installed home dir
31   -# MAVEN_OPTS - parameters passed to the Java VM when running Maven
32   -# e.g. to debug Maven itself, use
33   -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34   -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35   -# ----------------------------------------------------------------------------
36   -
37   -if [ -z "$MAVEN_SKIP_RC" ] ; then
38   -
39   - if [ -f /etc/mavenrc ] ; then
40   - . /etc/mavenrc
41   - fi
42   -
43   - if [ -f "$HOME/.mavenrc" ] ; then
44   - . "$HOME/.mavenrc"
45   - fi
46   -
47   -fi
48   -
49   -# OS specific support. $var _must_ be set to either true or false.
50   -cygwin=false;
51   -darwin=false;
52   -mingw=false
53   -case "`uname`" in
54   - CYGWIN*) cygwin=true ;;
55   - MINGW*) mingw=true;;
56   - Darwin*) darwin=true
57   - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
58   - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
59   - if [ -z "$JAVA_HOME" ]; then
60   - if [ -x "/usr/libexec/java_home" ]; then
61   - export JAVA_HOME="`/usr/libexec/java_home`"
62   - else
63   - export JAVA_HOME="/Library/Java/Home"
64   - fi
65   - fi
66   - ;;
67   -esac
68   -
69   -if [ -z "$JAVA_HOME" ] ; then
70   - if [ -r /etc/gentoo-release ] ; then
71   - JAVA_HOME=`java-config --jre-home`
72   - fi
73   -fi
74   -
75   -if [ -z "$M2_HOME" ] ; then
76   - ## resolve links - $0 may be a link to maven's home
77   - PRG="$0"
78   -
79   - # need this for relative symlinks
80   - while [ -h "$PRG" ] ; do
81   - ls=`ls -ld "$PRG"`
82   - link=`expr "$ls" : '.*-> \(.*\)$'`
83   - if expr "$link" : '/.*' > /dev/null; then
84   - PRG="$link"
85   - else
86   - PRG="`dirname "$PRG"`/$link"
87   - fi
88   - done
89   -
90   - saveddir=`pwd`
91   -
92   - M2_HOME=`dirname "$PRG"`/..
93   -
94   - # make it fully qualified
95   - M2_HOME=`cd "$M2_HOME" && pwd`
96   -
97   - cd "$saveddir"
98   - # echo Using m2 at $M2_HOME
99   -fi
100   -
101   -# For Cygwin, ensure paths are in UNIX format before anything is touched
102   -if $cygwin ; then
103   - [ -n "$M2_HOME" ] &&
104   - M2_HOME=`cygpath --unix "$M2_HOME"`
105   - [ -n "$JAVA_HOME" ] &&
106   - JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
107   - [ -n "$CLASSPATH" ] &&
108   - CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
109   -fi
110   -
111   -# For Mingw, ensure paths are in UNIX format before anything is touched
112   -if $mingw ; then
113   - [ -n "$M2_HOME" ] &&
114   - M2_HOME="`(cd "$M2_HOME"; pwd)`"
115   - [ -n "$JAVA_HOME" ] &&
116   - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117   - # TODO classpath?
118   -fi
119   -
120   -if [ -z "$JAVA_HOME" ]; then
121   - javaExecutable="`which javac`"
122   - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
123   - # readlink(1) is not available as standard on Solaris 10.
124   - readLink=`which readlink`
125   - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
126   - if $darwin ; then
127   - javaHome="`dirname \"$javaExecutable\"`"
128   - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
129   - else
130   - javaExecutable="`readlink -f \"$javaExecutable\"`"
131   - fi
132   - javaHome="`dirname \"$javaExecutable\"`"
133   - javaHome=`expr "$javaHome" : '\(.*\)/bin'`
134   - JAVA_HOME="$javaHome"
135   - export JAVA_HOME
136   - fi
137   - fi
138   -fi
139   -
140   -if [ -z "$JAVACMD" ] ; then
141   - if [ -n "$JAVA_HOME" ] ; then
142   - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
143   - # IBM's JDK on AIX uses strange locations for the executables
144   - JAVACMD="$JAVA_HOME/jre/sh/java"
145   - else
146   - JAVACMD="$JAVA_HOME/bin/java"
147   - fi
148   - else
149   - JAVACMD="`which java`"
150   - fi
151   -fi
152   -
153   -if [ ! -x "$JAVACMD" ] ; then
154   - echo "Error: JAVA_HOME is not defined correctly." >&2
155   - echo " We cannot execute $JAVACMD" >&2
156   - exit 1
157   -fi
158   -
159   -if [ -z "$JAVA_HOME" ] ; then
160   - echo "Warning: JAVA_HOME environment variable is not set."
161   -fi
162   -
163   -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
164   -
165   -# traverses directory structure from process work directory to filesystem root
166   -# first directory with .mvn subdirectory is considered project base directory
167   -find_maven_basedir() {
168   -
169   - if [ -z "$1" ]
170   - then
171   - echo "Path not specified to find_maven_basedir"
172   - return 1
173   - fi
174   -
175   - basedir="$1"
176   - wdir="$1"
177   - while [ "$wdir" != '/' ] ; do
178   - if [ -d "$wdir"/.mvn ] ; then
179   - basedir=$wdir
180   - break
181   - fi
182   - # workaround for JBEAP-8937 (on Solaris 10/Sparc)
183   - if [ -d "${wdir}" ]; then
184   - wdir=`cd "$wdir/.."; pwd`
185   - fi
186   - # end of workaround
187   - done
188   - echo "${basedir}"
189   -}
190   -
191   -# concatenates all lines of a file
192   -concat_lines() {
193   - if [ -f "$1" ]; then
194   - echo "$(tr -s '\n' ' ' < "$1")"
195   - fi
196   -}
197   -
198   -BASE_DIR=`find_maven_basedir "$(pwd)"`
199   -if [ -z "$BASE_DIR" ]; then
200   - exit 1;
201   -fi
202   -
203   -##########################################################################################
204   -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
205   -# This allows using the maven wrapper in projects that prohibit checking in binary data.
206   -##########################################################################################
207   -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
208   - if [ "$MVNW_VERBOSE" = true ]; then
209   - echo "Found .mvn/wrapper/maven-wrapper.jar"
210   - fi
211   -else
212   - if [ "$MVNW_VERBOSE" = true ]; then
213   - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
214   - fi
215   - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
216   - while IFS="=" read key value; do
217   - case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
218   - esac
219   - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
220   - if [ "$MVNW_VERBOSE" = true ]; then
221   - echo "Downloading from: $jarUrl"
222   - fi
223   - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
224   -
225   - if command -v wget > /dev/null; then
226   - if [ "$MVNW_VERBOSE" = true ]; then
227   - echo "Found wget ... using wget"
228   - fi
229   - wget "$jarUrl" -O "$wrapperJarPath"
230   - elif command -v curl > /dev/null; then
231   - if [ "$MVNW_VERBOSE" = true ]; then
232   - echo "Found curl ... using curl"
233   - fi
234   - curl -o "$wrapperJarPath" "$jarUrl"
235   - else
236   - if [ "$MVNW_VERBOSE" = true ]; then
237   - echo "Falling back to using Java to download"
238   - fi
239   - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
240   - if [ -e "$javaClass" ]; then
241   - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
242   - if [ "$MVNW_VERBOSE" = true ]; then
243   - echo " - Compiling MavenWrapperDownloader.java ..."
244   - fi
245   - # Compiling the Java class
246   - ("$JAVA_HOME/bin/javac" "$javaClass")
247   - fi
248   - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
249   - # Running the downloader
250   - if [ "$MVNW_VERBOSE" = true ]; then
251   - echo " - Running MavenWrapperDownloader.java ..."
252   - fi
253   - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
254   - fi
255   - fi
256   - fi
257   -fi
258   -##########################################################################################
259   -# End of extension
260   -##########################################################################################
261   -
262   -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
263   -if [ "$MVNW_VERBOSE" = true ]; then
264   - echo $MAVEN_PROJECTBASEDIR
265   -fi
266   -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
267   -
268   -# For Cygwin, switch paths to Windows format before running java
269   -if $cygwin; then
270   - [ -n "$M2_HOME" ] &&
271   - M2_HOME=`cygpath --path --windows "$M2_HOME"`
272   - [ -n "$JAVA_HOME" ] &&
273   - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
274   - [ -n "$CLASSPATH" ] &&
275   - CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
276   - [ -n "$MAVEN_PROJECTBASEDIR" ] &&
277   - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
278   -fi
279   -
280   -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281   -
282   -exec "$JAVACMD" \
283   - $MAVEN_OPTS \
284   - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
285   - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
286   - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
cloud/cloud-server/mvnw.cmd
... ... @@ -1,161 +0,0 @@
1   -@REM ----------------------------------------------------------------------------
2   -@REM Licensed to the Apache Software Foundation (ASF) under one
3   -@REM or more contributor license agreements. See the NOTICE file
4   -@REM distributed with this work for additional information
5   -@REM regarding copyright ownership. The ASF licenses this file
6   -@REM to you under the Apache License, Version 2.0 (the
7   -@REM "License"); you may not use this file except in compliance
8   -@REM with the License. You may obtain a copy of the License at
9   -@REM
10   -@REM https://www.apache.org/licenses/LICENSE-2.0
11   -@REM
12   -@REM Unless required by applicable law or agreed to in writing,
13   -@REM software distributed under the License is distributed on an
14   -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   -@REM KIND, either express or implied. See the License for the
16   -@REM specific language governing permissions and limitations
17   -@REM under the License.
18   -@REM ----------------------------------------------------------------------------
19   -
20   -@REM ----------------------------------------------------------------------------
21   -@REM Maven2 Start Up Batch script
22   -@REM
23   -@REM Required ENV vars:
24   -@REM JAVA_HOME - location of a JDK home dir
25   -@REM
26   -@REM Optional ENV vars
27   -@REM M2_HOME - location of maven2's installed home dir
28   -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29   -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30   -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31   -@REM e.g. to debug Maven itself, use
32   -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33   -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34   -@REM ----------------------------------------------------------------------------
35   -
36   -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37   -@echo off
38   -@REM set title of command window
39   -title %0
40   -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
41   -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42   -
43   -@REM set %HOME% to equivalent of $HOME
44   -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45   -
46   -@REM Execute a user defined script before this one
47   -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48   -@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49   -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50   -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51   -:skipRcPre
52   -
53   -@setlocal
54   -
55   -set ERROR_CODE=0
56   -
57   -@REM To isolate internal variables from possible post scripts, we use another setlocal
58   -@setlocal
59   -
60   -@REM ==== START VALIDATION ====
61   -if not "%JAVA_HOME%" == "" goto OkJHome
62   -
63   -echo.
64   -echo Error: JAVA_HOME not found in your environment. >&2
65   -echo Please set the JAVA_HOME variable in your environment to match the >&2
66   -echo location of your Java installation. >&2
67   -echo.
68   -goto error
69   -
70   -:OkJHome
71   -if exist "%JAVA_HOME%\bin\java.exe" goto init
72   -
73   -echo.
74   -echo Error: JAVA_HOME is set to an invalid directory. >&2
75   -echo JAVA_HOME = "%JAVA_HOME%" >&2
76   -echo Please set the JAVA_HOME variable in your environment to match the >&2
77   -echo location of your Java installation. >&2
78   -echo.
79   -goto error
80   -
81   -@REM ==== END VALIDATION ====
82   -
83   -:init
84   -
85   -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86   -@REM Fallback to current working directory if not found.
87   -
88   -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89   -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90   -
91   -set EXEC_DIR=%CD%
92   -set WDIR=%EXEC_DIR%
93   -:findBaseDir
94   -IF EXIST "%WDIR%"\.mvn goto baseDirFound
95   -cd ..
96   -IF "%WDIR%"=="%CD%" goto baseDirNotFound
97   -set WDIR=%CD%
98   -goto findBaseDir
99   -
100   -:baseDirFound
101   -set MAVEN_PROJECTBASEDIR=%WDIR%
102   -cd "%EXEC_DIR%"
103   -goto endDetectBaseDir
104   -
105   -:baseDirNotFound
106   -set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107   -cd "%EXEC_DIR%"
108   -
109   -:endDetectBaseDir
110   -
111   -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112   -
113   -@setlocal EnableExtensions EnableDelayedExpansion
114   -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115   -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116   -
117   -:endReadAdditionalConfig
118   -
119   -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120   -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121   -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122   -
123   -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
124   -FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
125   - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
126   -)
127   -
128   -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
129   -@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
130   -if exist %WRAPPER_JAR% (
131   - echo Found %WRAPPER_JAR%
132   -) else (
133   - echo Couldn't find %WRAPPER_JAR%, downloading it ...
134   - echo Downloading from: %DOWNLOAD_URL%
135   - powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
136   - echo Finished downloading %WRAPPER_JAR%
137   -)
138   -@REM End of extension
139   -
140   -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
141   -if ERRORLEVEL 1 goto error
142   -goto end
143   -
144   -:error
145   -set ERROR_CODE=1
146   -
147   -:end
148   -@endlocal & set ERROR_CODE=%ERROR_CODE%
149   -
150   -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
151   -@REM check for post script, once with legacy .bat ending and once with .cmd ending
152   -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
153   -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
154   -:skipRcPost
155   -
156   -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
157   -if "%MAVEN_BATCH_PAUSE%" == "on" pause
158   -
159   -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
160   -
161   -exit /B %ERROR_CODE%
cloud/cloud-server/pom.xml
... ... @@ -1,56 +0,0 @@
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3   - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4   - <modelVersion>4.0.0</modelVersion>
5   - <parent>
6   - <groupId>org.springframework.boot</groupId>
7   - <artifactId>spring-boot-starter-parent</artifactId>
8   - <version>2.1.6.RELEASE</version>
9   - <relativePath/> <!-- lookup parent from repository -->
10   - </parent>
11   - <groupId>com.example</groupId>
12   - <artifactId>cloud-server</artifactId>
13   - <version>0.0.1-SNAPSHOT</version>
14   - <name>cloud-server</name>
15   - <description>Demo project for Spring Boot</description>
16   -
17   - <properties>
18   - <java.version>1.8</java.version>
19   - <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
20   - </properties>
21   -
22   - <dependencies>
23   - <dependency>
24   - <groupId>org.springframework.cloud</groupId>
25   - <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
26   - </dependency>
27   -
28   - <dependency>
29   - <groupId>org.springframework.boot</groupId>
30   - <artifactId>spring-boot-starter-test</artifactId>
31   - <scope>test</scope>
32   - </dependency>
33   - </dependencies>
34   -
35   - <dependencyManagement>
36   - <dependencies>
37   - <dependency>
38   - <groupId>org.springframework.cloud</groupId>
39   - <artifactId>spring-cloud-dependencies</artifactId>
40   - <version>${spring-cloud.version}</version>
41   - <type>pom</type>
42   - <scope>import</scope>
43   - </dependency>
44   - </dependencies>
45   - </dependencyManagement>
46   -
47   - <build>
48   - <plugins>
49   - <plugin>
50   - <groupId>org.springframework.boot</groupId>
51   - <artifactId>spring-boot-maven-plugin</artifactId>
52   - </plugin>
53   - </plugins>
54   - </build>
55   -
56   -</project>
cloud/cloud-server/src/main/java/com/example/cloudserver/CloudServerApplication.java
... ... @@ -1,15 +0,0 @@
1   -package com.example.cloudserver;
2   -
3   -import org.springframework.boot.SpringApplication;
4   -import org.springframework.boot.autoconfigure.SpringBootApplication;
5   -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6   -
7   -@EnableEurekaServer
8   -@SpringBootApplication
9   -public class CloudServerApplication {
10   -
11   - public static void main(String[] args) {
12   - SpringApplication.run(CloudServerApplication.class, args);
13   - }
14   -
15   -}
cloud/cloud-server/src/main/resources/application.yaml
... ... @@ -1,9 +0,0 @@
1   -server:
2   - port: 10087
3   -
4   -eureka:
5   - instance:
6   - hostname: localhost
7   - client:
8   - fetch-registry: false
9   - register-with-eureka: false
cloud/cloud-server/src/test/java/com/example/cloudserver/CloudServerApplicationTests.java
... ... @@ -1,16 +0,0 @@
1   -package com.example.cloudserver;
2   -
3   -import org.junit.Test;
4   -import org.junit.runner.RunWith;
5   -import org.springframework.boot.test.context.SpringBootTest;
6   -import org.springframework.test.context.junit4.SpringRunner;
7   -
8   -@RunWith(SpringRunner.class)
9   -@SpringBootTest
10   -public class CloudServerApplicationTests {
11   -
12   - @Test
13   - public void contextLoads() {
14   - }
15   -
16   -}
cloud/common/.gitignore 0 → 100644
... ... @@ -0,0 +1,31 @@
  1 +HELP.md
  2 +target/
  3 +!.mvn/wrapper/maven-wrapper.jar
  4 +!**/src/main/**
  5 +!**/src/test/**
  6 +
  7 +### STS ###
  8 +.apt_generated
  9 +.classpath
  10 +.factorypath
  11 +.project
  12 +.settings
  13 +.springBeans
  14 +.sts4-cache
  15 +
  16 +### IntelliJ IDEA ###
  17 +.idea
  18 +*.iws
  19 +*.iml
  20 +*.ipr
  21 +
  22 +### NetBeans ###
  23 +/nbproject/private/
  24 +/nbbuild/
  25 +/dist/
  26 +/nbdist/
  27 +/.nb-gradle/
  28 +build/
  29 +
  30 +### VS Code ###
  31 +.vscode/
... ...
cloud/common/.mvn/wrapper/MavenWrapperDownloader.java 0 → 100644
... ... @@ -0,0 +1,114 @@
  1 +/*
  2 +Licensed to the Apache Software Foundation (ASF) under one
  3 +or more contributor license agreements. See the NOTICE file
  4 +distributed with this work for additional information
  5 +regarding copyright ownership. The ASF licenses this file
  6 +to you under the Apache License, Version 2.0 (the
  7 +"License"); you may not use this file except in compliance
  8 +with the License. You may obtain a copy of the License at
  9 +
  10 + https://www.apache.org/licenses/LICENSE-2.0
  11 +
  12 +Unless required by applicable law or agreed to in writing,
  13 +software distributed under the License is distributed on an
  14 +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15 +KIND, either express or implied. See the License for the
  16 +specific language governing permissions and limitations
  17 +under the License.
  18 +*/
  19 +
  20 +import java.io.File;
  21 +import java.io.FileInputStream;
  22 +import java.io.FileOutputStream;
  23 +import java.io.IOException;
  24 +import java.net.URL;
  25 +import java.nio.channels.Channels;
  26 +import java.nio.channels.ReadableByteChannel;
  27 +import java.util.Properties;
  28 +
  29 +public class MavenWrapperDownloader {
  30 +
  31 + /**
  32 + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
  33 + */
  34 + private static final String DEFAULT_DOWNLOAD_URL =
  35 + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
  36 +
  37 + /**
  38 + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
  39 + * use instead of the default one.
  40 + */
  41 + private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
  42 + ".mvn/wrapper/maven-wrapper.properties";
  43 +
  44 + /**
  45 + * Path where the maven-wrapper.jar will be saved to.
  46 + */
  47 + private static final String MAVEN_WRAPPER_JAR_PATH =
  48 + ".mvn/wrapper/maven-wrapper.jar";
  49 +
  50 + /**
  51 + * Name of the property which should be used to override the default download url for the wrapper.
  52 + */
  53 + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
  54 +
  55 + public static void main(String args[]) {
  56 + System.out.println("- Downloader started");
  57 + File baseDirectory = new File(args[0]);
  58 + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
  59 +
  60 + // If the maven-wrapper.properties exists, read it and check if it contains a custom
  61 + // wrapperUrl parameter.
  62 + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
  63 + String url = DEFAULT_DOWNLOAD_URL;
  64 + if (mavenWrapperPropertyFile.exists()) {
  65 + FileInputStream mavenWrapperPropertyFileInputStream = null;
  66 + try {
  67 + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
  68 + Properties mavenWrapperProperties = new Properties();
  69 + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
  70 + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
  71 + } catch (IOException e) {
  72 + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
  73 + } finally {
  74 + try {
  75 + if (mavenWrapperPropertyFileInputStream != null) {
  76 + mavenWrapperPropertyFileInputStream.close();
  77 + }
  78 + } catch (IOException e) {
  79 + // Ignore ...
  80 + }
  81 + }
  82 + }
  83 + System.out.println("- Downloading from: : " + url);
  84 +
  85 + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
  86 + if (!outputFile.getParentFile().exists()) {
  87 + if (!outputFile.getParentFile().mkdirs()) {
  88 + System.out.println(
  89 + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
  90 + }
  91 + }
  92 + System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
  93 + try {
  94 + downloadFileFromURL(url, outputFile);
  95 + System.out.println("Done");
  96 + System.exit(0);
  97 + } catch (Throwable e) {
  98 + System.out.println("- Error downloading");
  99 + e.printStackTrace();
  100 + System.exit(1);
  101 + }
  102 + }
  103 +
  104 + private static void downloadFileFromURL(String urlString, File destination) throws Exception {
  105 + URL website = new URL(urlString);
  106 + ReadableByteChannel rbc;
  107 + rbc = Channels.newChannel(website.openStream());
  108 + FileOutputStream fos = new FileOutputStream(destination);
  109 + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
  110 + fos.close();
  111 + rbc.close();
  112 + }
  113 +
  114 +}
... ...
cloud/common/.mvn/wrapper/maven-wrapper.jar 0 → 100644
No preview for this file type
cloud/common/.mvn/wrapper/maven-wrapper.properties 0 → 100644
... ... @@ -0,0 +1 @@
  1 +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
... ...
cloud/common/mvnw 0 → 100644
... ... @@ -0,0 +1,286 @@
  1 +#!/bin/sh
  2 +# ----------------------------------------------------------------------------
  3 +# Licensed to the Apache Software Foundation (ASF) under one
  4 +# or more contributor license agreements. See the NOTICE file
  5 +# distributed with this work for additional information
  6 +# regarding copyright ownership. The ASF licenses this file
  7 +# to you under the Apache License, Version 2.0 (the
  8 +# "License"); you may not use this file except in compliance
  9 +# with the License. You may obtain a copy of the License at
  10 +#
  11 +# https://www.apache.org/licenses/LICENSE-2.0
  12 +#
  13 +# Unless required by applicable law or agreed to in writing,
  14 +# software distributed under the License is distributed on an
  15 +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  16 +# KIND, either express or implied. See the License for the
  17 +# specific language governing permissions and limitations
  18 +# under the License.
  19 +# ----------------------------------------------------------------------------
  20 +
  21 +# ----------------------------------------------------------------------------
  22 +# Maven2 Start Up Batch script
  23 +#
  24 +# Required ENV vars:
  25 +# ------------------
  26 +# JAVA_HOME - location of a JDK home dir
  27 +#
  28 +# Optional ENV vars
  29 +# -----------------
  30 +# M2_HOME - location of maven2's installed home dir
  31 +# MAVEN_OPTS - parameters passed to the Java VM when running Maven
  32 +# e.g. to debug Maven itself, use
  33 +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
  34 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
  35 +# ----------------------------------------------------------------------------
  36 +
  37 +if [ -z "$MAVEN_SKIP_RC" ] ; then
  38 +
  39 + if [ -f /etc/mavenrc ] ; then
  40 + . /etc/mavenrc
  41 + fi
  42 +
  43 + if [ -f "$HOME/.mavenrc" ] ; then
  44 + . "$HOME/.mavenrc"
  45 + fi
  46 +
  47 +fi
  48 +
  49 +# OS specific support. $var _must_ be set to either true or false.
  50 +cygwin=false;
  51 +darwin=false;
  52 +mingw=false
  53 +case "`uname`" in
  54 + CYGWIN*) cygwin=true ;;
  55 + MINGW*) mingw=true;;
  56 + Darwin*) darwin=true
  57 + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
  58 + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
  59 + if [ -z "$JAVA_HOME" ]; then
  60 + if [ -x "/usr/libexec/java_home" ]; then
  61 + export JAVA_HOME="`/usr/libexec/java_home`"
  62 + else
  63 + export JAVA_HOME="/Library/Java/Home"
  64 + fi
  65 + fi
  66 + ;;
  67 +esac
  68 +
  69 +if [ -z "$JAVA_HOME" ] ; then
  70 + if [ -r /etc/gentoo-release ] ; then
  71 + JAVA_HOME=`java-config --jre-home`
  72 + fi
  73 +fi
  74 +
  75 +if [ -z "$M2_HOME" ] ; then
  76 + ## resolve links - $0 may be a link to maven's home
  77 + PRG="$0"
  78 +
  79 + # need this for relative symlinks
  80 + while [ -h "$PRG" ] ; do
  81 + ls=`ls -ld "$PRG"`
  82 + link=`expr "$ls" : '.*-> \(.*\)$'`
  83 + if expr "$link" : '/.*' > /dev/null; then
  84 + PRG="$link"
  85 + else
  86 + PRG="`dirname "$PRG"`/$link"
  87 + fi
  88 + done
  89 +
  90 + saveddir=`pwd`
  91 +
  92 + M2_HOME=`dirname "$PRG"`/..
  93 +
  94 + # make it fully qualified
  95 + M2_HOME=`cd "$M2_HOME" && pwd`
  96 +
  97 + cd "$saveddir"
  98 + # echo Using m2 at $M2_HOME
  99 +fi
  100 +
  101 +# For Cygwin, ensure paths are in UNIX format before anything is touched
  102 +if $cygwin ; then
  103 + [ -n "$M2_HOME" ] &&
  104 + M2_HOME=`cygpath --unix "$M2_HOME"`
  105 + [ -n "$JAVA_HOME" ] &&
  106 + JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  107 + [ -n "$CLASSPATH" ] &&
  108 + CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
  109 +fi
  110 +
  111 +# For Mingw, ensure paths are in UNIX format before anything is touched
  112 +if $mingw ; then
  113 + [ -n "$M2_HOME" ] &&
  114 + M2_HOME="`(cd "$M2_HOME"; pwd)`"
  115 + [ -n "$JAVA_HOME" ] &&
  116 + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
  117 + # TODO classpath?
  118 +fi
  119 +
  120 +if [ -z "$JAVA_HOME" ]; then
  121 + javaExecutable="`which javac`"
  122 + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
  123 + # readlink(1) is not available as standard on Solaris 10.
  124 + readLink=`which readlink`
  125 + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
  126 + if $darwin ; then
  127 + javaHome="`dirname \"$javaExecutable\"`"
  128 + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
  129 + else
  130 + javaExecutable="`readlink -f \"$javaExecutable\"`"
  131 + fi
  132 + javaHome="`dirname \"$javaExecutable\"`"
  133 + javaHome=`expr "$javaHome" : '\(.*\)/bin'`
  134 + JAVA_HOME="$javaHome"
  135 + export JAVA_HOME
  136 + fi
  137 + fi
  138 +fi
  139 +
  140 +if [ -z "$JAVACMD" ] ; then
  141 + if [ -n "$JAVA_HOME" ] ; then
  142 + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
  143 + # IBM's JDK on AIX uses strange locations for the executables
  144 + JAVACMD="$JAVA_HOME/jre/sh/java"
  145 + else
  146 + JAVACMD="$JAVA_HOME/bin/java"
  147 + fi
  148 + else
  149 + JAVACMD="`which java`"
  150 + fi
  151 +fi
  152 +
  153 +if [ ! -x "$JAVACMD" ] ; then
  154 + echo "Error: JAVA_HOME is not defined correctly." >&2
  155 + echo " We cannot execute $JAVACMD" >&2
  156 + exit 1
  157 +fi
  158 +
  159 +if [ -z "$JAVA_HOME" ] ; then
  160 + echo "Warning: JAVA_HOME environment variable is not set."
  161 +fi
  162 +
  163 +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
  164 +
  165 +# traverses directory structure from process work directory to filesystem root
  166 +# first directory with .mvn subdirectory is considered project base directory
  167 +find_maven_basedir() {
  168 +
  169 + if [ -z "$1" ]
  170 + then
  171 + echo "Path not specified to find_maven_basedir"
  172 + return 1
  173 + fi
  174 +
  175 + basedir="$1"
  176 + wdir="$1"
  177 + while [ "$wdir" != '/' ] ; do
  178 + if [ -d "$wdir"/.mvn ] ; then
  179 + basedir=$wdir
  180 + break
  181 + fi
  182 + # workaround for JBEAP-8937 (on Solaris 10/Sparc)
  183 + if [ -d "${wdir}" ]; then
  184 + wdir=`cd "$wdir/.."; pwd`
  185 + fi
  186 + # end of workaround
  187 + done
  188 + echo "${basedir}"
  189 +}
  190 +
  191 +# concatenates all lines of a file
  192 +concat_lines() {
  193 + if [ -f "$1" ]; then
  194 + echo "$(tr -s '\n' ' ' < "$1")"
  195 + fi
  196 +}
  197 +
  198 +BASE_DIR=`find_maven_basedir "$(pwd)"`
  199 +if [ -z "$BASE_DIR" ]; then
  200 + exit 1;
  201 +fi
  202 +
  203 +##########################################################################################
  204 +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
  205 +# This allows using the maven wrapper in projects that prohibit checking in binary data.
  206 +##########################################################################################
  207 +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
  208 + if [ "$MVNW_VERBOSE" = true ]; then
  209 + echo "Found .mvn/wrapper/maven-wrapper.jar"
  210 + fi
  211 +else
  212 + if [ "$MVNW_VERBOSE" = true ]; then
  213 + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
  214 + fi
  215 + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
  216 + while IFS="=" read key value; do
  217 + case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
  218 + esac
  219 + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
  220 + if [ "$MVNW_VERBOSE" = true ]; then
  221 + echo "Downloading from: $jarUrl"
  222 + fi
  223 + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
  224 +
  225 + if command -v wget > /dev/null; then
  226 + if [ "$MVNW_VERBOSE" = true ]; then
  227 + echo "Found wget ... using wget"
  228 + fi
  229 + wget "$jarUrl" -O "$wrapperJarPath"
  230 + elif command -v curl > /dev/null; then
  231 + if [ "$MVNW_VERBOSE" = true ]; then
  232 + echo "Found curl ... using curl"
  233 + fi
  234 + curl -o "$wrapperJarPath" "$jarUrl"
  235 + else
  236 + if [ "$MVNW_VERBOSE" = true ]; then
  237 + echo "Falling back to using Java to download"
  238 + fi
  239 + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
  240 + if [ -e "$javaClass" ]; then
  241 + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
  242 + if [ "$MVNW_VERBOSE" = true ]; then
  243 + echo " - Compiling MavenWrapperDownloader.java ..."
  244 + fi
  245 + # Compiling the Java class
  246 + ("$JAVA_HOME/bin/javac" "$javaClass")
  247 + fi
  248 + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
  249 + # Running the downloader
  250 + if [ "$MVNW_VERBOSE" = true ]; then
  251 + echo " - Running MavenWrapperDownloader.java ..."
  252 + fi
  253 + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
  254 + fi
  255 + fi
  256 + fi
  257 +fi
  258 +##########################################################################################
  259 +# End of extension
  260 +##########################################################################################
  261 +
  262 +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
  263 +if [ "$MVNW_VERBOSE" = true ]; then
  264 + echo $MAVEN_PROJECTBASEDIR
  265 +fi
  266 +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
  267 +
  268 +# For Cygwin, switch paths to Windows format before running java
  269 +if $cygwin; then
  270 + [ -n "$M2_HOME" ] &&
  271 + M2_HOME=`cygpath --path --windows "$M2_HOME"`
  272 + [ -n "$JAVA_HOME" ] &&
  273 + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  274 + [ -n "$CLASSPATH" ] &&
  275 + CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  276 + [ -n "$MAVEN_PROJECTBASEDIR" ] &&
  277 + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
  278 +fi
  279 +
  280 +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
  281 +
  282 +exec "$JAVACMD" \
  283 + $MAVEN_OPTS \
  284 + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
  285 + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
  286 + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
... ...
cloud/common/mvnw.cmd 0 → 100644
... ... @@ -0,0 +1,161 @@
  1 +@REM ----------------------------------------------------------------------------
  2 +@REM Licensed to the Apache Software Foundation (ASF) under one
  3 +@REM or more contributor license agreements. See the NOTICE file
  4 +@REM distributed with this work for additional information
  5 +@REM regarding copyright ownership. The ASF licenses this file
  6 +@REM to you under the Apache License, Version 2.0 (the
  7 +@REM "License"); you may not use this file except in compliance
  8 +@REM with the License. You may obtain a copy of the License at
  9 +@REM
  10 +@REM https://www.apache.org/licenses/LICENSE-2.0
  11 +@REM
  12 +@REM Unless required by applicable law or agreed to in writing,
  13 +@REM software distributed under the License is distributed on an
  14 +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15 +@REM KIND, either express or implied. See the License for the
  16 +@REM specific language governing permissions and limitations
  17 +@REM under the License.
  18 +@REM ----------------------------------------------------------------------------
  19 +
  20 +@REM ----------------------------------------------------------------------------
  21 +@REM Maven2 Start Up Batch script
  22 +@REM
  23 +@REM Required ENV vars:
  24 +@REM JAVA_HOME - location of a JDK home dir
  25 +@REM
  26 +@REM Optional ENV vars
  27 +@REM M2_HOME - location of maven2's installed home dir
  28 +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
  29 +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
  30 +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
  31 +@REM e.g. to debug Maven itself, use
  32 +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
  33 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
  34 +@REM ----------------------------------------------------------------------------
  35 +
  36 +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
  37 +@echo off
  38 +@REM set title of command window
  39 +title %0
  40 +@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
  41 +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
  42 +
  43 +@REM set %HOME% to equivalent of $HOME
  44 +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
  45 +
  46 +@REM Execute a user defined script before this one
  47 +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
  48 +@REM check for pre script, once with legacy .bat ending and once with .cmd ending
  49 +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
  50 +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
  51 +:skipRcPre
  52 +
  53 +@setlocal
  54 +
  55 +set ERROR_CODE=0
  56 +
  57 +@REM To isolate internal variables from possible post scripts, we use another setlocal
  58 +@setlocal
  59 +
  60 +@REM ==== START VALIDATION ====
  61 +if not "%JAVA_HOME%" == "" goto OkJHome
  62 +
  63 +echo.
  64 +echo Error: JAVA_HOME not found in your environment. >&2
  65 +echo Please set the JAVA_HOME variable in your environment to match the >&2
  66 +echo location of your Java installation. >&2
  67 +echo.
  68 +goto error
  69 +
  70 +:OkJHome
  71 +if exist "%JAVA_HOME%\bin\java.exe" goto init
  72 +
  73 +echo.
  74 +echo Error: JAVA_HOME is set to an invalid directory. >&2
  75 +echo JAVA_HOME = "%JAVA_HOME%" >&2
  76 +echo Please set the JAVA_HOME variable in your environment to match the >&2
  77 +echo location of your Java installation. >&2
  78 +echo.
  79 +goto error
  80 +
  81 +@REM ==== END VALIDATION ====
  82 +
  83 +:init
  84 +
  85 +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
  86 +@REM Fallback to current working directory if not found.
  87 +
  88 +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
  89 +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
  90 +
  91 +set EXEC_DIR=%CD%
  92 +set WDIR=%EXEC_DIR%
  93 +:findBaseDir
  94 +IF EXIST "%WDIR%"\.mvn goto baseDirFound
  95 +cd ..
  96 +IF "%WDIR%"=="%CD%" goto baseDirNotFound
  97 +set WDIR=%CD%
  98 +goto findBaseDir
  99 +
  100 +:baseDirFound
  101 +set MAVEN_PROJECTBASEDIR=%WDIR%
  102 +cd "%EXEC_DIR%"
  103 +goto endDetectBaseDir
  104 +
  105 +:baseDirNotFound
  106 +set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
  107 +cd "%EXEC_DIR%"
  108 +
  109 +:endDetectBaseDir
  110 +
  111 +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
  112 +
  113 +@setlocal EnableExtensions EnableDelayedExpansion
  114 +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
  115 +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
  116 +
  117 +:endReadAdditionalConfig
  118 +
  119 +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
  120 +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
  121 +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
  122 +
  123 +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
  124 +FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
  125 + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
  126 +)
  127 +
  128 +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
  129 +@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
  130 +if exist %WRAPPER_JAR% (
  131 + echo Found %WRAPPER_JAR%
  132 +) else (
  133 + echo Couldn't find %WRAPPER_JAR%, downloading it ...
  134 + echo Downloading from: %DOWNLOAD_URL%
  135 + powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
  136 + echo Finished downloading %WRAPPER_JAR%
  137 +)
  138 +@REM End of extension
  139 +
  140 +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
  141 +if ERRORLEVEL 1 goto error
  142 +goto end
  143 +
  144 +:error
  145 +set ERROR_CODE=1
  146 +
  147 +:end
  148 +@endlocal & set ERROR_CODE=%ERROR_CODE%
  149 +
  150 +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
  151 +@REM check for post script, once with legacy .bat ending and once with .cmd ending
  152 +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
  153 +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
  154 +:skipRcPost
  155 +
  156 +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
  157 +if "%MAVEN_BATCH_PAUSE%" == "on" pause
  158 +
  159 +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
  160 +
  161 +exit /B %ERROR_CODE%
... ...
cloud/common/pom.xml 0 → 100644
... ... @@ -0,0 +1,90 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4 + <modelVersion>4.0.0</modelVersion>
  5 + <parent>
  6 + <groupId>org.springframework.boot</groupId>
  7 + <artifactId>spring-boot-starter-parent</artifactId>
  8 + <version>2.1.7.RELEASE</version>
  9 + <relativePath/> <!-- lookup parent from repository -->
  10 + </parent>
  11 + <groupId>com.sincere</groupId>
  12 + <artifactId>common</artifactId>
  13 + <version>0.0.1-SNAPSHOT</version>
  14 + <name>common</name>
  15 + <description>Demo project for Spring Boot</description>
  16 +
  17 + <properties>
  18 + <java.version>1.8</java.version>
  19 + </properties>
  20 +
  21 + <dependencies>
  22 + <dependency>
  23 + <groupId>org.springframework.boot</groupId>
  24 + <artifactId>spring-boot-starter</artifactId>
  25 + </dependency>
  26 +
  27 + <dependency>
  28 + <groupId>org.springframework.boot</groupId>
  29 + <artifactId>spring-boot-starter-test</artifactId>
  30 + <scope>test</scope>
  31 + </dependency>
  32 +
  33 + <dependency>
  34 + <groupId>org.springframework.boot</groupId>
  35 + <artifactId>spring-boot</artifactId>
  36 + </dependency>
  37 + <dependency>
  38 + <groupId>com.baomidou</groupId>
  39 + <artifactId>mybatis-plus-core</artifactId>
  40 + <version>3.0.1</version>
  41 + <scope>compile</scope>
  42 + </dependency>
  43 +
  44 + <dependency>
  45 + <groupId>com.baomidou</groupId>
  46 + <artifactId>mybatis-plus-extension</artifactId>
  47 + <version>3.0.1</version>
  48 + <scope>compile</scope>
  49 + </dependency>
  50 +
  51 + <dependency>
  52 + <groupId>org.apache.tomcat.embed</groupId>
  53 + <artifactId>tomcat-embed-core</artifactId>
  54 + </dependency>
  55 +
  56 + <dependency>
  57 + <groupId>io.jsonwebtoken</groupId>
  58 + <artifactId>jjwt</artifactId>
  59 + <version>0.9.0</version>
  60 + </dependency>
  61 +
  62 + <dependency>
  63 + <groupId>org.springframework.security</groupId>
  64 + <artifactId>spring-security-core</artifactId>
  65 + </dependency>
  66 +
  67 + <dependency>
  68 + <groupId>org.projectlombok</groupId>
  69 + <artifactId>lombok</artifactId>
  70 + </dependency>
  71 +
  72 +
  73 + <dependency>
  74 + <groupId>commons-collections</groupId>
  75 + <artifactId>commons-collections</artifactId>
  76 + <version>3.2.2</version>
  77 + </dependency>
  78 +
  79 + </dependencies>
  80 +
  81 + <build>
  82 + <plugins>
  83 + <plugin>
  84 + <groupId>org.springframework.boot</groupId>
  85 + <artifactId>spring-boot-maven-plugin</artifactId>
  86 + </plugin>
  87 + </plugins>
  88 + </build>
  89 +
  90 +</project>
... ...
cloud/common/src/main/java/com/sincere/common/CommonApplication.java 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +package com.sincere.common;
  2 +
  3 +import org.springframework.boot.SpringApplication;
  4 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  5 +
  6 +@SpringBootApplication
  7 +public class CommonApplication {
  8 +
  9 + public static void main(String[] args) {
  10 + SpringApplication.run(CommonApplication.class, args);
  11 + }
  12 +
  13 +}
... ...
cloud/common/src/main/java/com/sincere/common/commons/CodeEnum.java 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +package com.sincere.common.commons;
  2 +
  3 +/**
  4 + * @Author: [gitgeek]
  5 + * @Date: [2018-08-02 08:50]
  6 + * @Description: [ ]
  7 + * @Version: [1.0.0]
  8 + * @Copy: [com.zzg]
  9 + */
  10 +public enum CodeEnum {
  11 + SUCCESS(0),
  12 + ERROR(1);
  13 +
  14 + private Integer code;
  15 + CodeEnum(Integer code){
  16 + this.code = code;
  17 + }
  18 +
  19 + public Integer getCode() {
  20 + return code;
  21 + }
  22 +
  23 + public void setCode(Integer code) {
  24 + this.code = code;
  25 + }
  26 +}
... ...
cloud/common/src/main/java/com/sincere/common/commons/PageResult.java 0 → 100644
... ... @@ -0,0 +1,30 @@
  1 +package com.sincere.common.commons;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Builder;
  5 +import lombok.Data;
  6 +import lombok.NoArgsConstructor;
  7 +
  8 +import java.io.Serializable;
  9 +import java.util.List;
  10 +
  11 +
  12 +/**
  13 + * @author 作者 owen E-mail: 624191343@qq.com
  14 + * @version 创建时间:2017年11月12日 上午22:57:51
  15 + * 分页实体类
  16 + * total 总数
  17 + * code 是否成功
  18 + * data 当前页结果集
  19 + */
  20 +@Data
  21 +@Builder
  22 +@NoArgsConstructor
  23 +@AllArgsConstructor
  24 +public class PageResult<T> implements Serializable {
  25 +
  26 + private static final long serialVersionUID = -275582248840137389L;
  27 + private Long count;
  28 + private int code;
  29 + private List<T> data;
  30 +}
... ...
cloud/common/src/main/java/com/sincere/common/commons/Result.java 0 → 100644
... ... @@ -0,0 +1,49 @@
  1 +package com.sincere.common.commons;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Data;
  5 +import lombok.NoArgsConstructor;
  6 +
  7 +import java.io.Serializable;
  8 +
  9 +/**
  10 + * @Author: [zhangzhiguang]
  11 + * @Date: [2018-08-01 23:39]
  12 + * @Description: [ ]
  13 + * @Version: [1.0.0]
  14 + * @Copy: [com.zzg]
  15 + */
  16 +@Data
  17 +@NoArgsConstructor
  18 +@AllArgsConstructor
  19 +public class Result<T> implements Serializable {
  20 +
  21 + private T datas;
  22 + private Integer resp_code;
  23 + private String resp_msg;
  24 +
  25 + public static <T> Result<T> succeed(String msg) {
  26 + return succeedWith(null, CodeEnum.SUCCESS.getCode(),msg);
  27 + }
  28 +
  29 + public static <T> Result<T> succeed(T model, String msg) {
  30 + return succeedWith(model, CodeEnum.SUCCESS.getCode(),msg);
  31 + }
  32 +
  33 + public static <T> Result<T> succeedWith(T datas, Integer code,String msg) {
  34 + return new Result<T>(datas, code, msg);
  35 + }
  36 +
  37 + public static <T> Result<T> failed(String msg) {
  38 + return failedWith(null, CodeEnum.ERROR.getCode(), msg);
  39 + }
  40 +
  41 + public static <T> Result<T> failed(T model,String msg) {
  42 + return failedWith(model, CodeEnum.ERROR.getCode(), msg);
  43 + }
  44 +
  45 + public static <T> Result<T> failedWith(T datas, Integer code, String msg) {
  46 + return new Result<T>( datas, code, msg);
  47 + }
  48 +
  49 +}
... ...
cloud/common/src/main/java/com/sincere/common/config/DataSourceHolder.java 0 → 100644
... ... @@ -0,0 +1,25 @@
  1 +package com.sincere.common.config;
  2 +
  3 +
  4 +/**
  5 + * 用于数据源切换
  6 + *
  7 + */
  8 +public class DataSourceHolder {
  9 +
  10 + private static final ThreadLocal<DataSourceKey> dataSourceKey = new ThreadLocal<>();
  11 +
  12 + public static DataSourceKey getDataSourceKey() {
  13 + return dataSourceKey.get();
  14 + }
  15 +
  16 + public static void setDataSourceKey(DataSourceKey type) {
  17 + dataSourceKey.set(type);
  18 + }
  19 +
  20 + public static void clearDataSourceKey() {
  21 + dataSourceKey.remove();
  22 + }
  23 +
  24 +
  25 +}
0 26 \ No newline at end of file
... ...
cloud/common/src/main/java/com/sincere/common/config/DataSourceKey.java 0 → 100644
... ... @@ -0,0 +1,11 @@
  1 +package com.sincere.common.config;
  2 +
  3 +/**
  4 + * 数据源定义
  5 + *
  6 + * @author owen
  7 + * @create 2017年7月2日
  8 + */
  9 +public enum DataSourceKey {
  10 + core, log ,sharding
  11 +}
0 12 \ No newline at end of file
... ...
cloud/common/src/main/java/com/sincere/common/constants/CommonConstants.java 0 → 100644
... ... @@ -0,0 +1,21 @@
  1 +package com.sincere.common.constants;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/10/17 15:18
  6 + * @description:
  7 + */
  8 +public interface CommonConstants {
  9 +
  10 + /**
  11 + * 树的根节点值
  12 + */
  13 + Integer TREE_ROOT = -1;
  14 +
  15 + String PANDA_REDIS_LIST_LEY = "panda_client_id_to_access:cloud";
  16 +
  17 + String DEFAULT_PARAMTER_KEY = "parameter";
  18 +
  19 +
  20 +
  21 +}
... ...
cloud/common/src/main/java/com/sincere/common/constants/MqQueueNameConstant.java 0 → 100644
... ... @@ -0,0 +1,21 @@
  1 +package com.sincere.common.constants;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/11/14 15:42
  6 + */
  7 +public interface MqQueueNameConstant {
  8 +
  9 + /**
  10 + * 系统日志队列
  11 + */
  12 + String SYS_LOG_QUEUE= "sys_log_queue";
  13 + /**
  14 + * 短信验证码队列
  15 + */
  16 + String MOBILE_CODE_QUEUE= "mobile_code_queue";
  17 + /**
  18 + * 邮件队列
  19 + */
  20 + String MAIL_CODE_QUEUE= "mail_code_queue";
  21 +}
... ...
cloud/common/src/main/java/com/sincere/common/constants/PandaServiceNameConstants.java 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +package com.sincere.common.constants;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/11/14 15:52
  6 + */
  7 +public interface PandaServiceNameConstants {
  8 +
  9 + String PANDA_AUTH = "PANDA_AUTH";
  10 + String PANDA_COMMON = "PANDA_COMMON";
  11 + String PANDA_CONFIG_SERVER = "PANDA_CONFIG_SERVER";
  12 + String PANDA_GATEWAY = "PANDA_GATEWAY";
  13 + String PANDA_SERVER = "PANDA_SERVER";
  14 + String PANDA_USER_SERVICE = "PANDA_USER_SERVICE";
  15 + String PANDA_GEN_SERVICE = "PANDA_GEN_SERVICE";
  16 +
  17 +}
... ...
cloud/common/src/main/java/com/sincere/common/constants/SecurityConstants.java 0 → 100644
... ... @@ -0,0 +1,61 @@
  1 +package com.sincere.common.constants;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/10/9 15:10
  6 + * @description: 安全配置常量
  7 + */
  8 +public interface SecurityConstants {
  9 +
  10 + /**
  11 + * token的header key
  12 + */
  13 + String TOKEN_HEADER = "Authorization";
  14 +
  15 + String CLOUD = "panda";
  16 +
  17 + String CLOUD_PREFIX = "panda_";
  18 +
  19 + /**
  20 + * jwt 加密key
  21 + */
  22 + String SIGN_KEY = "PANDA";
  23 +
  24 + /**
  25 + * sys_oauth_client_details 字段
  26 + */
  27 + String CLIENT_FIELDS = "client_id, client_secret, resources_ids, scope, authorized_grant_types,"
  28 + + "web_server_redirect_uri, authorities, access_token_validity,"
  29 + + "refresh_token_validity, addition_information, autoapprove";
  30 +
  31 + /**
  32 + * jdbcClientDetailsService查询sql
  33 + */
  34 + String BASE_FIND_STATEMENT = "select " + CLIENT_FIELDS + " from sys_oauth_client_details";
  35 +
  36 + /**
  37 + * 默认查询语句
  38 + */
  39 + String DEFAULT_FIND_STATEMENT = BASE_FIND_STATEMENT + " order by client_id";
  40 +
  41 + /**
  42 + * 根据client_id查询
  43 + */
  44 + String DEFAULT_FIND_STATEMENT_BY_CLIENT_ID = BASE_FIND_STATEMENT + " where client_id = ?";
  45 +
  46 +
  47 + String SPRING_SECURITY_MOBILE_KEY = "mobile";
  48 +
  49 + String SPRING_SECURITY_CODE_KEY = "code";
  50 +
  51 + /**
  52 + * 手机验证码登录的地址
  53 + */
  54 + String SPRING_SECURITY_MOBILE_TOKEN_URL = "/mobile/token";
  55 +
  56 +
  57 + String REDIS_CODE_PREFIX = "panda_code:";
  58 +
  59 + Integer REDIS_CODE_EXPIRE = 60;
  60 +
  61 +}
... ...
cloud/common/src/main/java/com/sincere/common/constants/UserConstants.java 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +package com.sincere.common.constants;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/10/17 09:24
  6 + * @description:
  7 + */
  8 +public interface UserConstants {
  9 +
  10 + /**
  11 + * jwt中 用户id的key
  12 + */
  13 + String USER_ID = "userId";
  14 +
  15 +
  16 + /**
  17 + * jwt中 用户userName的key
  18 + */
  19 + String USER_NAME = "userName";
  20 +
  21 + /**
  22 + * jwt中 角色集合的key
  23 + */
  24 + String AUTHORITIES = "authorities";
  25 +
  26 +}
... ...
cloud/common/src/main/java/com/sincere/common/entity/SysUser.java 0 → 100644
... ... @@ -0,0 +1,99 @@
  1 +package com.sincere.common.entity;
  2 +
  3 +
  4 +import lombok.Data;
  5 +import lombok.experimental.Accessors;
  6 +
  7 +import java.time.LocalDateTime;
  8 +
  9 +/**
  10 + * <p>
  11 + * 用户表
  12 + * </p>
  13 + *
  14 + * @author yukong
  15 + * @since 2018-10-08
  16 + */
  17 +@Data
  18 +@Accessors(chain = true)
  19 +public class SysUser {
  20 +
  21 + private static final long serialVersionUID = 1L;
  22 +
  23 + /**
  24 + * 主键ID
  25 + */
  26 + private Integer userId;
  27 +
  28 + /**
  29 + * 用户名
  30 + */
  31 + private String username;
  32 +
  33 + /**
  34 + * 密码
  35 + */
  36 + private String password;
  37 +
  38 + /**
  39 + * 邮箱
  40 + */
  41 + private String email;
  42 +
  43 + /**
  44 + * 手机号码
  45 + */
  46 + private String mobile;
  47 +
  48 + /**
  49 + * qq号码
  50 + */
  51 + private String qq;
  52 +
  53 + /**
  54 + * 微信号码
  55 + */
  56 + private String wechat;
  57 +
  58 + /**
  59 + * 微博url
  60 + */
  61 + private String weibo;
  62 +
  63 + /**
  64 + * 头像url
  65 + */
  66 + private String avatar;
  67 +
  68 + /**
  69 + * qq openid
  70 + */
  71 + private String qqOpenid;
  72 +
  73 + /**
  74 + * 微信openid
  75 + */
  76 + private String wechatOpenid;
  77 +
  78 + /**
  79 + * 微博openid
  80 + */
  81 + private String weiboOpenid;
  82 +
  83 + /**
  84 + * 创建时间
  85 + */
  86 + private LocalDateTime createTime;
  87 +
  88 + /**
  89 + * 更新时间
  90 + */
  91 + private LocalDateTime modifyTime;
  92 +
  93 + /**
  94 + * 是否删除 0-未删除 1-删除
  95 + */
  96 + private String delFlag;
  97 +
  98 +
  99 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/ApiErrorCodeEnum.java 0 → 100644
... ... @@ -0,0 +1,57 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +
  4 +import com.baomidou.mybatisplus.extension.api.IErrorCode;
  5 +
  6 +/**
  7 + * @author yukong
  8 + * @date 2019-04-20 18:54
  9 + */
  10 +public enum ApiErrorCodeEnum implements IErrorCode {
  11 + /**
  12 + * 失败
  13 + */
  14 + FAILED(-1, "失败"),
  15 + /**
  16 + * 成功
  17 + */
  18 + SUCCESS(0, "成功"),
  19 +
  20 + /**
  21 + * 认证失败
  22 + */
  23 + AUTHORIZED_FAILED(-2, "用户名或密码错误");
  24 +
  25 + private final long code;
  26 + private final String msg;
  27 +
  28 + ApiErrorCodeEnum(final long code, final String msg) {
  29 + this.code = code;
  30 + this.msg = msg;
  31 + }
  32 +
  33 + public static ApiErrorCodeEnum fromCode(long code) {
  34 + ApiErrorCodeEnum[] ecs = ApiErrorCodeEnum.values();
  35 + for (ApiErrorCodeEnum ec : ecs) {
  36 + if (ec.getCode() == code) {
  37 + return ec;
  38 + }
  39 + }
  40 + return SUCCESS;
  41 + }
  42 +
  43 + @Override
  44 + public long getCode() {
  45 + return code;
  46 + }
  47 +
  48 + @Override
  49 + public String getMsg() {
  50 + return msg;
  51 + }
  52 +
  53 + @Override
  54 + public String toString() {
  55 + return String.format(" ErrorCode:{code=%s, msg=%s} ", code, msg);
  56 + }
  57 +}
0 58 \ No newline at end of file
... ...
cloud/common/src/main/java/com/sincere/common/enums/DataStatusEnum.java 0 → 100644
... ... @@ -0,0 +1,30 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/10/9 14:35
  6 + * @description: 数据状态枚举
  7 + */
  8 +public enum DataStatusEnum {
  9 +
  10 + NORMAL("0", "正常"),
  11 + LOCK("1","删除");
  12 +
  13 +
  14 + private String code;
  15 +
  16 + private String message;
  17 +
  18 + DataStatusEnum(String code, String message) {
  19 + this.code = code;
  20 + this.message = message;
  21 + }
  22 +
  23 + public String getCode() {
  24 + return code;
  25 + }
  26 +
  27 + public String getMessage() {
  28 + return message;
  29 + }
  30 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/JobDataStatusEnum.java 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +/**
  4 + * @author yukong
  5 + * @date 2018/10/9 14:35
  6 + * @description job任务状态枚举
  7 + */
  8 +public enum JobDataStatusEnum {
  9 +
  10 + /**
  11 + * 运行中
  12 + */
  13 + UP(0, "运行"),
  14 +
  15 + /**
  16 + * 停止
  17 + */
  18 + STOP(1,"停止");
  19 +
  20 +
  21 + private Integer code;
  22 +
  23 + private String message;
  24 +
  25 + JobDataStatusEnum(Integer code, String message) {
  26 + this.code = code;
  27 + this.message = message;
  28 + }
  29 +
  30 + public Integer getCode() {
  31 + return code;
  32 + }
  33 +
  34 + public String getMessage() {
  35 + return message;
  36 + }
  37 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/OperationStatusEnum.java 0 → 100644
... ... @@ -0,0 +1,30 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/10/9 14:35
  6 + * @description: 用户状态枚举
  7 + */
  8 +public enum OperationStatusEnum {
  9 +
  10 + SUCCESS("0", "成功"),
  11 + FAIL("1","失败");
  12 +
  13 +
  14 + private String code;
  15 +
  16 + private String message;
  17 +
  18 + OperationStatusEnum(String code, String message) {
  19 + this.code = code;
  20 + this.message = message;
  21 + }
  22 +
  23 + public String getCode() {
  24 + return code;
  25 + }
  26 +
  27 + public String getMessage() {
  28 + return message;
  29 + }
  30 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/PasswordEncoderEnum.java 0 → 100644
... ... @@ -0,0 +1,27 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +/**
  4 + * @author yukong
  5 + * @date 2019-04-23 14:15
  6 + */
  7 +public enum PasswordEncoderEnum {
  8 +
  9 + /**
  10 + * bcrypt加密
  11 + */
  12 + BCRYPT("{bcrypt}"),
  13 + /**
  14 + * 明文
  15 + */
  16 + NOOP("{noop}");
  17 +
  18 + private String value;
  19 +
  20 + private PasswordEncoderEnum(String value){
  21 + this.value = value;
  22 + }
  23 +
  24 + public String getValue() {
  25 + return value;
  26 + }
  27 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/ResourceTypeEnum.java 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/10/17 16:03
  6 + * @description: 资源类型枚举
  7 + */
  8 +public enum ResourceTypeEnum {
  9 + MENU("0", "菜单"),
  10 + BUTTON("1","按钮");
  11 +
  12 +
  13 + private String code;
  14 +
  15 + private String message;
  16 +
  17 + ResourceTypeEnum(String code, String message) {
  18 + this.code = code;
  19 + this.message = message;
  20 + }
  21 +
  22 + public String getCode() {
  23 + return code;
  24 + }
  25 +
  26 + public String getMessage() {
  27 + return message;
  28 + }
  29 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/ResponseCodeEnum.java 0 → 100644
... ... @@ -0,0 +1,36 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/10/12 10:51
  6 + * @description: 响应信息code枚举
  7 + */
  8 +public enum ResponseCodeEnum {
  9 +
  10 + SUCCESS(0, "success"),
  11 +
  12 + NOT_LOGIN(-1,"need login"),
  13 +
  14 + FAIL(-1,"fail"),
  15 +
  16 + PERMISSION_DEFINED(2,"permission defined");
  17 +
  18 +
  19 + private Integer code;
  20 +
  21 + private String message;
  22 +
  23 + ResponseCodeEnum(Integer code, String message) {
  24 + this.code = code;
  25 + this.message = message;
  26 + }
  27 +
  28 + public Integer getCode() {
  29 + return code;
  30 + }
  31 +
  32 + public String getMessage() {
  33 + return message;
  34 + }
  35 +
  36 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/SmsMessageChannnelEnum.java 0 → 100644
... ... @@ -0,0 +1,27 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +import lombok.Getter;
  4 +
  5 +/**
  6 + * @author: yukong
  7 + * @date: 2018/12/3 10:44
  8 + */
  9 +
  10 +public enum SmsMessageChannnelEnum {
  11 +
  12 + /**
  13 + * 腾讯云
  14 + */
  15 + TENCENT_CLOUD("smsTencentCloudMessageHandler", "腾讯云");
  16 +
  17 + @Getter
  18 + String code;
  19 +
  20 + @Getter
  21 + String desc;
  22 +
  23 + private SmsMessageChannnelEnum(String code, String desc) {
  24 + this.code = code;
  25 + this.desc = desc;
  26 + }
  27 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/SmsTemplateEnum.java 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +import lombok.Getter;
  4 +
  5 +/**
  6 + * @author: yukong
  7 + * @date: 2018/12/14 14:53
  8 + */
  9 +public enum SmsTemplateEnum {
  10 +
  11 + /**
  12 + * 腾讯云
  13 + */
  14 + LOGIN_CODE("程序咖啡厅", "238684");
  15 +
  16 + @Getter
  17 + String signName;
  18 +
  19 + @Getter
  20 + String tempalte;
  21 +
  22 + private SmsTemplateEnum(String signName, String tempalte) {
  23 + this.signName = signName;
  24 + this.tempalte = tempalte;
  25 + }
  26 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/SysLogTypeEnum.java 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/10/17 16:03
  6 + * @description: 资源类型枚举
  7 + */
  8 +public enum SysLogTypeEnum {
  9 + LOGIN("0", "登录日志"),
  10 + OPERATOR("1","操作日志");
  11 +
  12 +
  13 + private String code;
  14 +
  15 + private String message;
  16 +
  17 + SysLogTypeEnum(String code, String message) {
  18 + this.code = code;
  19 + this.message = message;
  20 + }
  21 +
  22 + public String getCode() {
  23 + return code;
  24 + }
  25 +
  26 + public String getMessage() {
  27 + return message;
  28 + }
  29 +}
... ...
cloud/common/src/main/java/com/sincere/common/enums/UserStatusEnum.java 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +package com.sincere.common.enums;
  2 +
  3 +/**
  4 + * @author: yukong
  5 + * @date: 2018/10/9 14:35
  6 + * @description: 用户状态枚举
  7 + */
  8 +public enum UserStatusEnum {
  9 +
  10 + /**
  11 + * 正常
  12 + */
  13 + NORMAL("0", "正常"),
  14 +
  15 + /**
  16 + * 锁定
  17 + */
  18 + LOCK("1","锁定");
  19 +
  20 +
  21 + private String code;
  22 +
  23 + private String message;
  24 +
  25 + UserStatusEnum(String code, String message) {
  26 + this.code = code;
  27 + this.message = message;
  28 + }
  29 +
  30 + public String getCode() {
  31 + return code;
  32 + }
  33 +
  34 + public String getMessage() {
  35 + return message;
  36 + }
  37 +}
... ...
cloud/common/src/main/java/com/sincere/common/model/log/SysLog.java 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +package com.sincere.common.model.log;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Builder;
  5 +import lombok.Data;
  6 +import lombok.NoArgsConstructor;
  7 +
  8 +import java.io.Serializable;
  9 +import java.util.Date;
  10 +
  11 +
  12 +/**
  13 +* @author 作者 owen E-mail: 624191343@qq.com
  14 +* @version 创建时间:2017年11月12日 上午22:57:51
  15 +* 日志实体
  16 + */
  17 +@Builder
  18 +@Data
  19 +@NoArgsConstructor
  20 +@AllArgsConstructor
  21 +public class SysLog implements Serializable {
  22 +
  23 + private static final long serialVersionUID = -5398795297842978376L;
  24 +
  25 + private Long id;
  26 +// 用户名
  27 + private String username;
  28 +// 归属模块
  29 + private String module;
  30 +// 执行方法的参数值
  31 + private String params;
  32 + private String remark;
  33 +// 是否执行成功
  34 + private Boolean flag;
  35 +
  36 + private Date createTime;
  37 +}
... ...
cloud/common/src/main/java/com/sincere/common/model/system/LoginAppUser.java 0 → 100644
... ... @@ -0,0 +1,93 @@
  1 +package com.sincere.common.model.system;
  2 +
  3 +import com.fasterxml.jackson.annotation.JsonIgnore;
  4 +import lombok.Getter;
  5 +import lombok.Setter;
  6 +import org.springframework.security.core.GrantedAuthority;
  7 +import org.springframework.security.core.authority.SimpleGrantedAuthority;
  8 +import org.springframework.security.core.userdetails.UserDetails;
  9 +import org.springframework.util.CollectionUtils;
  10 +
  11 +import java.io.Serializable;
  12 +import java.util.Collection;
  13 +import java.util.HashSet;
  14 +import java.util.Set;
  15 +
  16 +/**
  17 + * 用户实体绑定spring security
  18 + */
  19 +@Getter
  20 +@Setter
  21 +public class LoginAppUser extends SysUser implements UserDetails {
  22 +
  23 + /**
  24 + *
  25 + */
  26 + private static final long serialVersionUID = -3685249101751401211L;
  27 +
  28 + private Set<SysRole> sysRoles;
  29 +
  30 + private Set<String> permissions;
  31 +
  32 + /***
  33 + * 权限重写
  34 + */
  35 + @JsonIgnore
  36 + @Override
  37 + public Collection<? extends GrantedAuthority> getAuthorities() {
  38 + Collection<GrantedAuthority> collection = new HashSet<>();
  39 + if (!CollectionUtils.isEmpty(sysRoles)) {
  40 + sysRoles.parallelStream().forEach(role -> {
  41 + if (role.getCode().startsWith("ROLE_")) {
  42 + collection.add(new SimpleGrantedAuthority(role.getCode()));
  43 + } else {
  44 + collection.add(new SimpleGrantedAuthority("ROLE_" + role.getCode()));
  45 + }
  46 + });
  47 + }
  48 +
  49 + if (!CollectionUtils.isEmpty(permissions)) {
  50 + permissions.parallelStream().forEach(per -> {
  51 + collection.add(new SimpleGrantedAuthority(per));
  52 + });
  53 + }
  54 +
  55 + return collection;
  56 + }
  57 +
  58 +
  59 + @JsonIgnore
  60 + public Collection<? extends GrantedAuthority> putAll( Collection<GrantedAuthority> collections) {
  61 + Collection<GrantedAuthority> collection = new HashSet<>();
  62 +
  63 + collection.addAll(collections) ;
  64 +
  65 + return collection;
  66 + }
  67 +
  68 +
  69 + @Override
  70 + public boolean isAccountNonExpired() {
  71 + return true;
  72 + }
  73 +
  74 + @Override
  75 + public boolean isAccountNonLocked() {
  76 + return true;
  77 + }
  78 +
  79 + @Override
  80 + public boolean isCredentialsNonExpired() {
  81 + return true;
  82 + }
  83 +
  84 + @Override
  85 + public boolean isEnabled() {
  86 + return getEnabled();
  87 + }
  88 +
  89 + @Override
  90 + protected Serializable pkVal() {
  91 + return null;
  92 + }
  93 +}
... ...
cloud/common/src/main/java/com/sincere/common/model/system/SysMenu.java 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +package com.sincere.common.model.system;
  2 +
  3 +import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  4 +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
  5 +import lombok.Data;
  6 +
  7 +import java.io.Serializable;
  8 +import java.util.Date;
  9 +import java.util.List;
  10 +import java.util.Set;
  11 +
  12 +@Data
  13 +public class SysMenu implements Serializable {
  14 +
  15 + private static final long serialVersionUID = 749360940290141180L;
  16 + @JsonSerialize(using= ToStringSerializer.class)
  17 + private Long id;
  18 + private Long parentId;
  19 + private String name;
  20 + private String css;
  21 + private String url;
  22 + private String path;
  23 + private Integer sort;
  24 + private Date createTime;
  25 + private Date updateTime;
  26 + private Integer isMenu;
  27 + private Boolean hidden;
  28 +
  29 +
  30 + private List<SysMenu> subMenus;
  31 +
  32 + private Long roleId;
  33 + private Set<Long> menuIds;
  34 +
  35 +
  36 +
  37 +}
... ...
cloud/common/src/main/java/com/sincere/common/model/system/SysPermission.java 0 → 100644
... ... @@ -0,0 +1,47 @@
  1 +package com.sincere.common.model.system;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.IdType;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import com.baomidou.mybatisplus.extension.activerecord.Model;
  8 +import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  9 +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
  10 +import lombok.Data;
  11 +
  12 +import java.io.Serializable;
  13 +import java.util.Date;
  14 +import java.util.Set;
  15 +
  16 +
  17 +/**
  18 + * @author 作者 owen E-mail: 624191343@qq.com
  19 + * @version 创建时间:2017年11月12日 上午22:57:51
  20 + * 权限标识
  21 + */
  22 +@Data
  23 +@TableName("sys_permission")
  24 +public class SysPermission extends Model<SysPermission> implements Serializable {
  25 + /**
  26 + *
  27 + */
  28 + private static final long serialVersionUID = 1389727646460449239L;
  29 + @TableId(value="id",type= IdType.ID_WORKER) //雪花算法 id生成策略
  30 + @JsonSerialize(using= ToStringSerializer.class)
  31 + private Long id;
  32 + private String permission;
  33 + private String name;
  34 + @TableField(value="createTime")
  35 + private Date createTime;
  36 + @TableField(value="updateTime")
  37 + private Date updateTime;
  38 + @TableField(exist=false)
  39 + private Long roleId;
  40 + @TableField(exist=false)
  41 + private Set<Long> authIds;
  42 +
  43 + @Override
  44 + protected Serializable pkVal() {
  45 + return null;
  46 + }
  47 +}
... ...
cloud/common/src/main/java/com/sincere/common/model/system/SysRole.java 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +package com.sincere.common.model.system;
  2 +
  3 +import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  4 +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
  5 +import lombok.Data;
  6 +
  7 +import java.io.Serializable;
  8 +import java.util.Date;
  9 +
  10 +/**
  11 + * @author 作者 owen E-mail: 624191343@qq.com
  12 + * @version 创建时间:2017年11月12日 上午22:57:51
  13 + * 角色
  14 + */
  15 +@Data
  16 +public class SysRole implements Serializable {
  17 +
  18 + /**
  19 + *
  20 + */
  21 + private static final long serialVersionUID = 4497149010220586111L;
  22 + @JsonSerialize(using= ToStringSerializer.class)
  23 + private Long id;
  24 + private String code;
  25 + private String name;
  26 + private Date createTime;
  27 + private Date updateTime;
  28 + private Long userId;
  29 +}
... ...
cloud/common/src/main/java/com/sincere/common/model/system/SysUser.java 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +package com.sincere.common.model.system;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.IdType;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import com.baomidou.mybatisplus.annotation.TableId;
  6 +import com.baomidou.mybatisplus.annotation.TableName;
  7 +import com.baomidou.mybatisplus.extension.activerecord.Model;
  8 +import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  9 +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
  10 +import lombok.Data;
  11 +
  12 +import java.io.Serializable;
  13 +import java.util.Date;
  14 +import java.util.List;
  15 +
  16 +/**
  17 + * @author 作者 owen E-mail: 624191343@qq.com
  18 + * @version 创建时间:2017年11月12日 上午22:57:51
  19 + * 用户实体
  20 + */
  21 +@Data
  22 +@TableName("sys_user")
  23 +public class SysUser extends Model<SysUser> implements Serializable {
  24 +
  25 + /**
  26 + *
  27 + */
  28 + private static final long serialVersionUID = -5886012896705137070L;
  29 + @TableId(value="id",type= IdType.ID_WORKER) //雪花算法 id生成策略
  30 + @JsonSerialize(using= ToStringSerializer.class)
  31 + private Long id;
  32 + private String username;
  33 + private String password;
  34 + private String nickname;
  35 + private String headImgUrl;
  36 + private String phone;
  37 + private Integer sex;
  38 + private Boolean enabled;
  39 + private String type;
  40 + @TableField(value="createTime")
  41 + private Date createTime;
  42 + @TableField(value="updateTime")
  43 + private Date updateTime;
  44 +
  45 + @TableField(exist=false)
  46 + private List<SysRole> roles;
  47 +
  48 + @TableField(exist=false)
  49 + private String roleId;
  50 +
  51 + @TableField(exist=false)
  52 + private String oldPassword;
  53 + @TableField(exist=false)
  54 + private String newPassword;
  55 +
  56 + @Override
  57 + protected Serializable pkVal() {
  58 + return null;
  59 + }
  60 +}
... ...
cloud/common/src/main/java/com/sincere/common/model/system/SysUserRole.java 0 → 100644
... ... @@ -0,0 +1,18 @@
  1 +package com.sincere.common.model.system;
  2 +
  3 +import lombok.Data;
  4 +
  5 +/**
  6 + * @Author: [gitgeek]
  7 + * @Date: [2018-08-06 21:29]
  8 + * @Description: [ ]
  9 + * @Version: [1.0.0]
  10 + * @Copy: [com.zzg]
  11 + */
  12 +@Data
  13 +public class SysUserRole {
  14 +
  15 + private String userId;
  16 + private String roleId;
  17 +
  18 +}
... ...
cloud/common/src/main/java/com/sincere/common/model/system/constants/UserType.java 0 → 100644
... ... @@ -0,0 +1,19 @@
  1 +package com.sincere.common.model.system.constants;
  2 +
  3 +
  4 +/**
  5 + * @author 作者 owen E-mail: 624191343@qq.com
  6 + * @version 创建时间:2017年11月12日 上午22:57:51
  7 + * 用户类型
  8 + */
  9 +public enum UserType {
  10 +
  11 + /**
  12 + * 前端app用户
  13 + */
  14 + APP,
  15 + /**
  16 + * 后端管理用户
  17 + */
  18 + BACKEND
  19 +}
... ...
cloud/common/src/main/java/com/sincere/common/props/PermitUrlProperties.java 0 → 100644
... ... @@ -0,0 +1,55 @@
  1 +package com.sincere.common.props;
  2 +
  3 +import org.springframework.boot.context.properties.ConfigurationProperties;
  4 +
  5 +import java.util.ArrayList;
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * @author 作者 owen E-mail: 624191343@qq.com
  10 + * @version 创建时间:2017年11月12日 上午22:57:51 url白名单处理 application.yml中配置需要放权的url白名单
  11 + */
  12 +// @ConfigurationProperties(prefix = "permit")
  13 +@ConfigurationProperties(prefix = "security.oauth2")
  14 +public class PermitUrlProperties {
  15 +
  16 + /**
  17 + * 监控中心和swagger需要访问的url
  18 + */
  19 + private static final String[] ENDPOINTS = {
  20 + "/**/actuator/**" , "/**/actuator/**/**" , //断点监控
  21 + "/**/v2/api-docs/**", "/**/swagger-ui.html", "/**/swagger-resources/**", "/**/webjars/**", //swagger
  22 + "/**/turbine.stream","/**/turbine.stream**/**", "/**/hystrix", "/**/hystrix.stream", "/**/hystrix/**", "/**/hystrix/**/**", "/**/proxy.stream/**" , //熔断监控
  23 + "/**/druid/**", "/**/favicon.ico", "/**/prometheus"
  24 + };
  25 +
  26 + private String[] ignored;
  27 +
  28 + /**
  29 + * 需要放开权限的url
  30 + *
  31 + * @param urls
  32 + * 自定义的url
  33 + * @return 自定义的url和监控中心需要访问的url集合
  34 + */
  35 + public String[] getIgnored() {
  36 + if (ignored == null || ignored.length == 0) {
  37 + return ENDPOINTS;
  38 + }
  39 +
  40 + List<String> list = new ArrayList<>();
  41 + for (String url : ENDPOINTS) {
  42 + list.add(url);
  43 + }
  44 + for (String url : ignored) {
  45 + list.add(url);
  46 + }
  47 +
  48 + return list.toArray(new String[list.size()]);
  49 + }
  50 +
  51 + public void setIgnored(String[] ignored) {
  52 + this.ignored = ignored;
  53 + }
  54 +
  55 +}
... ...
cloud/common/src/main/java/com/sincere/common/util/ApiResult.java 0 → 100644
... ... @@ -0,0 +1,51 @@
  1 +package com.sincere.common.util;
  2 +
  3 +import com.sincere.common.enums.ResponseCodeEnum;
  4 +import lombok.Data;
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +/**
  9 + * @author: yukong
  10 + * @date: 2018/10/12 10:39
  11 + * @description: 统一响应信息主体
  12 + */
  13 +@Data
  14 +public class ApiResult<T> implements Serializable {
  15 +
  16 + private T data;
  17 +
  18 + private Integer code = ResponseCodeEnum.SUCCESS.getCode();
  19 +
  20 + private String message = ResponseCodeEnum.SUCCESS.getMessage();
  21 +
  22 + public ApiResult() {
  23 + }
  24 +
  25 + public ApiResult(T data) {
  26 + this.data = data;
  27 + }
  28 +
  29 + public ApiResult(T data, String message) {
  30 + this.data = data;
  31 + this.message = message;
  32 + }
  33 +
  34 + public ApiResult(T data, ResponseCodeEnum responseCode) {
  35 + this.data = data;
  36 + this.code = responseCode.getCode();
  37 + this.message = responseCode.getMessage();
  38 + }
  39 +
  40 + public ApiResult(Throwable throwable) {
  41 + this.message = throwable.getMessage();
  42 + this.code = ResponseCodeEnum.FAIL.getCode();
  43 + }
  44 +
  45 + public ApiResult(Throwable throwable, ResponseCodeEnum code) {
  46 + this.message = throwable.getMessage();
  47 + this.code = code.getCode();
  48 + }
  49 +
  50 +
  51 +}
... ...
cloud/common/src/main/java/com/sincere/common/util/SpringUtils.java 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +package com.sincere.common.util;
  2 +
  3 +import org.springframework.beans.BeansException;
  4 +import org.springframework.context.ApplicationContext;
  5 +import org.springframework.context.ApplicationContextAware;
  6 +import org.springframework.core.env.Environment;
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +/**
  10 + * spring获取bean工具类
  11 + *
  12 +* @author 作者 owen E-mail: 624191343@qq.com
  13 + * @version 创建时间:2018年3月20日 下午10:13:18 类说明
  14 + *
  15 + */
  16 +@Component
  17 +public class SpringUtils implements ApplicationContextAware {
  18 +
  19 + private static ApplicationContext applicationContext = null;
  20 +
  21 + @Override
  22 + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  23 + SpringUtils.applicationContext = applicationContext;
  24 + }
  25 +
  26 + public static <T> T getBean(Class<T> cla) {
  27 + return applicationContext.getBean(cla);
  28 + }
  29 +
  30 + public static <T> T getBean(String name, Class<T> cal) {
  31 + return applicationContext.getBean(name, cal);
  32 + }
  33 +
  34 + public static String getProperty(String key) {
  35 + return applicationContext.getBean(Environment.class).getProperty(key);
  36 + }
  37 +}
... ...
cloud/common/src/main/java/com/sincere/common/util/UrlUtil.java 0 → 100644
... ... @@ -0,0 +1,47 @@
  1 +package com.sincere.common.util;
  2 +
  3 +import javax.servlet.http.HttpServletRequest;
  4 +import java.io.PrintWriter;
  5 +import java.io.StringWriter;
  6 +
  7 +/**
  8 + * @author: yukong
  9 + * @date: 2018/11/14 19:50
  10 + */
  11 +public class UrlUtil {
  12 +
  13 + /**
  14 + * 获取目标主机的ip
  15 + * @param request
  16 + * @return
  17 + */
  18 + public static String getRemoteHost(HttpServletRequest request) {
  19 + String ip = request.getHeader("x-forwarded-for");
  20 + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  21 + ip = request.getHeader("Proxy-Client-IP");
  22 + }
  23 + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  24 + ip = request.getHeader("WL-Proxy-Client-IP");
  25 + }
  26 + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  27 + ip = request.getRemoteAddr();
  28 + }
  29 + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
  30 + }
  31 +
  32 +
  33 + /**
  34 + * 获取完整的异常栈信息
  35 + * @param t
  36 + * @return
  37 + */
  38 + public static String getTrace(Throwable t) {
  39 + StringWriter stringWriter= new StringWriter();
  40 + PrintWriter writer= new PrintWriter(stringWriter);
  41 + t.printStackTrace(writer);
  42 + StringBuffer buffer= stringWriter.getBuffer();
  43 + return buffer.toString();
  44 + }
  45 +
  46 +
  47 +}
... ...
cloud/common/src/main/java/com/sincere/common/util/UserUtil.java 0 → 100644
... ... @@ -0,0 +1,95 @@
  1 +package com.sincere.common.util;
  2 +
  3 +import com.sincere.common.constants.SecurityConstants;
  4 +import com.sincere.common.constants.UserConstants;
  5 +import io.jsonwebtoken.Claims;
  6 +import io.jsonwebtoken.Jwts;
  7 +import lombok.extern.slf4j.Slf4j;
  8 +
  9 +import javax.servlet.http.HttpServletRequest;
  10 +import java.util.Base64;
  11 +import java.util.List;
  12 +
  13 +/**
  14 + * @author: yukong
  15 + * @date: 2018/10/17 08:56
  16 + * @description:
  17 + */
  18 +@Slf4j
  19 +public class UserUtil {
  20 +
  21 + /**
  22 + * 获取请求中的token
  23 + * @param request
  24 + * @return token
  25 + */
  26 + public static String getToken(HttpServletRequest request){
  27 + String authorization = request.getHeader(SecurityConstants.TOKEN_HEADER);
  28 + if(authorization == null){
  29 + return null;
  30 + }
  31 + String token = authorization.split(" ")[1];
  32 + log.info("获取token成功,值为{}", token);
  33 + return token;
  34 + }
  35 +
  36 + /**
  37 + * 获取jwt中的claims信息
  38 + * @param token
  39 + * @return claim
  40 + */
  41 + public static Claims getClaims(String token) {
  42 + String key = Base64.getEncoder().encodeToString(SecurityConstants.SIGN_KEY.getBytes());
  43 + Claims claims = Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody();
  44 + return claims;
  45 + }
  46 +
  47 + /**
  48 + * 获取请求中的userId
  49 + * @param request
  50 + * @return userId
  51 + */
  52 + public static Integer getUserId(HttpServletRequest request){
  53 + String token = getToken(request);
  54 + if(token == null){
  55 + return null;
  56 + }
  57 + Claims claims = getClaims(token);
  58 + Integer userId = (Integer) claims.get(UserConstants.USER_ID);
  59 + log.info("获取userId成功,值为", userId);
  60 + return userId;
  61 + }
  62 +
  63 + /**
  64 + * 获取请求中的userId
  65 + * @param request
  66 + * @return userId
  67 + */
  68 + public static String getUserName(HttpServletRequest request){
  69 + String token = getToken(request);
  70 + if(token == null){
  71 + return null;
  72 + }
  73 + Claims claims = getClaims(token);
  74 + String username = (String) claims.get(UserConstants.USER_NAME);
  75 + log.info("获取username成功,值为", username);
  76 + return username;
  77 + }
  78 +
  79 + /**
  80 + * 获取请求中的roles集合
  81 + * @param request
  82 + * @return roles
  83 + */
  84 + public static List<String> getRoles(HttpServletRequest request) {
  85 + String token = getToken(request);
  86 + if(token == null){
  87 + return null;
  88 + }
  89 + Claims claims = getClaims(token);
  90 + List<String> roles = (List<String>) claims.get(UserConstants.AUTHORITIES);
  91 + return roles;
  92 + }
  93 +
  94 +
  95 +}
... ...
cloud/common/src/main/java/com/sincere/common/vo/SysResourceVO.java 0 → 100644
... ... @@ -0,0 +1,101 @@
  1 +package com.sincere.common.vo;
  2 +
  3 +
  4 +import lombok.Data;
  5 +import lombok.experimental.Accessors;
  6 +
  7 +import java.time.LocalDateTime;
  8 +
  9 +/**
  10 + * <p>
  11 + * 资源表(菜单与按钮)
  12 + * </p>
  13 + *
  14 + * @author yukong
  15 + * @since 2018-10-16
  16 + */
  17 +@Data
  18 +@Accessors(chain = true)
  19 +public class SysResourceVO {
  20 +
  21 + private static final long serialVersionUID = 1L;
  22 +
  23 + /**
  24 + * 主键
  25 + */
  26 + private Integer id;
  27 +
  28 + /**
  29 + * 资源名称
  30 + */
  31 + private String name;
  32 +
  33 + /**
  34 + * 资源类型 0-菜单 1-按钮
  35 + */
  36 + private String type;
  37 +
  38 + /**
  39 + * 前端url
  40 + */
  41 + private String path;
  42 +
  43 + /**
  44 + * 按钮权限资源标识
  45 + */
  46 + private String permission;
  47 +
  48 + /**
  49 + * 颜色
  50 + */
  51 + private String color;
  52 +
  53 + /**
  54 + * 父资源id
  55 + */
  56 + private Integer parentId;
  57 +
  58 + /**
  59 + * 图标
  60 + */
  61 + private String icon;
  62 +
  63 + /**
  64 + * 组件路径
  65 + */
  66 + private String component;
  67 +
  68 + /**
  69 + * 排序权重
  70 + */
  71 + private Integer sort;
  72 +
  73 + /**
  74 + * 创建时间
  75 + */
  76 + private LocalDateTime createTime;
  77 +
  78 + /**
  79 + * 更新时间
  80 + */
  81 + private LocalDateTime modifyTime;
  82 +
  83 + /**
  84 + * 是否删除 1-删除,0-未删除
  85 + */
  86 + private String delFlag;
  87 +
  88 +
  89 + /**
  90 + * 后台请求url
  91 + */
  92 + private String url;
  93 +
  94 +
  95 + /**
  96 + * 请求方式
  97 + */
  98 + private String method;
  99 +
  100 +
  101 +}
... ...
cloud/common/src/main/java/com/sincere/common/vo/SysRoleVo.java 0 → 100644
... ... @@ -0,0 +1,54 @@
  1 +package com.sincere.common.vo;
  2 +
  3 +import lombok.Data;
  4 +import lombok.experimental.Accessors;
  5 +
  6 +import java.io.Serializable;
  7 +import java.time.LocalDateTime;
  8 +
  9 +/**
  10 + * <p>
  11 + * 角色表
  12 + * </p>
  13 + *
  14 + * @author yukong
  15 + * @since 2018-10-16
  16 + */
  17 +@Data
  18 +@Accessors(chain = true)
  19 +public class SysRoleVo implements Serializable {
  20 +
  21 + private static final long serialVersionUID = 1L;
  22 +
  23 + /**
  24 + * 主键
  25 + */
  26 + private Integer roleId;
  27 +
  28 + /**
  29 + * 角色code用于springsecurity角色标识码
  30 + */
  31 + private String roleCode;
  32 +
  33 + /**
  34 + * 角色名称
  35 + */
  36 + private String roleName;
  37 +
  38 + /**
  39 + * 创建时间
  40 + */
  41 + private LocalDateTime createTime;
  42 +
  43 + /**
  44 + * 更新时间
  45 + */
  46 + private LocalDateTime modifyTime;
  47 +
  48 + /**
  49 + * 是否删除 1-删除,0-未删除
  50 + */
  51 + private String delFlag;
  52 +
  53 +
  54 +}
... ...
cloud/common/src/main/java/com/sincere/common/vo/SysUserVo.java 0 → 100644
... ... @@ -0,0 +1,93 @@
  1 +package com.sincere.common.vo;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import java.time.LocalDateTime;
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * @author: yukong
  10 + * @date: 2018/10/16 17:09
  11 + * @description:
  12 + */
  13 +@Data
  14 +public class SysUserVo {
  15 +
  16 + /**
  17 + * 主键ID
  18 + */
  19 + private Integer userId;
  20 +
  21 + /**
  22 + * 用户名
  23 + */
  24 + private String username;
  25 +
  26 + /**
  27 + * 密码
  28 + */
  29 + private String password;
  30 +
  31 + /**
  32 + * 邮箱
  33 + */
  34 + private String email;
  35 +
  36 + /**
  37 + * 手机号码
  38 + */
  39 + private String mobile;
  40 +
  41 + /**
  42 + * qq号码
  43 + */
  44 + private String qq;
  45 +
  46 + /**
  47 + * 微信号码
  48 + */
  49 + private String wechat;
  50 +
  51 + /**
  52 + * 微博url
  53 + */
  54 + private String weibo;
  55 +
  56 + /**
  57 + * 头像url
  58 + */
  59 + private String avatar;
  60 +
  61 + /**
  62 + * qq openid
  63 + */
  64 + private String qqOpenid;
  65 +
  66 + /**
  67 + * 微信openid
  68 + */
  69 + private String wechatOpenid;
  70 +
  71 + /**
  72 + * 微博openid
  73 + */
  74 + private String weiboOpenid;
  75 +
  76 + /**
  77 + * 创建时间
  78 + */
  79 + private LocalDateTime createTime;
  80 +
  81 + /**
  82 + * 更新时间
  83 + */
  84 + private LocalDateTime modifyTime;
  85 +
  86 + /**
  87 + * 是否删除 0-未删除 1-删除
  88 + */
  89 + private String delFlag;
  90 +
  91 + private List<SysRoleVo> sysRoleVoList;
  92 +
  93 +}
... ...
cloud/common/src/main/resources/application.properties 0 → 100644
No preview for this file type
cloud/common/src/test/java/com/sincere/common/CommonApplicationTests.java 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +package com.sincere.common;
  2 +
  3 +import org.junit.Test;
  4 +import org.junit.runner.RunWith;
  5 +import org.springframework.boot.test.context.SpringBootTest;
  6 +import org.springframework.test.context.junit4.SpringRunner;
  7 +
  8 +@RunWith(SpringRunner.class)
  9 +@SpringBootTest
  10 +public class CommonApplicationTests {
  11 +
  12 + @Test
  13 + public void contextLoads() {
  14 + }
  15 +
  16 +}
... ...
cloud/dahua/pom.xml
... ... @@ -16,6 +16,7 @@
16 16  
17 17 <properties>
18 18 <java.version>1.8</java.version>
  19 + <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
19 20 </properties>
20 21  
21 22 <dependencies>
... ... @@ -86,8 +87,26 @@
86 87 <version>2.0.1</version>
87 88 </dependency>
88 89  
  90 + <dependency>
  91 + <groupId>org.springframework.cloud</groupId>
  92 + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  93 + <version>2.1.2.RELEASE</version>
  94 + </dependency>
  95 +
89 96 </dependencies>
90 97  
  98 + <dependencyManagement>
  99 + <dependencies>
  100 + <dependency>
  101 + <groupId>org.springframework.cloud</groupId>
  102 + <artifactId>spring-cloud-dependencies</artifactId>
  103 + <version>${spring-cloud.version}</version>
  104 + <type>pom</type>
  105 + <scope>import</scope>
  106 + </dependency>
  107 + </dependencies>
  108 + </dependencyManagement>
  109 +
91 110 <build>
92 111 <plugins>
93 112 <plugin>
... ...
cloud/dahua/sdklog/2019-08-27_14-54-54.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-08-27 14:54:54.860
  2 +[2019-08-27 14:54:54.860][P:26784/T:16596][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-08-27 14:54:54.876][P:26784/T:16596][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 0000000029940000
  4 +
  5 +[2019-08-27 14:54:54.877][P:26784/T:16596][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-08-27 14:54:54.881][P:26784/T:16596][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=00000000209E0050, dwUser=0000000000000000].
  7 +[2019-08-27 14:54:54.881][P:26784/T:16596][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-08-27 14:54:54.881][P:26784/T:16596][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-08-27 14:54:54.881][P:26784/T:16596][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-08-27 14:54:54.882][P:26784/T:16596][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-08-27 14:54:54.882][P:26784/T:16596][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-08-27 14:54:54.888][P:26784/T:16596][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=172.16.3.223, port=9500, nTimeout=1000, cbListen=00000000209E0090, dwUserData=0000000000000000.]
  13 +[2019-08-27 14:54:54.889][P:26784/T:16596][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=566607296.]
... ...
cloud/dahua/sdklog/2019-08-27_16-18-51.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-08-27 16:18:51.843
  2 +[2019-08-27 16:18:51.843][P:28984/T:22568][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-08-27 16:18:51.861][P:28984/T:22568][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 000000002A010000
  4 +
  5 +[2019-08-27 16:18:51.861][P:28984/T:22568][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-08-27 16:18:51.870][P:28984/T:22568][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=00000000211F0050, dwUser=0000000000000000].
  7 +[2019-08-27 16:18:51.870][P:28984/T:22568][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-08-27 16:18:51.870][P:28984/T:22568][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-08-27 16:18:51.870][P:28984/T:22568][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-08-27 16:18:51.871][P:28984/T:22568][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-08-27 16:18:51.871][P:28984/T:22568][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-08-27 16:18:51.878][P:28984/T:22568][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=172.16.3.223, port=9500, nTimeout=1000, cbListen=00000000211F0090, dwUserData=0000000000000000.]
  13 +[2019-08-27 16:18:51.881][P:28984/T:22568][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=603958464.]
... ...
cloud/dahua/sdklog/2019-08-30_14-54-30.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-08-30 14:54:30.751
  2 +[2019-08-30 14:54:30.752][P:27844/T:27052][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-08-30 14:54:30.763][P:27844/T:27052][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 0000000029990000
  4 +
  5 +[2019-08-30 14:54:30.763][P:27844/T:27052][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-08-30 14:54:30.766][P:27844/T:27052][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=000000001C950050, dwUser=0000000000000000].
  7 +[2019-08-30 14:54:30.766][P:27844/T:27052][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-08-30 14:54:30.766][P:27844/T:27052][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-08-30 14:54:30.766][P:27844/T:27052][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-08-30 14:54:30.767][P:27844/T:27052][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-08-30 14:54:30.767][P:27844/T:27052][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-08-30 14:54:30.770][P:27844/T:27052][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=000000001C950090, dwUserData=0000000000000000.]
  13 +[2019-08-30 14:54:30.771][P:27844/T:27052][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=579649168.]
... ...
cloud/dahua/sdklog/2019-09-02_12-03-44.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-02 12:03:44.161
  2 +[2019-09-02 12:03:44.161][P:9700/T:17336][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-02 12:03:44.176][P:9700/T:17336][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 000000002AFD0000
  4 +
  5 +[2019-09-02 12:03:44.176][P:9700/T:17336][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-02 12:03:44.183][P:9700/T:17336][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=000000001D1E0050, dwUser=0000000000000000].
  7 +[2019-09-02 12:03:44.183][P:9700/T:17336][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-02 12:03:44.183][P:9700/T:17336][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-02 12:03:44.184][P:9700/T:17336][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-02 12:03:44.185][P:9700/T:17336][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-02 12:03:44.185][P:9700/T:17336][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-02 12:03:44.191][P:9700/T:17336][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=000000001D1E0090, dwUserData=0000000000000000.]
  13 +[2019-09-02 12:03:44.193][P:9700/T:17336][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=579261664.]
... ...
cloud/dahua/sdklog/2019-09-04_11-40-15.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 11:40:15.980
  2 +[2019-09-04 11:40:15.980][P:2204/T:15664][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 11:40:15.996][P:2204/T:15664][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 00000000291F0000
  4 +
  5 +[2019-09-04 11:40:15.996][P:2204/T:15664][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 11:40:16.001][P:2204/T:15664][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=0000000020500050, dwUser=0000000000000000].
  7 +[2019-09-04 11:40:16.001][P:2204/T:15664][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 11:40:16.002][P:2204/T:15664][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 11:40:16.002][P:2204/T:15664][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 11:40:16.005][P:2204/T:15664][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 11:40:16.005][P:2204/T:15664][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 11:40:16.015][P:2204/T:15664][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=0000000020500090, dwUserData=0000000000000000.]
  13 +[2019-09-04 11:40:16.015][P:2204/T:15664][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=596761648.]
... ...
cloud/dahua/sdklog/2019-09-04_18-08-39.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 18:08:39.932
  2 +[2019-09-04 18:08:39.933][P:21976/T:24404][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 18:08:39.964][P:21976/T:24404][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 000000002A060000
  4 +
  5 +[2019-09-04 18:08:39.964][P:21976/T:24404][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 18:08:39.975][P:21976/T:24404][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=000000001EA10050, dwUser=0000000000000000].
  7 +[2019-09-04 18:08:39.975][P:21976/T:24404][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 18:08:39.975][P:21976/T:24404][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 18:08:39.975][P:21976/T:24404][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 18:08:39.977][P:21976/T:24404][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 18:08:39.977][P:21976/T:24404][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 18:08:39.987][P:21976/T:24404][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=000000001EA10090, dwUserData=0000000000000000.]
  13 +[2019-09-04 18:08:39.990][P:21976/T:24404][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=561565936.]
... ...
cloud/dahua/sdklog/2019-09-04_18-11-56.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 18:11:56.440
  2 +[2019-09-04 18:11:56.440][P:26284/T:19392][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 18:11:56.470][P:26284/T:19392][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 00000000290C0000
  4 +
  5 +[2019-09-04 18:11:56.470][P:26284/T:19392][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 18:11:56.481][P:26284/T:19392][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=000000001F6F0050, dwUser=0000000000000000].
  7 +[2019-09-04 18:11:56.481][P:26284/T:19392][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 18:11:56.481][P:26284/T:19392][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 18:11:56.481][P:26284/T:19392][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 18:11:56.483][P:26284/T:19392][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 18:11:56.483][P:26284/T:19392][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 18:11:56.492][P:26284/T:19392][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=000000001F6F0090, dwUserData=0000000000000000.]
  13 +[2019-09-04 18:11:56.495][P:26284/T:19392][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=597757456.]
... ...
cloud/dahua/sdklog/2019-09-04_18-18-10.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 18:18:10.332
  2 +[2019-09-04 18:18:10.332][P:2632/T:3176][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 18:18:10.360][P:2632/T:3176][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 000000002A6B0000
  4 +
  5 +[2019-09-04 18:18:10.360][P:2632/T:3176][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 18:18:10.366][P:2632/T:3176][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=0000000003A30050, dwUser=0000000000000000].
  7 +[2019-09-04 18:18:10.366][P:2632/T:3176][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 18:18:10.367][P:2632/T:3176][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 18:18:10.367][P:2632/T:3176][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 18:18:10.368][P:2632/T:3176][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 18:18:10.368][P:2632/T:3176][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 18:18:10.374][P:2632/T:3176][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=0000000003A30090, dwUserData=0000000000000000.]
  13 +[2019-09-04 18:18:10.375][P:2632/T:3176][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=583671408.]
... ...
cloud/dahua/sdklog/2019-09-04_18-20-33.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 18:20:33.214
  2 +[2019-09-04 18:20:33.214][P:13320/T:17384][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 18:20:33.244][P:13320/T:17384][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 0000000029790000
  4 +
  5 +[2019-09-04 18:20:33.244][P:13320/T:17384][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 18:20:33.256][P:13320/T:17384][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=000000001D620050, dwUser=0000000000000000].
  7 +[2019-09-04 18:20:33.256][P:13320/T:17384][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 18:20:33.256][P:13320/T:17384][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 18:20:33.256][P:13320/T:17384][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 18:20:33.258][P:13320/T:17384][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 18:20:33.258][P:13320/T:17384][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 18:20:33.267][P:13320/T:17384][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=000000001D620090, dwUserData=0000000000000000.]
  13 +[2019-09-04 18:20:33.270][P:13320/T:17384][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=587333472.]
... ...
cloud/dahua/sdklog/2019-09-04_18-25-36.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 18:25:36.907
  2 +[2019-09-04 18:25:36.907][P:10016/T:25556][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 18:25:36.930][P:10016/T:25556][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 0000000029A20000
  4 +
  5 +[2019-09-04 18:25:36.930][P:10016/T:25556][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 18:25:36.940][P:10016/T:25556][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=0000000020D50050, dwUser=0000000000000000].
  7 +[2019-09-04 18:25:36.940][P:10016/T:25556][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 18:25:36.940][P:10016/T:25556][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 18:25:36.940][P:10016/T:25556][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 18:25:36.942][P:10016/T:25556][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 18:25:36.942][P:10016/T:25556][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 18:25:36.949][P:10016/T:25556][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=0000000020D50090, dwUserData=0000000000000000.]
  13 +[2019-09-04 18:25:36.952][P:10016/T:25556][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=599394448.]
... ...
cloud/dahua/sdklog/2019-09-04_18-26-48.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 18:26:48.916
  2 +[2019-09-04 18:26:48.916][P:1172/T:22096][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 18:26:48.961][P:1172/T:22096][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 00000000296F0000
  4 +
  5 +[2019-09-04 18:26:48.961][P:1172/T:22096][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 18:26:48.967][P:1172/T:22096][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=00000000036B0050, dwUser=0000000000000000].
  7 +[2019-09-04 18:26:48.967][P:1172/T:22096][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 18:26:48.968][P:1172/T:22096][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 18:26:48.968][P:1172/T:22096][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 18:26:48.969][P:1172/T:22096][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 18:26:48.969][P:1172/T:22096][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 18:26:48.975][P:1172/T:22096][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=00000000036B0090, dwUserData=0000000000000000.]
  13 +[2019-09-04 18:26:48.976][P:1172/T:22096][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=630918000.]
... ...
cloud/dahua/sdklog/2019-09-04_18-28-00.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 18:28:00.450
  2 +[2019-09-04 18:28:00.450][P:7304/T:21728][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 18:28:00.480][P:7304/T:21728][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 000000002A720000
  4 +
  5 +[2019-09-04 18:28:00.480][P:7304/T:21728][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 18:28:00.486][P:7304/T:21728][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=0000000003370050, dwUser=0000000000000000].
  7 +[2019-09-04 18:28:00.487][P:7304/T:21728][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 18:28:00.487][P:7304/T:21728][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 18:28:00.487][P:7304/T:21728][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 18:28:00.488][P:7304/T:21728][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 18:28:00.488][P:7304/T:21728][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 18:28:00.493][P:7304/T:21728][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=0000000003370090, dwUserData=0000000000000000.]
  13 +[2019-09-04 18:28:00.494][P:7304/T:21728][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=601096624.]
... ...
cloud/dahua/sdklog/2019-09-04_18-29-53.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 18:29:53.740
  2 +[2019-09-04 18:29:53.740][P:17096/T:25860][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 18:29:53.784][P:17096/T:25860][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 0000000028820000
  4 +
  5 +[2019-09-04 18:29:53.784][P:17096/T:25860][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 18:29:53.791][P:17096/T:25860][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=0000000020AB0050, dwUser=0000000000000000].
  7 +[2019-09-04 18:29:53.791][P:17096/T:25860][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 18:29:53.791][P:17096/T:25860][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 18:29:53.791][P:17096/T:25860][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 18:29:53.793][P:17096/T:25860][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 18:29:53.793][P:17096/T:25860][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 18:29:53.804][P:17096/T:25860][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=0000000020AB0090, dwUserData=0000000000000000.]
  13 +[2019-09-04 18:29:53.804][P:17096/T:25860][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=575080528.]
... ...
cloud/dahua/src/main/java/com/example/dahua/DahuaApplication.java
... ... @@ -9,6 +9,7 @@ import org.mybatis.spring.annotation.MapperScan;
9 9 import org.springframework.beans.factory.annotation.Autowired;
10 10 import org.springframework.boot.SpringApplication;
11 11 import org.springframework.boot.autoconfigure.SpringBootApplication;
  12 +import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
12 13 import org.springframework.context.annotation.Bean;
13 14 import org.springframework.context.annotation.Configuration;
14 15 import org.springframework.scheduling.annotation.EnableAsync;
... ... @@ -29,6 +30,7 @@ import java.util.concurrent.TimeUnit;
29 30  
30 31 @SpringBootApplication
31 32 @MapperScan("com.example.dahua.dao")
  33 +@EnableDiscoveryClient
32 34 public class DahuaApplication {
33 35  
34 36 public static void main(String[] args) {
... ...
cloud/dahua/src/main/java/com/example/dahua/MyTask.java
... ... @@ -149,7 +149,7 @@ public class MyTask implements ApplicationRunner {
149 149 devMap.put(deviceId, pIp + "," + wPort);
150 150 lLongMap.put(deviceId,loginHandleLong);
151 151 String inTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
152   - int index = attendanceService.insert(deviceId, "22", pIp, wPort + "", inTime, "0", "1");
  152 + int index = attendanceService.insert(deviceId, "22", pIp, wPort + "", inTime, "-1", "1");
153 153 DeviceInfoBean deviceInfoBean = new DeviceInfoBean();
154 154 deviceInfoBean.setDevcieId(deviceId);
155 155 deviceInfoBean.setDeviceIp(pIp);
... ...
cloud/dahua/src/main/java/com/example/dahua/async/SendUserInfoTask.java
... ... @@ -2,6 +2,7 @@ package com.example.dahua.async;
2 2  
3 3 import com.example.dahua.MyTask;
4 4 import com.example.dahua.bean.AttendanceBean;
  5 +import com.example.dahua.bean.TeacherBean;
5 6 import com.example.dahua.bean.UserInfoBean;
6 7 import com.example.dahua.common.Res;
7 8 import com.example.dahua.dao.UserDao;
... ... @@ -58,6 +59,7 @@ public class SendUserInfoTask {
58 59 List<AttendanceBean> attendanceBeans = userDao.getAttendanceBeans(schoolId, clint_type);
59 60 String filePathStudent = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Student";
60 61 String filePathParent = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Parent";
  62 + String filePathTeacher = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Teacher";
61 63 // String filePathStudent = "F:\\wwwroot\\SmartCampus\\face17e50\\School" + schoolId + "\\Student";
62 64 // String filePathParent = "F:\\wwwroot\\SmartCampus\\face17e50\\School" + schoolId + "\\Parent";
63 65 // String filePathParent = "C:\\Users\\taohandong\\Desktop\\小视频";
... ... @@ -71,6 +73,15 @@ public class SendUserInfoTask {
71 73  
72 74 filePaths = new File(filePathParent);
73 75  
  76 + } else if (type == 2) {//教师卡下发
  77 + filePaths = new File(filePathTeacher);
  78 + }else {
  79 + filePaths = new File("");
  80 + }
  81 +
  82 + if (!filePaths.exists()){
  83 + System.out.println("图片目录不存在");
  84 + return;
74 85 }
75 86  
76 87 File[] filesStudent = filePaths.listFiles();
... ... @@ -85,7 +96,7 @@ public class SendUserInfoTask {
85 96 fileList.add(filesStudent[i]);
86 97 }
87 98  
88   - System.out.println("files:" + fileList.size());
  99 +// System.out.println("files:" + fileList.size());
89 100  
90 101 while (fileList.size() > 0) {
91 102 File studentFile = fileList.get(0);
... ... @@ -105,8 +116,22 @@ public class SendUserInfoTask {
105 116  
106 117 } else {
107 118  
108   - userInfoBean = userDao.getUserInfo(schoolId, studentCode);
  119 + if (type == 0 || type == 1) {//学生信息或家长信息
  120 + userInfoBean = userDao.getUserInfo(schoolId, studentCode);
  121 + } else if (type == 2) {//教师信息
  122 + TeacherBean teacher = userDao.getTeacher(schoolId, studentCode);
  123 + if (null != teacher) {
  124 + userInfoBean = new UserInfoBean();
  125 + userInfoBean.setStudent_num(teacher.getTeacher_num());
  126 + userInfoBean.setName(teacher.getName());
  127 + userInfoBean.setUser_id(teacher.getUser_id());
  128 + userInfoBean.setStudentcode(teacher.getNum());
  129 + }
  130 + }
  131 +
  132 + //判断用户是否存在
109 133 if (!userIsExit(fileList, studentCode, userInfoBean)) continue;
  134 +
110 135 }
111 136  
112 137 boolean sendResult = sendUserInfoToDev(studentFile.getAbsolutePath(), attendanceBeans, userInfoBean);
... ... @@ -191,57 +216,57 @@ public class SendUserInfoTask {
191 216 for (AttendanceBean attendanceBean :
192 217 attendanceBeans) {
193 218  
194   - pushCardAndFace(attendanceBean, userInfoBean, memory);
  219 + pushCardAndFace(attendanceBean, userInfoBean.getUser_id(), userInfoBean.getStudent_num(), userInfoBean.getName(), memory);
195 220 }
196 221 }
197 222  
198   - private synchronized void pushCardAndFace(AttendanceBean attendanceBean, UserInfoBean userInfoBean, Memory memory) {
  223 + private synchronized void pushCardAndFace(AttendanceBean attendanceBean, String user_id, String student_num, String name, Memory memory) {
199 224 String startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
200 225 Calendar calendar = Calendar.getInstance();
201 226 calendar.add(Calendar.YEAR, 4);
202 227 String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
203 228 int bCardFlags = -1;//记录集编号
204   - bCardFlags = userDao.getRecordNo(userInfoBean.getUser_id()) == null ? -1 : Integer.parseInt(userDao.getRecordNo(userInfoBean.getUser_id()));
  229 + bCardFlags = userDao.getRecordNo(user_id) == null ? -1 : Integer.parseInt(userDao.getRecordNo(user_id));
205 230  
206 231 NetSDKLib.LLong loginHandleLong = MyTask.lLongMap.get(attendanceBean.getClint_id());
207 232  
208 233 boolean bFaceFalgs = false;
209 234  
210   - String cardNum = cardNo(userInfoBean.getStudent_num());
  235 + String cardNum = cardNo(student_num);
211 236 boolean ifExits = GateModule.findCard(cardNum, loginHandleLong);
212 237 System.out.println("卡号是否存在:" + ifExits);
213 238 if (bCardFlags != -1) {//修改卡信息
214 239 GateModule.deleteCard(bCardFlags, loginHandleLong);
215   - userDao.deleteRecordNo(userInfoBean.getUser_id(), bCardFlags);
  240 + userDao.deleteRecordNo(user_id, bCardFlags);
216 241  
217 242 // boolean update = GateModule.modifyCard(bCardFlags, cardNum, userInfoBean.getUser_id(), userInfoBean.getName(), "123456"
218 243 // , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0
219 244 // , 1, startTime, endTime, loginHandleLong);
220 245 // System.out.println("update:" + update);
221 246  
222   - bCardFlags = GateModule.insertCard(cardNum, userInfoBean.getUser_id(), userInfoBean.getName(), "123456"
  247 + bCardFlags = GateModule.insertCard(cardNum, user_id, name, "123456"
223 248 , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0
224 249 , 1, startTime, endTime, loginHandleLong);
225 250  
226 251 if (bCardFlags != -1) {
227   - int index = userDao.saveRecordNo(userInfoBean.getUser_id(), bCardFlags, userInfoBean.getName());//存储记录集编号
  252 + int index = userDao.saveRecordNo(user_id, bCardFlags, name);//存储记录集编号
228 253 }
229   - bFaceFalgs = GateModule.modifyFaceInfo(userInfoBean.getUser_id(), memory, loginHandleLong);
  254 + bFaceFalgs = GateModule.modifyFaceInfo(user_id, memory, loginHandleLong);
230 255 //卡号添加成功,但是人脸不成功的话,就需要新增人脸
231 256 if (!bFaceFalgs)
232   - bFaceFalgs = GateModule.addFaceInfo(userInfoBean.getUser_id(), memory, loginHandleLong);
  257 + bFaceFalgs = GateModule.addFaceInfo(user_id, memory, loginHandleLong);
233 258  
234 259 } else {//新增卡信息
235   - bCardFlags = GateModule.insertCard(cardNum, userInfoBean.getUser_id(), userInfoBean.getName(), "123456"
  260 + bCardFlags = GateModule.insertCard(cardNum, user_id, name, "123456"
236 261 , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0
237 262 , 1, startTime, endTime, loginHandleLong);
238 263  
239 264 if (bCardFlags != -1) {
240   - int index = userDao.saveRecordNo(userInfoBean.getUser_id(), bCardFlags, userInfoBean.getName());//存储记录集编号
  265 + int index = userDao.saveRecordNo(user_id, bCardFlags, name);//存储记录集编号
241 266 }
242 267  
243 268 //添加人脸
244   - bFaceFalgs = GateModule.addFaceInfo(userInfoBean.getUser_id(), memory, loginHandleLong);
  269 + bFaceFalgs = GateModule.addFaceInfo(user_id, memory, loginHandleLong);
245 270  
246 271 }
247 272  
... ...
cloud/dahua/src/main/java/com/example/dahua/bean/TeacherBean.java 0 → 100644
... ... @@ -0,0 +1,67 @@
  1 +package com.example.dahua.bean;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +public class TeacherBean implements Serializable {
  6 +
  7 + private String school_id;
  8 +
  9 + private String user_id;
  10 +
  11 + private String name;
  12 +
  13 + private String num;//教职工编号
  14 +
  15 + private String teacher_num;
  16 +
  17 + public String getTeacher_num() {
  18 + return teacher_num;
  19 + }
  20 +
  21 + public void setTeacher_num(String teacher_num) {
  22 + this.teacher_num = teacher_num;
  23 + }
  24 +
  25 + public String getSchool_id() {
  26 + return school_id;
  27 + }
  28 +
  29 + public void setSchool_id(String school_id) {
  30 + this.school_id = school_id;
  31 + }
  32 +
  33 + public String getUser_id() {
  34 + return user_id;
  35 + }
  36 +
  37 + public void setUser_id(String user_id) {
  38 + this.user_id = user_id;
  39 + }
  40 +
  41 + public String getName() {
  42 + return name;
  43 + }
  44 +
  45 + public void setName(String name) {
  46 + this.name = name;
  47 + }
  48 +
  49 + public String getNum() {
  50 + return num;
  51 + }
  52 +
  53 + public void setNum(String num) {
  54 + this.num = num;
  55 + }
  56 +
  57 + @Override
  58 + public String toString() {
  59 + return "TeacherBean{" +
  60 + "school_id='" + school_id + '\'' +
  61 + ", user_id='" + user_id + '\'' +
  62 + ", name='" + name + '\'' +
  63 + ", num='" + num + '\'' +
  64 + ", teacher_num='" + teacher_num + '\'' +
  65 + '}';
  66 + }
  67 +}
... ...
cloud/dahua/src/main/java/com/example/dahua/control/DeviceControl.java
... ... @@ -2,6 +2,7 @@ package com.example.dahua.control;
2 2  
3 3 import com.example.dahua.service.DeviceService;
4 4 import io.swagger.annotations.Api;
  5 +import io.swagger.annotations.ApiImplicitParam;
5 6 import org.springframework.beans.factory.annotation.Autowired;
6 7 import org.springframework.web.bind.annotation.RequestMapping;
7 8 import org.springframework.web.bind.annotation.RequestMethod;
... ... @@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.RestController;
10 11  
11 12 @RestController("/device/")
12 13 @Api(tags = "设备控制")
  14 +@RequestMapping("/device/*")
13 15 public class DeviceControl {
14 16  
15 17 @Autowired
... ...
cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java
... ... @@ -27,6 +27,7 @@ import java.util.UUID;
27 27 */
28 28 @RestController("/user/")
29 29 @Api(tags = "下发用户信息")
  30 +@RequestMapping("/user/")
30 31 public class UserControl {
31 32  
32 33 @Autowired
... ... @@ -39,12 +40,10 @@ public class UserControl {
39 40 }
40 41  
41 42  
42   -
43 43 @RequestMapping(value = "imgsSend", method = RequestMethod.GET)
44 44 @ApiOperation(value = "照片下放")
45   - public boolean imgsSend(@RequestParam("schoolId") String schoolId,@RequestParam("type") int type) {
46   - System.out.printf("schoolid:" + schoolId);
47   - userService.sendUserInfos(schoolId,"22",type);
  45 + public boolean imgsSend(@RequestParam("schoolId") String schoolId, @RequestParam("type") int type) {
  46 + userService.sendUserInfos(schoolId, "22", type);
48 47 return true;
49 48 }
50 49  
... ...
cloud/dahua/src/main/java/com/example/dahua/dao/UserDao.java
1 1 package com.example.dahua.dao;
2 2  
3 3 import com.example.dahua.bean.AttendanceBean;
  4 +import com.example.dahua.bean.TeacherBean;
4 5 import com.example.dahua.bean.UserInfoBean;
5 6 import org.apache.ibatis.annotations.*;
6 7 import org.springframework.stereotype.Repository;
... ... @@ -21,6 +22,9 @@ public interface UserDao {
21 22 @Select(" select * from SZ_V_School_Student where school_id = #{school_id} and studentcode = #{studentcode}")
22 23 UserInfoBean getUserInfo(@Param("school_id")String school_id,@Param("studentcode")String studentcode);
23 24  
  25 + @Select(" select * from SZ_V_School_Teacher where school_id = #{school_id} and num = #{num}")
  26 + TeacherBean getTeacher(@Param("school_id")String school_id, @Param("num")String num);
  27 +
24 28 /**
25 29 * 记录用户和设备集编号对应关系
26 30 * @param user_id
... ...
cloud/dahua/src/main/java/com/example/dahua/lib/NetSDKLib.java
... ... @@ -31,8 +31,7 @@ public interface NetSDKLib extends Library {
31 31 public static int size;
32 32 static {
33 33 size = Native.LONG_SIZE;
34   - System.out.println("登录句柄:"+Utils.getOsPrefix().toLowerCase());
35   - if (Utils.getOsPrefix().toLowerCase().equals("linux-amd64")
  34 + if (Utils.getOsPrefix().toLowerCase().equals("linux-amd64")
36 35 || Utils.getOsPrefix().toLowerCase().equals("win32-amd64")) {
37 36 size = 8;
38 37 } else if (Utils.getOsPrefix().toLowerCase().equals("linux-i386")
... ...
cloud/dahua/src/main/resources/application.yaml
... ... @@ -7,7 +7,7 @@ spring:
7 7 url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus
8 8 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
9 9 application:
10   - name: dahua
  10 + name: dahuaserver
11 11  
12 12 #spring:
13 13 # datasource:
... ... @@ -19,6 +19,17 @@ spring:
19 19 # name: dahua
20 20  
21 21  
  22 +eureka:
  23 + instance:
  24 + hostname: localhost
  25 + lease-expiration-duration-in-seconds: 60
  26 + lease-renewal-interval-in-seconds: 10
  27 + prefer-ip-address: true
  28 + client:
  29 + service-url:
  30 +# defaultZone: http://localhost:8761/eureka/
  31 + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/
  32 +
22 33 mybatis:
23 34 type-aliases-package: com.example.dahua.dao
24 35 mapper-locations: classpath:mapper/*.xml
... ...
cloud/dahua/src/test/java/com/example/dahua/DahuaApplicationTests.java
... ... @@ -2,6 +2,8 @@ package com.example.dahua;
2 2  
3 3 import com.example.dahua.async.SendUserInfoTask;
4 4 import com.example.dahua.service.UserService;
  5 +import org.apache.http.impl.client.CloseableHttpClient;
  6 +import org.json.JSONObject;
5 7 import org.junit.Test;
6 8 import org.junit.runner.RunWith;
7 9 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -19,6 +21,8 @@ import org.springframework.web.client.RestTemplate;
19 21 import org.springframework.web.multipart.MultipartFile;
20 22  
21 23 import java.io.File;
  24 +import java.util.HashMap;
  25 +import java.util.Map;
22 26  
23 27 @RunWith(SpringRunner.class)
24 28 @SpringBootTest
... ... @@ -43,30 +47,27 @@ public class DahuaApplicationTests {
43 47  
44 48 @Test
45 49 public void uploadImg() {
46   -
47   -// F42B513C
48   -
49   - long dec_num = Long.parseLong("F42B513C",16);
50   -
51   -/*
52 50 String url = "http://60.190.202.57:8023/";
53   -
54 51 RestTemplate restTemplate = new RestTemplate();
55 52 HttpHeaders headers = new HttpHeaders();
56 53 MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
57 54 headers.setContentType(type);
58   - headers.add("Accept", MediaType.APPLICATION_JSON.toString());
59   -
60   - MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
61   - map.add("id", "0");
62   - map.add("deviceId", "111");
63   - map.add("dtime", "2019-08-16 18:28");
64   -
65   - HttpEntity<MultiValueMap<String, String>> formEntity = new HttpEntity<MultiValueMap<String, String>>(map, headers);
66   -
67   - String result = restTemplate.postForObject(url, formEntity, String.class);
68   -
69   - System.out.println(result);*/
  55 +// headers.add("Accept", MediaType.APPLICATION_JSON.toString());
  56 +
  57 + JSONObject jsonObject = new JSONObject();
  58 + try {
  59 + jsonObject.put("id", "0");
  60 + jsonObject.put("deviceId", "111");
  61 + jsonObject.put("dtime", "2019-08-16 18:28");
  62 + }catch (Exception e){
  63 + e.printStackTrace();
  64 + }
  65 + System.out.println("mao:"+jsonObject.toString());
  66 + HttpEntity< JSONObject> formEntity = new HttpEntity< JSONObject>(jsonObject, headers);
  67 +
  68 + String result = restTemplate.postForEntity(url, formEntity, String.class).getBody();
  69 +
  70 + System.out.println("sssssssssssssssssssssssssssssssssssssssss:"+result);
70 71 }
71 72  
72 73  
... ...
cloud/geteway/pom.xml
... ... @@ -24,18 +24,31 @@
24 24 <groupId>org.springframework.cloud</groupId>
25 25 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
26 26 </dependency>
  27 +
27 28 <dependency>
28 29 <groupId>org.springframework.cloud</groupId>
29 30 <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
30 31 </dependency>
31 32  
  33 + <!--<dependency>-->
  34 + <!--<groupId>org.springframework.cloud</groupId>-->
  35 + <!--<artifactId>spring-cloud-starter-gateway</artifactId>-->
  36 + <!--</dependency>-->
  37 +
32 38 <dependency>
33   - <groupId>org.springframework.boot</groupId>
34   - <artifactId>spring-boot-configuration-processor</artifactId>
35   - <!--<version>2.1.3.RELEASE</version>-->
  39 + <groupId>io.springfox</groupId>
  40 + <artifactId>springfox-swagger2</artifactId>
  41 + <version>2.9.2</version>
36 42 </dependency>
37 43  
38 44 <dependency>
  45 + <groupId>io.springfox</groupId>
  46 + <artifactId>springfox-swagger-ui</artifactId>
  47 + <version>2.9.2</version>
  48 + </dependency>
  49 +
  50 +
  51 + <dependency>
39 52 <groupId>org.springframework.boot</groupId>
40 53 <artifactId>spring-boot-starter-test</artifactId>
41 54 <scope>test</scope>
... ...
cloud/geteway/src/main/java/com/example/geteway/DocumentationConfig.java 0 → 100644
... ... @@ -0,0 +1,53 @@
  1 +package com.example.geteway;
  2 +
  3 +import org.springframework.cloud.netflix.zuul.filters.Route;
  4 +import org.springframework.cloud.netflix.zuul.filters.RouteLocator;
  5 +import org.springframework.context.annotation.Primary;
  6 +import org.springframework.stereotype.Component;
  7 +import springfox.documentation.swagger.web.SwaggerResource;
  8 +import springfox.documentation.swagger.web.SwaggerResourcesProvider;
  9 +
  10 +import java.util.ArrayList;
  11 +import java.util.List;
  12 +
  13 +@Component
  14 +@Primary
  15 +public class DocumentationConfig implements SwaggerResourcesProvider {
  16 +
  17 + private RouteLocator routeLocator;
  18 +
  19 + public DocumentationConfig(RouteLocator routeLocator){
  20 + this.routeLocator = routeLocator;
  21 + }
  22 +
  23 + @Override
  24 + public List<SwaggerResource> get() {
  25 +
  26 + List resources = new ArrayList();
  27 +
  28 + List<Route> routes = routeLocator.getRoutes();
  29 +
  30 + System.out.println("routes:"+routes.toString());
  31 +
  32 + for (Route route :
  33 + routes) {
  34 + resources.add(swaggerResource(route.getId(), route.getFullPath().replace("**", "v2/api-docs"), "1.0"));
  35 + }
  36 +
  37 +// resources.add(swaggerResource("海康指纹接口","/mygateway/haikangserver/v2/api-docs","1.0"));
  38 +
  39 +// resources.add(swaggerResource("大华人脸接口","","1.0"));
  40 +
  41 + return resources;
  42 + }
  43 +
  44 + private SwaggerResource swaggerResource(String name,String location,String version){
  45 +
  46 + SwaggerResource swaggerResource = new SwaggerResource();
  47 + swaggerResource.setName(name);
  48 + swaggerResource.setLocation(location);
  49 + swaggerResource.setSwaggerVersion(version);
  50 + return swaggerResource;
  51 +
  52 + }
  53 +}
... ...
cloud/geteway/src/main/java/com/example/geteway/GetewayApplication.java
1 1 package com.example.geteway;
2 2  
3 3 import org.springframework.boot.SpringApplication;
4   -import org.springframework.boot.autoconfigure.SpringBootApplication;
5   -import org.springframework.boot.context.properties.ConfigurationProperties;
6 4 import org.springframework.cloud.client.SpringCloudApplication;
  5 +import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 6 import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
  7 +import org.springframework.context.annotation.Bean;
  8 +import org.springframework.web.cors.CorsConfiguration;
  9 +import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
  10 +import org.springframework.web.filter.CorsFilter;
8 11  
9 12 /**
10 13 * 统一网关配置
11 14 * 通过服务路由的功能,在对外提供服务的时候,只需要通过暴露Zuul中配置的调用地址就可以让调用方统一的来访问我们的服务;
12 15 */
13   -@ConfigurationProperties
14   -@EnableZuulProxy
15 16 @SpringCloudApplication
  17 +@EnableDiscoveryClient
  18 +@EnableZuulProxy
16 19 public class GetewayApplication {
17 20  
18 21 public static void main(String[] args) {
19 22 SpringApplication.run(GetewayApplication.class, args);
20 23 }
21 24  
  25 +
  26 + // 跨域访问
  27 + @Bean
  28 + public CorsFilter corsFilter() {
  29 + final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
  30 + final CorsConfiguration config = new CorsConfiguration();
  31 + config.setAllowCredentials(true);
  32 + config.addAllowedOrigin("*");
  33 + config.addAllowedHeader("*");
  34 + config.addAllowedMethod("*");
  35 + config.setMaxAge(3600L);
  36 + source.registerCorsConfiguration("/**", config);
  37 + return new CorsFilter(source);
  38 + }
  39 +
22 40 }
... ...
cloud/geteway/src/main/java/com/example/geteway/Swagger2.java 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +package com.example.geteway;
  2 +
  3 +import org.springframework.context.annotation.Bean;
  4 +import org.springframework.context.annotation.Configuration;
  5 +import springfox.documentation.builders.ApiInfoBuilder;
  6 +import springfox.documentation.builders.PathSelectors;
  7 +import springfox.documentation.builders.RequestHandlerSelectors;
  8 +import springfox.documentation.service.ApiInfo;
  9 +import springfox.documentation.spi.DocumentationType;
  10 +import springfox.documentation.spring.web.plugins.Docket;
  11 +import springfox.documentation.swagger2.annotations.EnableSwagger2;
  12 +
  13 +@Configuration
  14 +@EnableSwagger2
  15 +public class Swagger2 {
  16 +
  17 + @Bean
  18 + public Docket createRestApi() {
  19 + return new Docket(DocumentationType.SWAGGER_2)
  20 + .apiInfo(apiInfo())
  21 + .select()
  22 + .apis(RequestHandlerSelectors.basePackage("com.example.geteway.control"))
  23 + .paths(PathSelectors.any())
  24 + .build();
  25 + }
  26 +
  27 + private ApiInfo apiInfo() {
  28 + return new ApiInfoBuilder()
  29 + .title("网关服务统一接口")
  30 + .contact("sincere")
  31 + .description("")
  32 + .termsOfServiceUrl("")
  33 + .version("1.0")
  34 + .build();
  35 + }
  36 +
  37 +}
... ...
cloud/geteway/src/main/resources/META-INF/additional-spring-configuration-metadata.json
... ... @@ -1,8 +0,0 @@
1   -{
2   - "properties": [
3   - {
4   - "name": "eureka.client.serviceUrl.defaultZone",
5   - "type": "java.lang.String",
6   - "description": "Description for eureka.client.serviceUrl.defaultZone."
7   - }
8   - ] }
9 0 \ No newline at end of file
cloud/geteway/src/main/resources/application.yaml
1   -zuul:
2   - routes:
3   - api-a-url:
4   - path: /aurl/**
5   -# url: http://localhost:2222/
6   - serviceId: consumer
7   - api-b-url:
8   - path: /burl/**
9   - serviceId: hello-service
10   -
11 1 server:
12 2 port: 8083
13 3  
14   -spring:
15   - application:
16   - name: geteway
17   -
18 4 eureka:
19 5 client:
20 6 fetch-registry: true
21 7 register-with-eureka: true
22   - serviceUrl:
23   - defaultZone: http://localhost:1111/eureka
  8 + service-url:
  9 +# defaultZone: http://localhost:8761/eureka/
  10 + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/
24 11 instance:
25 12 hostname: localhost
26 13 lease-expiration-duration-in-seconds: 90
27 14 lease-renewal-interval-in-seconds: 30
  15 + prefer-ip-address: true
  16 +
  17 +spring:
  18 + application:
  19 + name: sincere_geteway
  20 +
  21 +
  22 +zuul:
  23 + routes:
  24 + api-dahua-url:
  25 + path: /dahua/**
  26 + serviceId: dahuaserver
  27 + api-haikang-url:
  28 + path: /haikang/**
  29 + serviceId: haikangserver
  30 + api-iot-url:
  31 + path: /iot/**
  32 + serviceId: NetCoreService
  33 + prefix: /mygateway
  34 +
  35 +
  36 +ribbon:
  37 + eureka:
  38 + enabled: false
  39 +
  40 +haikangserver:
  41 + ribbon:
  42 + listOfServers: http://121.40.109.21:9898
  43 +
  44 +dahuaserver:
  45 + ribbon:
  46 + listOfServers: http://114.55.30.100:8991
  47 +
  48 +
  49 +
... ...
cloud/haikang/hs_err_pid12884.log 0 → 100644
... ... @@ -0,0 +1,381 @@
  1 +#
  2 +# A fatal error has been detected by the Java Runtime Environment:
  3 +#
  4 +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000023bd643f, pid=12884, tid=0x0000000000000fc8
  5 +#
  6 +# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
  7 +# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
  8 +# Problematic frame:
  9 +# C [HCEHomeAlarm.DLL+0x2643f]
  10 +#
  11 +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
  12 +#
  13 +# If you would like to submit a bug report, please visit:
  14 +# http://bugreport.java.com/bugreport/crash.jsp
  15 +#
  16 +
  17 +--------------- T H R E A D ---------------
  18 +
  19 +Current thread (0x0000000017e39000): VMThread [stack: 0x0000000019b50000,0x0000000019c50000] [id=4040]
  20 +
  21 +siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
  22 +
  23 +Registers:
  24 +RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000
  25 +RSP=0x0000000019c4ee30, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x0000000000be2e90
  26 +R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x0000000019c4eec0
  27 +R12=0x0000000000c288b0, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x0000000000c28960
  28 +RIP=0x0000000023bd643f, EFLAGS=0x0000000000010206
  29 +
  30 +Top of Stack: (sp=0x0000000019c4ee30)
  31 +0x0000000019c4ee30: 0000000026503f70 00007ffd44a407cd
  32 +0x0000000019c4ee40: 0000000000c0b790 0000002700ba0000
  33 +0x0000000019c4ee50: 0000000000be2e90 0000000023c6cb11
  34 +0x0000000019c4ee60: 0000000000000000 0000000000000000
  35 +0x0000000019c4ee70: 0000000000bed990 0000002644a3fba1
  36 +0x0000000019c4ee80: 0000000000bef440 0000000023bd6bf2
  37 +0x0000000019c4ee90: 0000000000000000 0000000000000001
  38 +0x0000000019c4eea0: 0000000000000000 0000000000c288b0
  39 +0x0000000019c4eeb0: 0000000000000001 0000000023bd6620
  40 +0x0000000019c4eec0: 0000000000000000 0000000000bef440
  41 +0x0000000019c4eed0: 0000000000c288b0 0000000000000000
  42 +0x0000000019c4eee0: 0000000000c0f830 0000000017cc56d0
  43 +0x0000000019c4eef0: 00000000211cdda0 0000000023bd5cc8
  44 +0x0000000019c4ef00: 0000000017cc56d0 0000000000bef440
  45 +0x0000000019c4ef10: 0000000000000000 0000000000000000
  46 +0x0000000019c4ef20: 00000000211cdda0 0000000023c6db04
  47 +
  48 +Instructions: (pc=0x0000000023bd643f)
  49 +0x0000000023bd641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc
  50 +0x0000000023bd642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20
  51 +0x0000000023bd643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0
  52 +0x0000000023bd644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba
  53 +
  54 +
  55 +Register to memory mapping:
  56 +
  57 +RAX=0x0000000000000001 is an unknown value
  58 +RBX=0x0000000000000000 is an unknown value
  59 +RCX=0x0000000000000000 is an unknown value
  60 +RDX=0x0000000000000000 is an unknown value
  61 +RSP=0x0000000019c4ee30 is an unknown value
  62 +RBP=0x0000000000000000 is an unknown value
  63 +RSI=0x0000000000000000 is an unknown value
  64 +RDI=0x0000000000be2e90 is an unknown value
  65 +R8 =0x0000000000000001 is an unknown value
  66 +R9 =0x0000000000000001 is an unknown value
  67 +R10=0x0000000000008000 is an unknown value
  68 +R11=0x0000000019c4eec0 is an unknown value
  69 +R12=0x0000000000c288b0 is an unknown value
  70 +R13=0x0000000000000000 is an unknown value
  71 +R14=0x0000000000000001 is an unknown value
  72 +R15=0x0000000000c28960 is an unknown value
  73 +
  74 +
  75 +Stack: [0x0000000019b50000,0x0000000019c50000], sp=0x0000000019c4ee30, free space=1019k
  76 +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
  77 +
  78 +VM_Operation (0x0000000002a4ed00): Exit, mode: safepoint, requested by thread 0x0000000002e53000
  79 +
  80 +
  81 +--------------- P R O C E S S ---------------
  82 +
  83 +Java Threads: ( => current thread )
  84 + 0x0000000019dfd000 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=11780, stack(0x00000000260a0000,0x00000000261a0000)]
  85 + 0x0000000019df9800 JavaThread "scheduling-1" [_thread_blocked, id=12604, stack(0x0000000024340000,0x0000000024440000)]
  86 + 0x0000000019f01800 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=19564, stack(0x000000001aa50000,0x000000001ab50000)]
  87 + 0x0000000019e82800 JavaThread "Service Thread" daemon [_thread_blocked, id=9888, stack(0x000000001a850000,0x000000001a950000)]
  88 + 0x0000000019dfa000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=16940, stack(0x000000001a750000,0x000000001a850000)]
  89 + 0x0000000019df0800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=22068, stack(0x000000001a650000,0x000000001a750000)]
  90 + 0x0000000019de2000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=16092, stack(0x000000001a550000,0x000000001a650000)]
  91 + 0x0000000019dde000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=16548, stack(0x000000001a450000,0x000000001a550000)]
  92 + 0x0000000019d8a000 JavaThread "Attach Listener" daemon [_thread_blocked, id=21868, stack(0x000000001a350000,0x000000001a450000)]
  93 + 0x0000000019d70800 JavaThread "Finalizer" daemon [_thread_blocked, id=19644, stack(0x000000001a150000,0x000000001a250000)]
  94 + 0x0000000002f46000 JavaThread "Reference Handler" daemon [_thread_blocked, id=19780, stack(0x0000000019c50000,0x0000000019d50000)]
  95 + 0x0000000002e53000 JavaThread "main" [_thread_blocked, id=20288, stack(0x0000000002950000,0x0000000002a50000)]
  96 +
  97 +Other Threads:
  98 +=>0x0000000017e39000 VMThread [stack: 0x0000000019b50000,0x0000000019c50000] [id=4040]
  99 +
  100 +VM state:at safepoint (shutting down)
  101 +
  102 +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
  103 +[0x0000000000b5def0] Threads_lock - owner thread: 0x0000000017e39000
  104 +
  105 +Heap:
  106 + PSYoungGen total 280064K, used 229811K [0x00000000d6300000, 0x00000000ed100000, 0x0000000100000000)
  107 + eden space 264704K, 83% used [0x00000000d6300000,0x00000000e3a944c0,0x00000000e6580000)
  108 + from space 15360K, 58% used [0x00000000e6580000,0x00000000e6e588a0,0x00000000e7480000)
  109 + to space 14848K, 0% used [0x00000000ec280000,0x00000000ec280000,0x00000000ed100000)
  110 + ParOldGen total 77312K, used 30497K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000)
  111 + object space 77312K, 39% used [0x0000000082800000,0x00000000845c8410,0x0000000087380000)
  112 + Metaspace used 54195K, capacity 56452K, committed 56536K, reserved 1097728K
  113 + class space used 7208K, capacity 7622K, committed 7680K, reserved 1048576K
  114 +
  115 +Card table byte_map: [0x0000000012310000,0x0000000012700000] byte_map_base: 0x0000000011efc000
  116 +
  117 +Marking Bits: (ParMarkBitMap*) 0x0000000075b82d00
  118 + Begin Bits: [0x00000000131a0000, 0x0000000015100000)
  119 + End Bits: [0x0000000015100000, 0x0000000017060000)
  120 +
  121 +Polling page: 0x0000000000b40000
  122 +
  123 +CodeCache: size=245760Kb used=18234Kb max_used=19136Kb free=227526Kb
  124 + bounds [0x0000000002f50000, 0x0000000004260000, 0x0000000011f50000]
  125 + total_blobs=5280 nmethods=4783 adapters=409
  126 + compilation: enabled
  127 +
  128 +Compilation events (10 events):
  129 +Event: 12.439 Thread 0x0000000019dfa000 nmethod 5603 0x0000000003b65090 code [0x0000000003b651e0, 0x0000000003b652d0]
  130 +Event: 12.439 Thread 0x0000000019dfa000 5583 1 java.text.NumberFormat::isGroupingUsed (5 bytes)
  131 +Event: 12.439 Thread 0x0000000019dfa000 nmethod 5583 0x000000000325c510 code [0x000000000325c660, 0x000000000325c770]
  132 +Event: 12.439 Thread 0x0000000019dfa000 5589 1 java.text.DecimalFormatSymbols::getGroupingSeparator (5 bytes)
  133 +Event: 12.440 Thread 0x0000000019dfa000 nmethod 5589 0x000000000346aa10 code [0x000000000346ab60, 0x000000000346ac70]
  134 +Event: 12.440 Thread 0x0000000019dfa000 5590 1 java.text.DecimalFormatSymbols::getDecimalSeparator (5 bytes)
  135 +Event: 12.440 Thread 0x0000000019dfa000 nmethod 5590 0x0000000003080750 code [0x00000000030808a0, 0x00000000030809b0]
  136 +Event: 12.443 Thread 0x0000000019dfa000 5612 % 3 sun.security.util.Cache$EqualByteArray::hashCode @ 19 (57 bytes)
  137 +Event: 12.443 Thread 0x0000000019dfa000 nmethod 5612% 0x00000000032f5250 code [0x00000000032f53c0, 0x00000000032f5690]
  138 +Event: 12.443 Thread 0x0000000019dfa000 5613 2 sun.security.x509.AlgorithmId::parse (100 bytes)
  139 +
  140 +GC Heap History (10 events):
  141 +Event: 4.597 GC heap before
  142 +{Heap before GC invocations=9 (full 1):
  143 + PSYoungGen total 138752K, used 111588K [0x00000000d6300000, 0x00000000e3c80000, 0x0000000100000000)
  144 + eden space 129536K, 79% used [0x00000000d6300000,0x00000000dc6fd9f0,0x00000000de180000)
  145 + from space 9216K, 99% used [0x00000000de180000,0x00000000dea7b8a8,0x00000000dea80000)
  146 + to space 11776K, 0% used [0x00000000e3100000,0x00000000e3100000,0x00000000e3c80000)
  147 + ParOldGen total 48640K, used 9043K [0x0000000082800000, 0x0000000085780000, 0x00000000d6300000)
  148 + object space 48640K, 18% used [0x0000000082800000,0x00000000830d4c18,0x0000000085780000)
  149 + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K
  150 + class space used 4446K, capacity 4681K, committed 4736K, reserved 1048576K
  151 +Event: 4.610 GC heap after
  152 +Heap after GC invocations=9 (full 1):
  153 + PSYoungGen total 208384K, used 11753K [0x00000000d6300000, 0x00000000e5400000, 0x0000000100000000)
  154 + eden space 196608K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2300000)
  155 + from space 11776K, 99% used [0x00000000e3100000,0x00000000e3c7a6e8,0x00000000e3c80000)
  156 + to space 14336K, 0% used [0x00000000e2300000,0x00000000e2300000,0x00000000e3100000)
  157 + ParOldGen total 48640K, used 11372K [0x0000000082800000, 0x0000000085780000, 0x00000000d6300000)
  158 + object space 48640K, 23% used [0x0000000082800000,0x000000008331b308,0x0000000085780000)
  159 + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K
  160 + class space used 4446K, capacity 4681K, committed 4736K, reserved 1048576K
  161 +}
  162 +Event: 4.610 GC heap before
  163 +{Heap before GC invocations=10 (full 2):
  164 + PSYoungGen total 208384K, used 11753K [0x00000000d6300000, 0x00000000e5400000, 0x0000000100000000)
  165 + eden space 196608K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2300000)
  166 + from space 11776K, 99% used [0x00000000e3100000,0x00000000e3c7a6e8,0x00000000e3c80000)
  167 + to space 14336K, 0% used [0x00000000e2300000,0x00000000e2300000,0x00000000e3100000)
  168 + ParOldGen total 48640K, used 11372K [0x0000000082800000, 0x0000000085780000, 0x00000000d6300000)
  169 + object space 48640K, 23% used [0x0000000082800000,0x000000008331b308,0x0000000085780000)
  170 + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K
  171 + class space used 4446K, capacity 4681K, committed 4736K, reserved 1048576K
  172 +Event: 4.663 GC heap after
  173 +Heap after GC invocations=10 (full 2):
  174 + PSYoungGen total 208384K, used 0K [0x00000000d6300000, 0x00000000e5400000, 0x0000000100000000)
  175 + eden space 196608K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2300000)
  176 + from space 11776K, 0% used [0x00000000e3100000,0x00000000e3100000,0x00000000e3c80000)
  177 + to space 14336K, 0% used [0x00000000e2300000,0x00000000e2300000,0x00000000e3100000)
  178 + ParOldGen total 77312K, used 19192K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000)
  179 + object space 77312K, 24% used [0x0000000082800000,0x0000000083abe2f0,0x0000000087380000)
  180 + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K
  181 + class space used 4446K, capacity 4681K, committed 4736K, reserved 1048576K
  182 +}
  183 +Event: 6.758 GC heap before
  184 +{Heap before GC invocations=11 (full 2):
  185 + PSYoungGen total 208384K, used 196608K [0x00000000d6300000, 0x00000000e5400000, 0x0000000100000000)
  186 + eden space 196608K, 100% used [0x00000000d6300000,0x00000000e2300000,0x00000000e2300000)
  187 + from space 11776K, 0% used [0x00000000e3100000,0x00000000e3100000,0x00000000e3c80000)
  188 + to space 14336K, 0% used [0x00000000e2300000,0x00000000e2300000,0x00000000e3100000)
  189 + ParOldGen total 77312K, used 19192K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000)
  190 + object space 77312K, 24% used [0x0000000082800000,0x0000000083abe2f0,0x0000000087380000)
  191 + Metaspace used 40698K, capacity 42018K, committed 42200K, reserved 1085440K
  192 + class space used 5263K, capacity 5527K, committed 5632K, reserved 1048576K
  193 +Event: 6.770 GC heap after
  194 +Heap after GC invocations=11 (full 2):
  195 + PSYoungGen total 210944K, used 9658K [0x00000000d6300000, 0x00000000e8400000, 0x0000000100000000)
  196 + eden space 196608K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2300000)
  197 + from space 14336K, 67% used [0x00000000e2300000,0x00000000e2c6e800,0x00000000e3100000)
  198 + to space 14336K, 0% used [0x00000000e7600000,0x00000000e7600000,0x00000000e8400000)
  199 + ParOldGen total 77312K, used 19200K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000)
  200 + object space 77312K, 24% used [0x0000000082800000,0x0000000083ac02f0,0x0000000087380000)
  201 + Metaspace used 40698K, capacity 42018K, committed 42200K, reserved 1085440K
  202 + class space used 5263K, capacity 5527K, committed 5632K, reserved 1048576K
  203 +}
  204 +Event: 8.408 GC heap before
  205 +{Heap before GC invocations=12 (full 2):
  206 + PSYoungGen total 210944K, used 206266K [0x00000000d6300000, 0x00000000e8400000, 0x0000000100000000)
  207 + eden space 196608K, 100% used [0x00000000d6300000,0x00000000e2300000,0x00000000e2300000)
  208 + from space 14336K, 67% used [0x00000000e2300000,0x00000000e2c6e800,0x00000000e3100000)
  209 + to space 14336K, 0% used [0x00000000e7600000,0x00000000e7600000,0x00000000e8400000)
  210 + ParOldGen total 77312K, used 19200K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000)
  211 + object space 77312K, 24% used [0x0000000082800000,0x0000000083ac02f0,0x0000000087380000)
  212 + Metaspace used 44283K, capacity 45784K, committed 46040K, reserved 1089536K
  213 + class space used 5737K, capacity 6056K, committed 6144K, reserved 1048576K
  214 +Event: 8.422 GC heap after
  215 +Heap after GC invocations=12 (full 2):
  216 + PSYoungGen total 275968K, used 13473K [0x00000000d6300000, 0x00000000e8380000, 0x0000000100000000)
  217 + eden space 262144K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e6300000)
  218 + from space 13824K, 97% used [0x00000000e7600000,0x00000000e83285c0,0x00000000e8380000)
  219 + to space 15360K, 0% used [0x00000000e6580000,0x00000000e6580000,0x00000000e7480000)
  220 + ParOldGen total 77312K, used 19208K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000)
  221 + object space 77312K, 24% used [0x0000000082800000,0x0000000083ac22f0,0x0000000087380000)
  222 + Metaspace used 44283K, capacity 45784K, committed 46040K, reserved 1089536K
  223 + class space used 5737K, capacity 6056K, committed 6144K, reserved 1048576K
  224 +}
  225 +Event: 10.167 GC heap before
  226 +{Heap before GC invocations=13 (full 2):
  227 + PSYoungGen total 275968K, used 275617K [0x00000000d6300000, 0x00000000e8380000, 0x0000000100000000)
  228 + eden space 262144K, 100% used [0x00000000d6300000,0x00000000e6300000,0x00000000e6300000)
  229 + from space 13824K, 97% used [0x00000000e7600000,0x00000000e83285c0,0x00000000e8380000)
  230 + to space 15360K, 0% used [0x00000000e6580000,0x00000000e6580000,0x00000000e7480000)
  231 + ParOldGen total 77312K, used 19208K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000)
  232 + object space 77312K, 24% used [0x0000000082800000,0x0000000083ac22f0,0x0000000087380000)
  233 + Metaspace used 47457K, capacity 49506K, committed 49624K, reserved 1091584K
  234 + class space used 6190K, capacity 6559K, committed 6656K, reserved 1048576K
  235 +Event: 10.189 GC heap after
  236 +Heap after GC invocations=13 (full 2):
  237 + PSYoungGen total 280064K, used 9058K [0x00000000d6300000, 0x00000000ed100000, 0x0000000100000000)
  238 + eden space 264704K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e6580000)
  239 + from space 15360K, 58% used [0x00000000e6580000,0x00000000e6e588a0,0x00000000e7480000)
  240 + to space 14848K, 0% used [0x00000000ec280000,0x00000000ec280000,0x00000000ed100000)
  241 + ParOldGen total 77312K, used 30497K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000)
  242 + object space 77312K, 39% used [0x0000000082800000,0x00000000845c8410,0x0000000087380000)
  243 + Metaspace used 47457K, capacity 49506K, committed 49624K, reserved 1091584K
  244 + class space used 6190K, capacity 6559K, committed 6656K, reserved 1048576K
  245 +}
  246 +
  247 +Deoptimization events (10 events):
  248 +Event: 12.049 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000036e01d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8
  249 +Event: 12.050 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003af9284 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
  250 +Event: 12.059 Thread 0x0000000002e53000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x00000000032f2ae8 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63
  251 +Event: 12.098 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000036e01d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8
  252 +Event: 12.099 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003af9284 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
  253 +Event: 12.101 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000036e01d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8
  254 +Event: 12.101 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003af9284 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
  255 +Event: 12.380 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d91e2c method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7
  256 +Event: 12.380 Thread 0x0000000019df9800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000359a7dc method=java.net.URLStreamHandler.parseURL(Ljava/net/URL;Ljava/lang/String;II)V @ 155
  257 +Event: 12.390 Thread 0x0000000019df9800 Uncommon trap: reason=null_check action=make_not_entrant pc=0x0000000003d8f900 method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7
  258 +
  259 +Classes redefined (0 events):
  260 +No events
  261 +
  262 +Internal exceptions (10 events):
  263 +Event: 11.473 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000df3dfa08) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  264 +Event: 11.474 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/actuate/autoconfigure/web/server/ManagementServerPropertiesCustomizer> (0x00000000df41f0f8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\shar
  265 +Event: 11.511 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000df6df7a8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  266 +Event: 11.512 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistrationCustomizer> (0x00000000df71b608) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\clas
  267 +Event: 11.514 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/serviceregistry/RegistrationCustomizer> (0x00000000df770870) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDi
  268 +Event: 11.515 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/ServiceInstanceCustomizer> (0x00000000df79a420) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
  269 +Event: 12.020 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e134a3b0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  270 +Event: 12.021 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000e1375058) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
  271 +Event: 12.408 Thread 0x0000000019dfb800 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e34b4888) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  272 +Event: 12.410 Thread 0x0000000019dfb800 Exception <a 'java/lang/ClassNotFoundException': com/netflix/appinfo/ApplicationInfoManagerCustomizer> (0x00000000e34dead0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
  273 +
  274 +Events (10 events):
  275 +Event: 12.438 Thread 0x0000000019dfa000 flushing nmethod 0x000000000402b310
  276 +Event: 12.438 Thread 0x0000000019dfa000 flushing nmethod 0x00000000040b2c90
  277 +Event: 12.438 Thread 0x0000000019dfa000 flushing nmethod 0x00000000040f6a90
  278 +Event: 12.439 loading class sun/security/x509/IssuerAlternativeNameExtension
  279 +Event: 12.440 Executing VM operation: RevokeBias
  280 +Event: 12.440 Executing VM operation: RevokeBias done
  281 +Event: 12.441 Thread 0x0000000019dfb800 Thread exited: 0x0000000019dfb800
  282 +Event: 12.442 loading class sun/security/x509/IssuerAlternativeNameExtension done
  283 +Event: 12.443 Thread 0x0000000019d88800 Thread exited: 0x0000000019d88800
  284 +Event: 12.443 Executing VM operation: Exit
  285 +
  286 +
  287 +Dynamic libraries:
  288 +0x00007ff702290000 - 0x00007ff7022c7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe
  289 +0x00007ffd44a00000 - 0x00007ffd44bf0000 C:\WINDOWS\SYSTEM32\ntdll.dll
  290 +0x00007ffd438e0000 - 0x00007ffd43992000 C:\WINDOWS\System32\KERNEL32.DLL
  291 +0x00007ffd41c40000 - 0x00007ffd41ee3000 C:\WINDOWS\System32\KERNELBASE.dll
  292 +0x00007ffd44020000 - 0x00007ffd440c3000 C:\WINDOWS\System32\ADVAPI32.dll
  293 +0x00007ffd43e70000 - 0x00007ffd43f0e000 C:\WINDOWS\System32\msvcrt.dll
  294 +0x00007ffd43bb0000 - 0x00007ffd43c47000 C:\WINDOWS\System32\sechost.dll
  295 +0x00007ffd43350000 - 0x00007ffd43470000 C:\WINDOWS\System32\RPCRT4.dll
  296 +0x00007ffd440d0000 - 0x00007ffd44263000 C:\WINDOWS\System32\USER32.dll
  297 +0x00007ffd41f40000 - 0x00007ffd41f61000 C:\WINDOWS\System32\win32u.dll
  298 +0x00007ffd43b10000 - 0x00007ffd43b36000 C:\WINDOWS\System32\GDI32.dll
  299 +0x00007ffd42190000 - 0x00007ffd42324000 C:\WINDOWS\System32\gdi32full.dll
  300 +0x00007ffd420f0000 - 0x00007ffd4218e000 C:\WINDOWS\System32\msvcp_win.dll
  301 +0x00007ffd419b0000 - 0x00007ffd41aaa000 C:\WINDOWS\System32\ucrtbase.dll
  302 +0x00007ffd2a290000 - 0x00007ffd2a515000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll
  303 +0x00007ffd42d70000 - 0x00007ffd430a6000 C:\WINDOWS\System32\combase.dll
  304 +0x00007ffd41b60000 - 0x00007ffd41be0000 C:\WINDOWS\System32\bcryptPrimitives.dll
  305 +0x00007ffd439a0000 - 0x00007ffd439ce000 C:\WINDOWS\System32\IMM32.DLL
  306 +0x0000000075c10000 - 0x0000000075ce2000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll
  307 +0x0000000075360000 - 0x0000000075c02000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
  308 +0x00007ffd43e60000 - 0x00007ffd43e68000 C:\WINDOWS\System32\PSAPI.DLL
  309 +0x00007ffd2f800000 - 0x00007ffd2f809000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
  310 +0x00007ffd3c430000 - 0x00007ffd3c454000 C:\WINDOWS\SYSTEM32\WINMM.dll
  311 +0x00007ffd38680000 - 0x00007ffd3868a000 C:\WINDOWS\SYSTEM32\VERSION.dll
  312 +0x00007ffd439d0000 - 0x00007ffd43a3f000 C:\WINDOWS\System32\WS2_32.dll
  313 +0x00007ffd3c3a0000 - 0x00007ffd3c3cd000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
  314 +0x00007ffd41ef0000 - 0x00007ffd41f3a000 C:\WINDOWS\System32\cfgmgr32.dll
  315 +0x0000000075350000 - 0x000000007535f000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll
  316 +0x0000000075320000 - 0x0000000075349000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll
  317 +0x0000000075300000 - 0x0000000075316000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll
  318 +0x00007ffd44270000 - 0x00007ffd44952000 C:\WINDOWS\System32\SHELL32.dll
  319 +0x00007ffd43f70000 - 0x00007ffd44019000 C:\WINDOWS\System32\shcore.dll
  320 +0x00007ffd42330000 - 0x00007ffd42aac000 C:\WINDOWS\System32\windows.storage.dll
  321 +0x00007ffd41970000 - 0x00007ffd4198f000 C:\WINDOWS\System32\profapi.dll
  322 +0x00007ffd41920000 - 0x00007ffd4196a000 C:\WINDOWS\System32\powrprof.dll
  323 +0x00007ffd418d0000 - 0x00007ffd418e0000 C:\WINDOWS\System32\UMPDC.dll
  324 +0x00007ffd42ab0000 - 0x00007ffd42b02000 C:\WINDOWS\System32\shlwapi.dll
  325 +0x00007ffd41900000 - 0x00007ffd41911000 C:\WINDOWS\System32\kernel.appcore.dll
  326 +0x00007ffd41990000 - 0x00007ffd419a7000 C:\WINDOWS\System32\cryptsp.dll
  327 +0x00000000752d0000 - 0x00000000752dd000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll
  328 +0x00000000752e0000 - 0x00000000752fa000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll
  329 +0x00007ffd41140000 - 0x00007ffd411a7000 C:\WINDOWS\system32\mswsock.dll
  330 +0x0000000075200000 - 0x0000000075211000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll
  331 +0x00007ffd40e50000 - 0x00007ffd40e8a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
  332 +0x00007ffd432b0000 - 0x00007ffd432b8000 C:\WINDOWS\System32\NSI.dll
  333 +0x00007ffd39d20000 - 0x00007ffd39d36000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
  334 +0x00007ffd3a5a0000 - 0x00007ffd3a5bc000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
  335 +0x00007ffd40e90000 - 0x00007ffd40f5a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
  336 +0x00007ffd37db0000 - 0x00007ffd37dba000 C:\Windows\System32\rasadhlp.dll
  337 +0x00007ffd38690000 - 0x00007ffd38707000 C:\WINDOWS\System32\fwpuclnt.dll
  338 +0x00007ffd420c0000 - 0x00007ffd420e6000 C:\WINDOWS\System32\bcrypt.dll
  339 +0x00007ffd1c5e0000 - 0x00007ffd1c5f6000 C:\WINDOWS\system32\napinsp.dll
  340 +0x00007ffd1c540000 - 0x00007ffd1c55a000 C:\WINDOWS\system32\pnrpnsp.dll
  341 +0x00007ffd1c530000 - 0x00007ffd1c53e000 C:\WINDOWS\System32\winrnr.dll
  342 +0x00007ffd3c4c0000 - 0x00007ffd3c4dc000 C:\WINDOWS\system32\NLAapi.dll
  343 +0x00007ffd1c390000 - 0x00007ffd1c3a5000 C:\WINDOWS\system32\wshbth.dll
  344 +0x00007ffd40cb0000 - 0x00007ffd40ce3000 C:\WINDOWS\system32\rsaenh.dll
  345 +0x00007ffd417f0000 - 0x00007ffd41815000 C:\WINDOWS\SYSTEM32\USERENV.dll
  346 +0x00007ffd41310000 - 0x00007ffd4131c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
  347 +0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna2618661163649852219.tmp
  348 +0x00000000237e0000 - 0x0000000023bab000 C:\lib\HCEHomeCMS.DLL
  349 +0x0000000023bb0000 - 0x0000000023f3f000 C:\lib\HCEHomeAlarm.DLL
  350 +0x00000000235c0000 - 0x00000000237b0000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll
  351 +0x00007ffd2db10000 - 0x00007ffd2db42000 C:\Program Files\Intel\WiFi\bin\zlib1.dll
  352 +0x0000000073bd0000 - 0x0000000073bf4000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunec.dll
  353 +0x00007ffd401f0000 - 0x00007ffd403e4000 C:\WINDOWS\SYSTEM32\dbghelp.dll
  354 +
  355 +VM Arguments:
  356 +java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire7363867838063342798\surefirebooter8063544916016957714.jar C:\Users\taohandong\AppData\Local\Temp\surefire7363867838063342798 2019-09-02T16-04-04_377-jvmRun1 surefire6164308304345521126tmp surefire_05594348443311013379tmp
  357 +java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire7363867838063342798\surefirebooter8063544916016957714.jar
  358 +Launcher Type: SUN_STANDARD
  359 +
  360 +Environment Variables:
  361 +JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
  362 +CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar;
  363 +USERNAME=taohandong
  364 +OS=Windows_NT
  365 +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel
  366 +
  367 +
  368 +
  369 +--------------- S Y S T E M ---------------
  370 +
  371 +OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86)
  372 +
  373 +CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
  374 +
  375 +Memory: 4k page, physical 8218728k(434472k free), swap 19673296k(3597812k free)
  376 +
  377 +vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010)
  378 +
  379 +time: Mon Sep 02 16:04:17 2019
  380 +elapsed time: 12 seconds (0d 0h 0m 12s)
  381 +
... ...
cloud/haikang/hs_err_pid1984.log
... ... @@ -1,380 +0,0 @@
1   -#
2   -# A fatal error has been detected by the Java Runtime Environment:
3   -#
4   -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000021b2643f, pid=1984, tid=0x0000000000003cbc
5   -#
6   -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
7   -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
8   -# Problematic frame:
9   -# C [HCEHomeAlarm.DLL+0x2643f]
10   -#
11   -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
12   -#
13   -# If you would like to submit a bug report, please visit:
14   -# http://bugreport.java.com/bugreport/crash.jsp
15   -#
16   -
17   ---------------- T H R E A D ---------------
18   -
19   -Current thread (0x0000000017948800): VMThread [stack: 0x0000000019630000,0x0000000019730000] [id=15548]
20   -
21   -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
22   -
23   -Registers:
24   -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000
25   -RSP=0x000000001972f410, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x0000000000696e50
26   -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x000000001972f4a0
27   -R12=0x0000000000663820, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x00000000006638d0
28   -RIP=0x0000000021b2643f, EFLAGS=0x0000000000010202
29   -
30   -Top of Stack: (sp=0x000000001972f410)
31   -0x000000001972f410: 0000000022b73cd0 00007ff8179607cd
32   -0x000000001972f420: 000000000066dd50 0000001f00620000
33   -0x000000001972f430: 0000000000696e50 0000000021bbcb11
34   -0x000000001972f440: 0000000000000000 0000000000000000
35   -0x000000001972f450: 000000000066dcd0 000000151795fba1
36   -0x000000001972f460: 000000000070bce0 0000000021b26bf2
37   -0x000000001972f470: 0000000000000000 0000000000000001
38   -0x000000001972f480: 0000000000000000 0000000000663820
39   -0x000000001972f490: 0000000000000001 0000000021b26620
40   -0x000000001972f4a0: 0000000000000000 000000000070bce0
41   -0x000000001972f4b0: 0000000000663820 0000000000000000
42   -0x000000001972f4c0: 0000000000686320 00000000177d5400
43   -0x000000001972f4d0: 000000000071d230 0000000021b25cc8
44   -0x000000001972f4e0: 00000000177d5400 000000000070bce0
45   -0x000000001972f4f0: 0000000000000000 0000000000000000
46   -0x000000001972f500: 000000000071d230 0000000021bbdb04
47   -
48   -Instructions: (pc=0x0000000021b2643f)
49   -0x0000000021b2641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc
50   -0x0000000021b2642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20
51   -0x0000000021b2643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0
52   -0x0000000021b2644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba
53   -
54   -
55   -Register to memory mapping:
56   -
57   -RAX=0x0000000000000001 is an unknown value
58   -RBX=0x0000000000000000 is an unknown value
59   -RCX=0x0000000000000000 is an unknown value
60   -RDX=0x0000000000000000 is an unknown value
61   -RSP=0x000000001972f410 is an unknown value
62   -RBP=0x0000000000000000 is an unknown value
63   -RSI=0x0000000000000000 is an unknown value
64   -RDI=0x0000000000696e50 is an unknown value
65   -R8 =0x0000000000000001 is an unknown value
66   -R9 =0x0000000000000001 is an unknown value
67   -R10=0x0000000000008000 is an unknown value
68   -R11=0x000000001972f4a0 is an unknown value
69   -R12=0x0000000000663820 is an unknown value
70   -R13=0x0000000000000000 is an unknown value
71   -R14=0x0000000000000001 is an unknown value
72   -R15=0x00000000006638d0 is an unknown value
73   -
74   -
75   -Stack: [0x0000000019630000,0x0000000019730000], sp=0x000000001972f410, free space=1021k
76   -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
77   -
78   -VM_Operation (0x000000000292ef30): Exit, mode: safepoint, requested by thread 0x0000000002933000
79   -
80   -
81   ---------------- P R O C E S S ---------------
82   -
83   -Java Threads: ( => current thread )
84   - 0x000000001e5e8800 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=16004, stack(0x00000000232d0000,0x00000000233d0000)]
85   - 0x0000000019a0b000 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=2420, stack(0x000000001a590000,0x000000001a690000)]
86   - 0x000000001995f000 JavaThread "Service Thread" daemon [_thread_blocked, id=9268, stack(0x000000001a390000,0x000000001a490000)]
87   - 0x0000000019917000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=18348, stack(0x000000001a290000,0x000000001a390000)]
88   - 0x00000000198c9800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=11476, stack(0x000000001a190000,0x000000001a290000)]
89   - 0x00000000198c5000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=21008, stack(0x000000001a090000,0x000000001a190000)]
90   - 0x00000000198c2000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=18152, stack(0x0000000019f90000,0x000000001a090000)]
91   - 0x000000001986a000 JavaThread "Attach Listener" daemon [_thread_blocked, id=17752, stack(0x0000000019e90000,0x0000000019f90000)]
92   - 0x0000000019869000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=13000, stack(0x0000000019d90000,0x0000000019e90000)]
93   - 0x0000000017953800 JavaThread "Finalizer" daemon [_thread_blocked, id=19424, stack(0x0000000019c30000,0x0000000019d30000)]
94   - 0x0000000002a28800 JavaThread "Reference Handler" daemon [_thread_blocked, id=10312, stack(0x0000000019730000,0x0000000019830000)]
95   - 0x0000000002933000 JavaThread "main" [_thread_blocked, id=8952, stack(0x0000000002830000,0x0000000002930000)]
96   -
97   -Other Threads:
98   -=>0x0000000017948800 VMThread [stack: 0x0000000019630000,0x0000000019730000] [id=15548]
99   -
100   -VM state:at safepoint (shutting down)
101   -
102   -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
103   -[0x000000000282d870] Threads_lock - owner thread: 0x0000000017948800
104   -
105   -Heap:
106   - PSYoungGen total 138240K, used 41947K [0x00000000d6300000, 0x00000000e4780000, 0x0000000100000000)
107   - eden space 129024K, 25% used [0x00000000d6300000,0x00000000d82fb8d8,0x00000000de100000)
108   - from space 9216K, 99% used [0x00000000de100000,0x00000000de9fb570,0x00000000dea00000)
109   - to space 10752K, 0% used [0x00000000e3d00000,0x00000000e3d00000,0x00000000e4780000)
110   - ParOldGen total 46592K, used 7501K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000)
111   - object space 46592K, 16% used [0x0000000082800000,0x0000000082f53758,0x0000000085580000)
112   - Metaspace used 34134K, capacity 35704K, committed 35836K, reserved 1081344K
113   - class space used 4507K, capacity 4790K, committed 4860K, reserved 1048576K
114   -
115   -Card table byte_map: [0x0000000011df0000,0x00000000121e0000] byte_map_base: 0x00000000119dc000
116   -
117   -Marking Bits: (ParMarkBitMap*) 0x000000005ca12d00
118   - Begin Bits: [0x0000000012c80000, 0x0000000014be0000)
119   - End Bits: [0x0000000014be0000, 0x0000000016b40000)
120   -
121   -Polling page: 0x0000000000610000
122   -
123   -CodeCache: size=245760Kb used=12413Kb max_used=12438Kb free=233346Kb
124   - bounds [0x0000000002a30000, 0x0000000003670000, 0x0000000011a30000]
125   - total_blobs=3721 nmethods=3298 adapters=334
126   - compilation: enabled
127   -
128   -Compilation events (10 events):
129   -Event: 3.146 Thread 0x0000000019917000 3299 3 java.util.logging.LogManager::access$100 (4 bytes)
130   -Event: 3.146 Thread 0x0000000019917000 nmethod 3299 0x000000000362f010 code [0x000000000362f160, 0x000000000362f290]
131   -Event: 3.146 Thread 0x0000000019917000 3300 3 java.util.logging.LogManager$LoggerContext::requiresDefaultLoggers (29 bytes)
132   -Event: 3.146 Thread 0x0000000019917000 nmethod 3300 0x000000000362e990 code [0x000000000362eb00, 0x000000000362ef28]
133   -Event: 3.147 Thread 0x0000000019917000 3301 1 java.util.concurrent.ConcurrentHashMap$MapEntry::getValue (5 bytes)
134   -Event: 3.147 Thread 0x0000000019917000 nmethod 3301 0x000000000362dc50 code [0x000000000362dda0, 0x000000000362deb0]
135   -Event: 3.148 Thread 0x0000000019917000 3302 1 ch.qos.logback.core.pattern.Converter::getNext (5 bytes)
136   -Event: 3.148 Thread 0x0000000019917000 nmethod 3302 0x000000000362d990 code [0x000000000362dae0, 0x000000000362dbf0]
137   -Event: 3.148 Thread 0x0000000019917000 3303 ! 3 java.util.concurrent.ConcurrentHashMap::clear (176 bytes)
138   -Event: 3.149 Thread 0x0000000019917000 nmethod 3303 0x000000000362a990 code [0x000000000362aba0, 0x000000000362b938]
139   -
140   -GC Heap History (10 events):
141   -Event: 1.351 GC heap before
142   -{Heap before GC invocations=4 (full 0):
143   - PSYoungGen total 37888K, used 30114K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000)
144   - eden space 32768K, 76% used [0x00000000d6300000,0x00000000d7b706d8,0x00000000d8300000)
145   - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87f8330,0x00000000d8800000)
146   - to space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000)
147   - ParOldGen total 86016K, used 3943K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
148   - object space 86016K, 4% used [0x0000000082800000,0x0000000082bd9fa8,0x0000000087c00000)
149   - Metaspace used 20631K, capacity 21244K, committed 21504K, reserved 1069056K
150   - class space used 2645K, capacity 2802K, committed 2816K, reserved 1048576K
151   -Event: 1.356 GC heap after
152   -Heap after GC invocations=4 (full 0):
153   - PSYoungGen total 70656K, used 5109K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000)
154   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
155   - from space 5120K, 99% used [0x00000000da800000,0x00000000dacfd688,0x00000000dad00000)
156   - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
157   - ParOldGen total 86016K, used 6483K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
158   - object space 86016K, 7% used [0x0000000082800000,0x0000000082e54e80,0x0000000087c00000)
159   - Metaspace used 20631K, capacity 21244K, committed 21504K, reserved 1069056K
160   - class space used 2645K, capacity 2802K, committed 2816K, reserved 1048576K
161   -}
162   -Event: 1.365 GC heap before
163   -{Heap before GC invocations=5 (full 0):
164   - PSYoungGen total 70656K, used 7831K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000)
165   - eden space 65536K, 4% used [0x00000000d6300000,0x00000000d65a8670,0x00000000da300000)
166   - from space 5120K, 99% used [0x00000000da800000,0x00000000dacfd688,0x00000000dad00000)
167   - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
168   - ParOldGen total 86016K, used 6483K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
169   - object space 86016K, 7% used [0x0000000082800000,0x0000000082e54e80,0x0000000087c00000)
170   - Metaspace used 20924K, capacity 21468K, committed 21628K, reserved 1069056K
171   - class space used 2678K, capacity 2834K, committed 2940K, reserved 1048576K
172   -Event: 1.369 GC heap after
173   -Heap after GC invocations=5 (full 0):
174   - PSYoungGen total 70656K, used 5114K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000)
175   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
176   - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fe8a0,0x00000000da800000)
177   - to space 8192K, 0% used [0x00000000deb00000,0x00000000deb00000,0x00000000df300000)
178   - ParOldGen total 86016K, used 6764K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
179   - object space 86016K, 7% used [0x0000000082800000,0x0000000082e9b3f8,0x0000000087c00000)
180   - Metaspace used 20924K, capacity 21468K, committed 21628K, reserved 1069056K
181   - class space used 2678K, capacity 2834K, committed 2940K, reserved 1048576K
182   -}
183   -Event: 1.369 GC heap before
184   -{Heap before GC invocations=6 (full 1):
185   - PSYoungGen total 70656K, used 5114K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000)
186   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
187   - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fe8a0,0x00000000da800000)
188   - to space 8192K, 0% used [0x00000000deb00000,0x00000000deb00000,0x00000000df300000)
189   - ParOldGen total 86016K, used 6764K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
190   - object space 86016K, 7% used [0x0000000082800000,0x0000000082e9b3f8,0x0000000087c00000)
191   - Metaspace used 20924K, capacity 21468K, committed 21628K, reserved 1069056K
192   - class space used 2678K, capacity 2834K, committed 2940K, reserved 1048576K
193   -Event: 1.388 GC heap after
194   -Heap after GC invocations=6 (full 1):
195   - PSYoungGen total 70656K, used 0K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000)
196   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
197   - from space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
198   - to space 8192K, 0% used [0x00000000deb00000,0x00000000deb00000,0x00000000df300000)
199   - ParOldGen total 46592K, used 5459K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000)
200   - object space 46592K, 11% used [0x0000000082800000,0x0000000082d54e80,0x0000000085580000)
201   - Metaspace used 20924K, capacity 21468K, committed 21628K, reserved 1069056K
202   - class space used 2678K, capacity 2834K, committed 2940K, reserved 1048576K
203   -}
204   -Event: 1.918 GC heap before
205   -{Heap before GC invocations=7 (full 1):
206   - PSYoungGen total 70656K, used 65536K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000)
207   - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000)
208   - from space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
209   - to space 8192K, 0% used [0x00000000deb00000,0x00000000deb00000,0x00000000df300000)
210   - ParOldGen total 46592K, used 5459K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000)
211   - object space 46592K, 11% used [0x0000000082800000,0x0000000082d54e80,0x0000000085580000)
212   - Metaspace used 27784K, capacity 28630K, committed 28924K, reserved 1075200K
213   - class space used 3562K, capacity 3741K, committed 3836K, reserved 1048576K
214   -Event: 1.925 GC heap after
215   -Heap after GC invocations=7 (full 1):
216   - PSYoungGen total 127488K, used 8177K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000)
217   - eden space 119296K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dd780000)
218   - from space 8192K, 99% used [0x00000000deb00000,0x00000000df2fc400,0x00000000df300000)
219   - to space 9216K, 0% used [0x00000000de100000,0x00000000de100000,0x00000000dea00000)
220   - ParOldGen total 46592K, used 5607K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000)
221   - object space 46592K, 12% used [0x0000000082800000,0x0000000082d79df0,0x0000000085580000)
222   - Metaspace used 27784K, capacity 28630K, committed 28924K, reserved 1075200K
223   - class space used 3562K, capacity 3741K, committed 3836K, reserved 1048576K
224   -}
225   -Event: 2.851 GC heap before
226   -{Heap before GC invocations=8 (full 1):
227   - PSYoungGen total 127488K, used 127473K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000)
228   - eden space 119296K, 100% used [0x00000000d6300000,0x00000000dd780000,0x00000000dd780000)
229   - from space 8192K, 99% used [0x00000000deb00000,0x00000000df2fc400,0x00000000df300000)
230   - to space 9216K, 0% used [0x00000000de100000,0x00000000de100000,0x00000000dea00000)
231   - ParOldGen total 46592K, used 5607K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000)
232   - object space 46592K, 12% used [0x0000000082800000,0x0000000082d79df0,0x0000000085580000)
233   - Metaspace used 32166K, capacity 33744K, committed 33916K, reserved 1079296K
234   - class space used 4145K, capacity 4448K, committed 4476K, reserved 1048576K
235   -Event: 2.860 GC heap after
236   -Heap after GC invocations=8 (full 1):
237   - PSYoungGen total 138240K, used 9197K [0x00000000d6300000, 0x00000000e4780000, 0x0000000100000000)
238   - eden space 129024K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000de100000)
239   - from space 9216K, 99% used [0x00000000de100000,0x00000000de9fb570,0x00000000dea00000)
240   - to space 10752K, 0% used [0x00000000e3d00000,0x00000000e3d00000,0x00000000e4780000)
241   - ParOldGen total 46592K, used 7501K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000)
242   - object space 46592K, 16% used [0x0000000082800000,0x0000000082f53758,0x0000000085580000)
243   - Metaspace used 32166K, capacity 33744K, committed 33916K, reserved 1079296K
244   - class space used 4145K, capacity 4448K, committed 4476K, reserved 1048576K
245   -}
246   -
247   -Deoptimization events (10 events):
248   -Event: 2.592 Thread 0x0000000002933000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000035203a0 method=java.lang.reflect.Array.newInstance(Ljava/lang/Class;I)Ljava/lang/Object; @ 2
249   -Event: 2.592 Thread 0x0000000002933000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000035203a0 method=java.lang.reflect.Array.newInstance(Ljava/lang/Class;I)Ljava/lang/Object; @ 2
250   -Event: 2.592 Thread 0x0000000002933000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000035203a0 method=java.lang.reflect.Array.newInstance(Ljava/lang/Class;I)Ljava/lang/Object; @ 2
251   -Event: 2.643 Thread 0x0000000002933000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000034b7c64 method=org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(Ljava/lang/String;Lorg/springframework/core/ResolvableType;)Z @ 66
252   -Event: 2.913 Thread 0x0000000002933000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003575b54 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.clear()V @ 4
253   -Event: 2.988 Thread 0x0000000002933000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000000002da396c method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63
254   -Event: 3.035 Thread 0x0000000002933000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x000000000347e67c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
255   -Event: 3.036 Thread 0x0000000002933000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x000000000347e67c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
256   -Event: 3.036 Thread 0x0000000002933000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x000000000347e67c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
257   -Event: 3.036 Thread 0x0000000002933000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x000000000347e67c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
258   -
259   -Classes redefined (0 events):
260   -No events
261   -
262   -Internal exceptions (10 events):
263   -Event: 2.899 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/core/env/EnvironmentCapableCustomizer> (0x00000000d6a547c8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
264   -Event: 2.900 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/context/ServletContextAwareCustomizer> (0x00000000d6a69b08) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c
265   -Event: 2.900 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/AwareCustomizer> (0x00000000d6a7c330) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210
266   -Event: 2.900 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/InitializingBeanCustomizer> (0x00000000d6a8fd18) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp
267   -Event: 2.900 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/DisposableBeanCustomizer> (0x00000000d6aa3418) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
268   -Event: 2.902 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d6acbf30) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
269   -Event: 2.903 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/support/StandardServletMultipartResolverCustomizer> (0x00000000d6ae80f8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\class
270   -Event: 2.903 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/MultipartResolverCustomizer> (0x00000000d6b00f18) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c
271   -Event: 2.971 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d6e35598) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
272   -Event: 2.972 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000d6e4b040) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
273   -
274   -Events (10 events):
275   -Event: 3.145 Thread 0x000000001ff36000 Thread added: 0x000000001ff36000
276   -Event: 3.145 Thread 0x000000001e7fd800 Thread added: 0x000000001e7fd800
277   -Event: 3.145 Thread 0x000000001e7fd800 Thread exited: 0x000000001e7fd800
278   -Event: 3.146 loading class org/springframework/context/support/DefaultLifecycleProcessor
279   -Event: 3.146 loading class org/springframework/context/support/DefaultLifecycleProcessor done
280   -Event: 3.148 Thread 0x000000001ff36000 Thread exited: 0x000000001ff36000
281   -Event: 3.148 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator
282   -Event: 3.148 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator done
283   -Event: 3.149 Thread 0x0000000019ac9800 Thread exited: 0x0000000019ac9800
284   -Event: 3.150 Executing VM operation: Exit
285   -
286   -
287   -Dynamic libraries:
288   -0x00007ff7b7a80000 - 0x00007ff7b7ab7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe
289   -0x00007ff817920000 - 0x00007ff817b10000 C:\WINDOWS\SYSTEM32\ntdll.dll
290   -0x00007ff815d40000 - 0x00007ff815df2000 C:\WINDOWS\System32\KERNEL32.DLL
291   -0x00007ff8156c0000 - 0x00007ff815963000 C:\WINDOWS\System32\KERNELBASE.dll
292   -0x00007ff816600000 - 0x00007ff8166a3000 C:\WINDOWS\System32\ADVAPI32.dll
293   -0x00007ff817570000 - 0x00007ff81760e000 C:\WINDOWS\System32\msvcrt.dll
294   -0x00007ff816f10000 - 0x00007ff816fa7000 C:\WINDOWS\System32\sechost.dll
295   -0x00007ff817420000 - 0x00007ff817540000 C:\WINDOWS\System32\RPCRT4.dll
296   -0x00007ff815b90000 - 0x00007ff815d23000 C:\WINDOWS\System32\USER32.dll
297   -0x00007ff815030000 - 0x00007ff815051000 C:\WINDOWS\System32\win32u.dll
298   -0x00007ff816830000 - 0x00007ff816856000 C:\WINDOWS\System32\GDI32.dll
299   -0x00007ff8154f0000 - 0x00007ff815684000 C:\WINDOWS\System32\gdi32full.dll
300   -0x00007ff815450000 - 0x00007ff8154ee000 C:\WINDOWS\System32\msvcp_win.dll
301   -0x00007ff815190000 - 0x00007ff81528a000 C:\WINDOWS\System32\ucrtbase.dll
302   -0x00007ffffbbb0000 - 0x00007ffffbe35000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll
303   -0x00007ff817080000 - 0x00007ff8173b6000 C:\WINDOWS\System32\combase.dll
304   -0x00007ff815060000 - 0x00007ff8150e0000 C:\WINDOWS\System32\bcryptPrimitives.dll
305   -0x00007ff817540000 - 0x00007ff81756e000 C:\WINDOWS\System32\IMM32.DLL
306   -0x000000005caa0000 - 0x000000005cb72000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll
307   -0x000000005c1f0000 - 0x000000005ca92000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
308   -0x00007ff815ef0000 - 0x00007ff815ef8000 C:\WINDOWS\System32\PSAPI.DLL
309   -0x00007ff8002c0000 - 0x00007ff8002c9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
310   -0x00007ff80f370000 - 0x00007ff80f394000 C:\WINDOWS\SYSTEM32\WINMM.dll
311   -0x00007ff8176c0000 - 0x00007ff81772f000 C:\WINDOWS\System32\WS2_32.dll
312   -0x00007ff80b780000 - 0x00007ff80b78a000 C:\WINDOWS\SYSTEM32\VERSION.dll
313   -0x00007ff80efa0000 - 0x00007ff80efcd000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
314   -0x00007ff815290000 - 0x00007ff8152da000 C:\WINDOWS\System32\cfgmgr32.dll
315   -0x000000005c1e0000 - 0x000000005c1ef000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll
316   -0x000000005c1b0000 - 0x000000005c1d9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll
317   -0x000000005c190000 - 0x000000005c1a6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll
318   -0x00007ff815f00000 - 0x00007ff8165e2000 C:\WINDOWS\System32\SHELL32.dll
319   -0x00007ff8166b0000 - 0x00007ff816759000 C:\WINDOWS\System32\shcore.dll
320   -0x00007ff8148b0000 - 0x00007ff81502c000 C:\WINDOWS\System32\windows.storage.dll
321   -0x00007ff814890000 - 0x00007ff8148af000 C:\WINDOWS\System32\profapi.dll
322   -0x00007ff814800000 - 0x00007ff81484a000 C:\WINDOWS\System32\powrprof.dll
323   -0x00007ff8147f0000 - 0x00007ff814800000 C:\WINDOWS\System32\UMPDC.dll
324   -0x00007ff815e90000 - 0x00007ff815ee2000 C:\WINDOWS\System32\shlwapi.dll
325   -0x00007ff814850000 - 0x00007ff814861000 C:\WINDOWS\System32\kernel.appcore.dll
326   -0x00007ff815430000 - 0x00007ff815447000 C:\WINDOWS\System32\cryptsp.dll
327   -0x000000005c140000 - 0x000000005c14d000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll
328   -0x000000005c170000 - 0x000000005c18a000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll
329   -0x00007ff814060000 - 0x00007ff8140c7000 C:\WINDOWS\system32\mswsock.dll
330   -0x000000005c090000 - 0x000000005c0a1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll
331   -0x00007fffee0e0000 - 0x00007fffee0f6000 C:\WINDOWS\system32\napinsp.dll
332   -0x00007fffee0c0000 - 0x00007fffee0da000 C:\WINDOWS\system32\pnrpnsp.dll
333   -0x00007ff813db0000 - 0x00007ff813e7a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
334   -0x00007ff815d30000 - 0x00007ff815d38000 C:\WINDOWS\System32\NSI.dll
335   -0x00007ff813d70000 - 0x00007ff813daa000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
336   -0x00007fffee750000 - 0x00007fffee75e000 C:\WINDOWS\System32\winrnr.dll
337   -0x00007ff811110000 - 0x00007ff81112c000 C:\WINDOWS\system32\NLAapi.dll
338   -0x00007fffee0a0000 - 0x00007fffee0b5000 C:\WINDOWS\system32\wshbth.dll
339   -0x00007ff80b540000 - 0x00007ff80b54a000 C:\Windows\System32\rasadhlp.dll
340   -0x00007ff80c3b0000 - 0x00007ff80c427000 C:\WINDOWS\System32\fwpuclnt.dll
341   -0x00007ff815690000 - 0x00007ff8156b6000 C:\WINDOWS\System32\bcrypt.dll
342   -0x00007ff813bd0000 - 0x00007ff813c03000 C:\WINDOWS\system32\rsaenh.dll
343   -0x00007ff814710000 - 0x00007ff814735000 C:\WINDOWS\SYSTEM32\USERENV.dll
344   -0x00007ff814230000 - 0x00007ff81423c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
345   -0x00007ff80cab0000 - 0x00007ff80cac6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
346   -0x00007ff80cf90000 - 0x00007ff80cfac000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
347   -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna3609965866630778086.tmp
348   -0x00000000201e0000 - 0x00000000205ab000 C:\lib\HCEHomeCMS.DLL
349   -0x0000000021b00000 - 0x0000000021e8f000 C:\lib\HCEHomeAlarm.DLL
350   -0x0000000021e90000 - 0x0000000022080000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll
351   -0x00007ff805bc0000 - 0x00007ff805bf2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll
352   -0x00007ff813110000 - 0x00007ff813304000 C:\WINDOWS\SYSTEM32\dbghelp.dll
353   -
354   -VM Arguments:
355   -java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5565956513346082042\surefirebooter8213148981028682932.jar C:\Users\taohandong\AppData\Local\Temp\surefire5565956513346082042 2019-08-21T16-56-18_299-jvmRun1 surefire7701440492205456597tmp surefire_0377257057114899889tmp
356   -java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5565956513346082042\surefirebooter8213148981028682932.jar
357   -Launcher Type: SUN_STANDARD
358   -
359   -Environment Variables:
360   -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
361   -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar;
362   -USERNAME=taohandong
363   -OS=Windows_NT
364   -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel
365   -
366   -
367   -
368   ---------------- S Y S T E M ---------------
369   -
370   -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86)
371   -
372   -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
373   -
374   -Memory: 4k page, physical 8218728k(962076k free), swap 16922824k(2676600k free)
375   -
376   -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010)
377   -
378   -time: Wed Aug 21 16:56:22 2019
379   -elapsed time: 3 seconds (0d 0h 0m 3s)
380   -
cloud/haikang/hs_err_pid22004.log
... ... @@ -1,384 +0,0 @@
1   -#
2   -# A fatal error has been detected by the Java Runtime Environment:
3   -#
4   -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000221f643f, pid=22004, tid=0x0000000000000870
5   -#
6   -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
7   -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
8   -# Problematic frame:
9   -# C [HCEHomeAlarm.DLL+0x2643f]
10   -#
11   -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
12   -#
13   -# If you would like to submit a bug report, please visit:
14   -# http://bugreport.java.com/bugreport/crash.jsp
15   -#
16   -
17   ---------------- T H R E A D ---------------
18   -
19   -Current thread (0x0000000018199800): VMThread [stack: 0x0000000019e60000,0x0000000019f60000] [id=2160]
20   -
21   -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
22   -
23   -Registers:
24   -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000
25   -RSP=0x0000000019f5f1c0, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x0000000000d8ee10
26   -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x0000000019f5f250
27   -R12=0x0000000000d85a00, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x0000000000d85ab0
28   -RIP=0x00000000221f643f, EFLAGS=0x0000000000010206
29   -
30   -Top of Stack: (sp=0x0000000019f5f1c0)
31   -0x0000000019f5f1c0: 000000002368efb0 00007ffbf9de07cd
32   -0x0000000019f5f1d0: 0000000000ce5290 0000000c00c90000
33   -0x0000000019f5f1e0: 0000000000d8ee10 000000002228cb11
34   -0x0000000019f5f1f0: 0000000000000000 0000000000000000
35   -0x0000000019f5f200: 0000000000cdb920 0000001ef9ddfba1
36   -0x0000000019f5f210: 0000000000d11f60 00000000221f6bf2
37   -0x0000000019f5f220: 0000000000000000 0000000000000001
38   -0x0000000019f5f230: 0000000000000000 0000000000d85a00
39   -0x0000000019f5f240: 0000000000000001 00000000221f6620
40   -0x0000000019f5f250: 0000000000000000 0000000000d11f60
41   -0x0000000019f5f260: 0000000000d85a00 0000000000000000
42   -0x0000000019f5f270: 0000000000d07f50 0000000018025500
43   -0x0000000019f5f280: 0000000022b4c280 00000000221f5cc8
44   -0x0000000019f5f290: 0000000018025500 0000000000d11f60
45   -0x0000000019f5f2a0: 0000000000000000 0000000000000000
46   -0x0000000019f5f2b0: 0000000022b4c280 000000002228db04
47   -
48   -Instructions: (pc=0x00000000221f643f)
49   -0x00000000221f641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc
50   -0x00000000221f642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20
51   -0x00000000221f643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0
52   -0x00000000221f644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba
53   -
54   -
55   -Register to memory mapping:
56   -
57   -RAX=0x0000000000000001 is an unknown value
58   -RBX=0x0000000000000000 is an unknown value
59   -RCX=0x0000000000000000 is an unknown value
60   -RDX=0x0000000000000000 is an unknown value
61   -RSP=0x0000000019f5f1c0 is an unknown value
62   -RBP=0x0000000000000000 is an unknown value
63   -RSI=0x0000000000000000 is an unknown value
64   -RDI=0x0000000000d8ee10 is an unknown value
65   -R8 =0x0000000000000001 is an unknown value
66   -R9 =0x0000000000000001 is an unknown value
67   -R10=0x0000000000008000 is an unknown value
68   -R11=0x0000000019f5f250 is an unknown value
69   -R12=0x0000000000d85a00 is an unknown value
70   -R13=0x0000000000000000 is an unknown value
71   -R14=0x0000000000000001 is an unknown value
72   -R15=0x0000000000d85ab0 is an unknown value
73   -
74   -
75   -Stack: [0x0000000019e60000,0x0000000019f60000], sp=0x0000000019f5f1c0, free space=1020k
76   -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
77   -
78   -VM_Operation (0x0000000002fdef10): Exit, mode: safepoint, requested by thread 0x0000000002fe7000
79   -
80   -
81   ---------------- P R O C E S S ---------------
82   -
83   -Java Threads: ( => current thread )
84   - 0x000000001a1b5000 JavaThread "Service Thread" daemon [_thread_blocked, id=22420, stack(0x000000001ac60000,0x000000001ad60000)]
85   - 0x000000001a141800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=9276, stack(0x000000001ab60000,0x000000001ac60000)]
86   - 0x000000001a136800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=25160, stack(0x000000001aa60000,0x000000001ab60000)]
87   - 0x000000001a124800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=1524, stack(0x000000001a960000,0x000000001aa60000)]
88   - 0x000000001a12b800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=12112, stack(0x000000001a860000,0x000000001a960000)]
89   - 0x000000001a10f000 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=17780, stack(0x000000001a760000,0x000000001a860000)]
90   - 0x000000001a0f6000 JavaThread "Attach Listener" daemon [_thread_blocked, id=15920, stack(0x000000001a660000,0x000000001a760000)]
91   - 0x00000000030de000 JavaThread "Finalizer" daemon [_thread_blocked, id=18620, stack(0x000000001a460000,0x000000001a560000)]
92   - 0x00000000030dd000 JavaThread "Reference Handler" daemon [_thread_blocked, id=23200, stack(0x0000000019f60000,0x000000001a060000)]
93   - 0x0000000002fe7000 JavaThread "main" [_thread_blocked, id=18820, stack(0x0000000002ee0000,0x0000000002fe0000)]
94   -
95   -Other Threads:
96   -=>0x0000000018199800 VMThread [stack: 0x0000000019e60000,0x0000000019f60000] [id=2160]
97   -
98   -VM state:at safepoint (shutting down)
99   -
100   -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
101   -[0x0000000002fe4020] Threads_lock - owner thread: 0x0000000018199800
102   -
103   -Heap:
104   - PSYoungGen total 175104K, used 147088K [0x00000000d6300000, 0x00000000e4400000, 0x0000000100000000)
105   - eden space 164864K, 89% used [0x00000000d6300000,0x00000000df2a43e8,0x00000000e0400000)
106   - from space 10240K, 0% used [0x00000000e1000000,0x00000000e1000000,0x00000000e1a00000)
107   - to space 12288K, 0% used [0x00000000e0400000,0x00000000e0400000,0x00000000e1000000)
108   - ParOldGen total 83968K, used 16324K [0x0000000082800000, 0x0000000087a00000, 0x00000000d6300000)
109   - object space 83968K, 19% used [0x0000000082800000,0x00000000837f1338,0x0000000087a00000)
110   - Metaspace used 42663K, capacity 44358K, committed 44632K, reserved 1087488K
111   - class space used 5518K, capacity 5851K, committed 5976K, reserved 1048576K
112   -
113   -Card table byte_map: [0x0000000012670000,0x0000000012a60000] byte_map_base: 0x000000001225c000
114   -
115   -Marking Bits: (ParMarkBitMap*) 0x000000006d7b2d00
116   - Begin Bits: [0x0000000013500000, 0x0000000015460000)
117   - End Bits: [0x0000000015460000, 0x00000000173c0000)
118   -
119   -Polling page: 0x0000000001180000
120   -
121   -CodeCache: size=245760Kb used=15344Kb max_used=16192Kb free=230415Kb
122   - bounds [0x00000000032b0000, 0x0000000004290000, 0x00000000122b0000]
123   - total_blobs=4448 nmethods=3951 adapters=409
124   - compilation: enabled
125   -
126   -Compilation events (10 events):
127   -Event: 13.293 Thread 0x000000001a141800 4259 3 java.lang.StringBuilder::append (6 bytes)
128   -Event: 13.294 Thread 0x000000001a141800 nmethod 4259 0x0000000003659bd0 code [0x0000000003659d40, 0x0000000003659fa8]
129   -Event: 13.294 Thread 0x000000001a141800 4261 3 java.lang.invoke.MethodHandles$Lookup::getDirectMethodForConstant (70 bytes)
130   -Event: 13.296 Thread 0x000000001a141800 nmethod 4261 0x0000000004277ed0 code [0x0000000004278140, 0x0000000004279048]
131   -Event: 13.296 Thread 0x000000001a141800 4263 1 java.util.concurrent.ConcurrentHashMap$MapEntry::getValue (5 bytes)
132   -Event: 13.297 Thread 0x000000001a141800 nmethod 4263 0x00000000035d5f50 code [0x00000000035d60a0, 0x00000000035d61b0]
133   -Event: 13.298 Thread 0x000000001a141800 4264 ! 3 java.util.concurrent.ConcurrentHashMap::clear (176 bytes)
134   -Event: 13.300 Thread 0x000000001a141800 nmethod 4264 0x00000000033dc210 code [0x00000000033dc400, 0x00000000033dd0d8]
135   -Event: 13.300 Thread 0x000000001a141800 4265 3 java.io.OutputStream::flush (1 bytes)
136   -Event: 13.301 Thread 0x000000001a141800 nmethod 4265 0x00000000034d7110 code [0x00000000034d7260, 0x00000000034d73b0]
137   -
138   -GC Heap History (10 events):
139   -Event: 2.529 GC heap before
140   -{Heap before GC invocations=6 (full 1):
141   - PSYoungGen total 70656K, used 5113K [0x00000000d6300000, 0x00000000df200000, 0x0000000100000000)
142   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
143   - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fe520,0x00000000da800000)
144   - to space 7680K, 0% used [0x00000000dea80000,0x00000000dea80000,0x00000000df200000)
145   - ParOldGen total 86016K, used 5366K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
146   - object space 86016K, 6% used [0x0000000082800000,0x0000000082d3db10,0x0000000087c00000)
147   - Metaspace used 20622K, capacity 21174K, committed 21248K, reserved 1067008K
148   - class space used 2662K, capacity 2801K, committed 2816K, reserved 1048576K
149   -Event: 2.565 GC heap after
150   -Heap after GC invocations=6 (full 1):
151   - PSYoungGen total 70656K, used 0K [0x00000000d6300000, 0x00000000df200000, 0x0000000100000000)
152   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
153   - from space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
154   - to space 7680K, 0% used [0x00000000dea80000,0x00000000dea80000,0x00000000df200000)
155   - ParOldGen total 53248K, used 6211K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000)
156   - object space 53248K, 11% used [0x0000000082800000,0x0000000082e10c38,0x0000000085c00000)
157   - Metaspace used 20622K, capacity 21174K, committed 21248K, reserved 1067008K
158   - class space used 2662K, capacity 2801K, committed 2816K, reserved 1048576K
159   -}
160   -Event: 3.166 GC heap before
161   -{Heap before GC invocations=7 (full 1):
162   - PSYoungGen total 70656K, used 65536K [0x00000000d6300000, 0x00000000df200000, 0x0000000100000000)
163   - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000)
164   - from space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
165   - to space 7680K, 0% used [0x00000000dea80000,0x00000000dea80000,0x00000000df200000)
166   - ParOldGen total 53248K, used 6211K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000)
167   - object space 53248K, 11% used [0x0000000082800000,0x0000000082e10c38,0x0000000085c00000)
168   - Metaspace used 25556K, capacity 26402K, committed 26624K, reserved 1073152K
169   - class space used 3295K, capacity 3515K, committed 3584K, reserved 1048576K
170   -Event: 3.176 GC heap after
171   -Heap after GC invocations=7 (full 1):
172   - PSYoungGen total 113664K, used 6723K [0x00000000d6300000, 0x00000000df180000, 0x0000000100000000)
173   - eden space 106496K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dcb00000)
174   - from space 7168K, 93% used [0x00000000dea80000,0x00000000df110cb8,0x00000000df180000)
175   - to space 8192K, 0% used [0x00000000de180000,0x00000000de180000,0x00000000de980000)
176   - ParOldGen total 53248K, used 6283K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000)
177   - object space 53248K, 11% used [0x0000000082800000,0x0000000082e22c48,0x0000000085c00000)
178   - Metaspace used 25556K, capacity 26402K, committed 26624K, reserved 1073152K
179   - class space used 3295K, capacity 3515K, committed 3584K, reserved 1048576K
180   -}
181   -Event: 7.676 GC heap before
182   -{Heap before GC invocations=8 (full 1):
183   - PSYoungGen total 113664K, used 113219K [0x00000000d6300000, 0x00000000df180000, 0x0000000100000000)
184   - eden space 106496K, 100% used [0x00000000d6300000,0x00000000dcb00000,0x00000000dcb00000)
185   - from space 7168K, 93% used [0x00000000dea80000,0x00000000df110cb8,0x00000000df180000)
186   - to space 8192K, 0% used [0x00000000de180000,0x00000000de180000,0x00000000de980000)
187   - ParOldGen total 53248K, used 6283K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000)
188   - object space 53248K, 11% used [0x0000000082800000,0x0000000082e22c48,0x0000000085c00000)
189   - Metaspace used 32645K, capacity 33996K, committed 34176K, reserved 1079296K
190   - class space used 4200K, capacity 4474K, committed 4480K, reserved 1048576K
191   -Event: 7.689 GC heap after
192   -Heap after GC invocations=8 (full 1):
193   - PSYoungGen total 137728K, used 8176K [0x00000000d6300000, 0x00000000e1a00000, 0x0000000100000000)
194   - eden space 129536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000de180000)
195   - from space 8192K, 99% used [0x00000000de180000,0x00000000de97c030,0x00000000de980000)
196   - to space 10240K, 0% used [0x00000000e1000000,0x00000000e1000000,0x00000000e1a00000)
197   - ParOldGen total 53248K, used 9624K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000)
198   - object space 53248K, 18% used [0x0000000082800000,0x00000000831661c8,0x0000000085c00000)
199   - Metaspace used 32645K, capacity 33996K, committed 34176K, reserved 1079296K
200   - class space used 4200K, capacity 4474K, committed 4480K, reserved 1048576K
201   -}
202   -Event: 8.166 GC heap before
203   -{Heap before GC invocations=9 (full 1):
204   - PSYoungGen total 137728K, used 74794K [0x00000000d6300000, 0x00000000e1a00000, 0x0000000100000000)
205   - eden space 129536K, 51% used [0x00000000d6300000,0x00000000da40e808,0x00000000de180000)
206   - from space 8192K, 99% used [0x00000000de180000,0x00000000de97c030,0x00000000de980000)
207   - to space 10240K, 0% used [0x00000000e1000000,0x00000000e1000000,0x00000000e1a00000)
208   - ParOldGen total 53248K, used 9624K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000)
209   - object space 53248K, 18% used [0x0000000082800000,0x00000000831661c8,0x0000000085c00000)
210   - Metaspace used 33921K, capacity 35352K, committed 35416K, reserved 1079296K
211   - class space used 4360K, capacity 4640K, committed 4696K, reserved 1048576K
212   -Event: 8.180 GC heap after
213   -Heap after GC invocations=9 (full 1):
214   - PSYoungGen total 175104K, used 10212K [0x00000000d6300000, 0x00000000e4400000, 0x0000000100000000)
215   - eden space 164864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e0400000)
216   - from space 10240K, 99% used [0x00000000e1000000,0x00000000e19f9040,0x00000000e1a00000)
217   - to space 12288K, 0% used [0x00000000e0400000,0x00000000e0400000,0x00000000e1000000)
218   - ParOldGen total 53248K, used 11027K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000)
219   - object space 53248K, 20% used [0x0000000082800000,0x00000000832c4ca8,0x0000000085c00000)
220   - Metaspace used 33921K, capacity 35352K, committed 35416K, reserved 1079296K
221   - class space used 4360K, capacity 4640K, committed 4696K, reserved 1048576K
222   -}
223   -Event: 8.180 GC heap before
224   -{Heap before GC invocations=10 (full 2):
225   - PSYoungGen total 175104K, used 10212K [0x00000000d6300000, 0x00000000e4400000, 0x0000000100000000)
226   - eden space 164864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e0400000)
227   - from space 10240K, 99% used [0x00000000e1000000,0x00000000e19f9040,0x00000000e1a00000)
228   - to space 12288K, 0% used [0x00000000e0400000,0x00000000e0400000,0x00000000e1000000)
229   - ParOldGen total 53248K, used 11027K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000)
230   - object space 53248K, 20% used [0x0000000082800000,0x00000000832c4ca8,0x0000000085c00000)
231   - Metaspace used 33921K, capacity 35352K, committed 35416K, reserved 1079296K
232   - class space used 4360K, capacity 4640K, committed 4696K, reserved 1048576K
233   -Event: 8.271 GC heap after
234   -Heap after GC invocations=10 (full 2):
235   - PSYoungGen total 175104K, used 0K [0x00000000d6300000, 0x00000000e4400000, 0x0000000100000000)
236   - eden space 164864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e0400000)
237   - from space 10240K, 0% used [0x00000000e1000000,0x00000000e1000000,0x00000000e1a00000)
238   - to space 12288K, 0% used [0x00000000e0400000,0x00000000e0400000,0x00000000e1000000)
239   - ParOldGen total 83968K, used 16324K [0x0000000082800000, 0x0000000087a00000, 0x00000000d6300000)
240   - object space 83968K, 19% used [0x0000000082800000,0x00000000837f1338,0x0000000087a00000)
241   - Metaspace used 33921K, capacity 35352K, committed 35416K, reserved 1079296K
242   - class space used 4360K, capacity 4640K, committed 4696K, reserved 1048576K
243   -}
244   -
245   -Deoptimization events (10 events):
246   -Event: 12.831 Thread 0x0000000002fe7000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003eaf94c method=java.util.jar.JarFile.maybeInstantiateVerifier()V @ 79
247   -Event: 12.834 Thread 0x0000000002fe7000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003833a2c method=java.net.URL.<init>(Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V @ 504
248   -Event: 12.838 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003833d90 method=sun.net.www.protocol.jar.Handler.parseURL(Ljava/net/URL;Ljava/lang/String;II)V @ 94
249   -Event: 12.847 Thread 0x0000000002fe7000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x00000000038bfd10 method=java.util.Properties$LineReader.readLine()I @ 410
250   -Event: 13.071 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000423a388 method=java.lang.StringCoding$StringDecoder.decode([BII)[C @ 33
251   -Event: 13.102 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003dd5388 method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 162
252   -Event: 13.103 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000036c7c74 method=java.util.HashMap.resize()[Ljava/util/HashMap$Node; @ 206
253   -Event: 13.130 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000004243760 method=java.lang.StringCoding$StringDecoder.decode([BII)[C @ 33
254   -Event: 13.130 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000423711c method=java.lang.StringCoding$StringDecoder.decode([BII)[C @ 33
255   -Event: 13.234 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000004175ae4 method=java.util.regex.Pattern$Curly.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 45
256   -
257   -Classes redefined (0 events):
258   -No events
259   -
260   -Internal exceptions (10 events):
261   -Event: 9.075 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/InitializingBeanCustomizer> (0x00000000db6488d0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp
262   -Event: 9.075 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/DisposableBeanCustomizer> (0x00000000db65fae0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
263   -Event: 9.084 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000db6fd4b8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
264   -Event: 9.085 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/support/StandardServletMultipartResolverCustomizer> (0x00000000db71ec60) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\class
265   -Event: 9.086 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/MultipartResolverCustomizer> (0x00000000db73bb38) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c
266   -Event: 12.217 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000dbb020a0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
267   -Event: 12.217 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000dbb1b720) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
268   -Event: 12.489 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000dccf4fe0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
269   -Event: 12.490 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/bean/AttendanceBeanCustomizer> (0x00000000dcd0d128) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210
270   -Event: 13.150 Thread 0x000000001a1c2800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x00000000de471178) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\prims\jvm.cpp, line 3273]
271   -
272   -Events (10 events):
273   -Event: 13.303 Executing VM operation: RevokeBias
274   -Event: 13.303 Executing VM operation: RevokeBias done
275   -Event: 13.304 Executing VM operation: BulkRevokeBias
276   -Event: 13.304 Executing VM operation: BulkRevokeBias done
277   -Event: 13.305 Thread 0x000000001a1c7000 Thread exited: 0x000000001a1c7000
278   -Event: 13.309 loading class java/lang/ProcessImpl$2
279   -Event: 13.309 loading class java/lang/ProcessImpl$2 done
280   -Event: 13.309 Thread 0x000000001a1c5800 Thread exited: 0x000000001a1c5800
281   -Event: 13.310 Thread 0x000000001a0f4000 Thread exited: 0x000000001a0f4000
282   -Event: 13.310 Executing VM operation: Exit
283   -
284   -
285   -Dynamic libraries:
286   -0x00007ff619d90000 - 0x00007ff619dc7000 C:\Program Files\Java\jdk1.8.0_181\bin\java.exe
287   -0x00007ffbf9da0000 - 0x00007ffbf9f90000 C:\WINDOWS\SYSTEM32\ntdll.dll
288   -0x00007ffbf9210000 - 0x00007ffbf92c2000 C:\WINDOWS\System32\KERNEL32.DLL
289   -0x00007ffbf7750000 - 0x00007ffbf79f3000 C:\WINDOWS\System32\KERNELBASE.dll
290   -0x00007ffbf9c30000 - 0x00007ffbf9cd3000 C:\WINDOWS\System32\ADVAPI32.dll
291   -0x00007ffbf9330000 - 0x00007ffbf93ce000 C:\WINDOWS\System32\msvcrt.dll
292   -0x00007ffbf9ae0000 - 0x00007ffbf9b77000 C:\WINDOWS\System32\sechost.dll
293   -0x00007ffbf8050000 - 0x00007ffbf8170000 C:\WINDOWS\System32\RPCRT4.dll
294   -0x00007ffbf8170000 - 0x00007ffbf8303000 C:\WINDOWS\System32\USER32.dll
295   -0x00007ffbf74b0000 - 0x00007ffbf74d1000 C:\WINDOWS\System32\win32u.dll
296   -0x00007ffbf85d0000 - 0x00007ffbf85f6000 C:\WINDOWS\System32\GDI32.dll
297   -0x00007ffbf7a00000 - 0x00007ffbf7b94000 C:\WINDOWS\System32\gdi32full.dll
298   -0x00007ffbf76b0000 - 0x00007ffbf774e000 C:\WINDOWS\System32\msvcp_win.dll
299   -0x00007ffbf75b0000 - 0x00007ffbf76aa000 C:\WINDOWS\System32\ucrtbase.dll
300   -0x00007ffbddc80000 - 0x00007ffbddf05000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll
301   -0x00007ffbf96f0000 - 0x00007ffbf9a26000 C:\WINDOWS\System32\combase.dll
302   -0x00007ffbf7510000 - 0x00007ffbf7590000 C:\WINDOWS\System32\bcryptPrimitives.dll
303   -0x00007ffbf93d0000 - 0x00007ffbf93fe000 C:\WINDOWS\System32\IMM32.DLL
304   -0x000000006d840000 - 0x000000006d912000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll
305   -0x000000006cf90000 - 0x000000006d832000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
306   -0x00007ffbf83e0000 - 0x00007ffbf83e8000 C:\WINDOWS\System32\PSAPI.DLL
307   -0x00007ffbf1c20000 - 0x00007ffbf1c44000 C:\WINDOWS\SYSTEM32\WINMM.dll
308   -0x00007ffbe28a0000 - 0x00007ffbe28a9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
309   -0x00007ffbf9400000 - 0x00007ffbf946f000 C:\WINDOWS\System32\WS2_32.dll
310   -0x00007ffbee7a0000 - 0x00007ffbee7aa000 C:\WINDOWS\SYSTEM32\VERSION.dll
311   -0x00007ffbf1b60000 - 0x00007ffbf1b8d000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
312   -0x00007ffbf7ba0000 - 0x00007ffbf7bea000 C:\WINDOWS\System32\cfgmgr32.dll
313   -0x000000006cf80000 - 0x000000006cf8f000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll
314   -0x000000006cf50000 - 0x000000006cf79000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll
315   -0x000000006af80000 - 0x000000006afa3000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\instrument.dll
316   -0x000000006cf30000 - 0x000000006cf46000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll
317   -0x00007ffbf8600000 - 0x00007ffbf8ce2000 C:\WINDOWS\System32\SHELL32.dll
318   -0x00007ffbf8cf0000 - 0x00007ffbf8d99000 C:\WINDOWS\System32\shcore.dll
319   -0x00007ffbf6d30000 - 0x00007ffbf74ac000 C:\WINDOWS\System32\windows.storage.dll
320   -0x00007ffbf6c80000 - 0x00007ffbf6c9f000 C:\WINDOWS\System32\profapi.dll
321   -0x00007ffbf6ce0000 - 0x00007ffbf6d2a000 C:\WINDOWS\System32\powrprof.dll
322   -0x00007ffbf6c70000 - 0x00007ffbf6c80000 C:\WINDOWS\System32\UMPDC.dll
323   -0x00007ffbf7ff0000 - 0x00007ffbf8042000 C:\WINDOWS\System32\shlwapi.dll
324   -0x00007ffbf6ca0000 - 0x00007ffbf6cb1000 C:\WINDOWS\System32\kernel.appcore.dll
325   -0x00007ffbf7590000 - 0x00007ffbf75a7000 C:\WINDOWS\System32\cryptsp.dll
326   -0x000000006ce60000 - 0x000000006ce7a000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll
327   -0x00007ffbf64e0000 - 0x00007ffbf6547000 C:\WINDOWS\system32\mswsock.dll
328   -0x000000006ce30000 - 0x000000006ce41000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll
329   -0x000000006ce50000 - 0x000000006ce5d000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll
330   -0x00007ffbccb40000 - 0x00007ffbccb56000 C:\WINDOWS\system32\napinsp.dll
331   -0x00007ffbccb00000 - 0x00007ffbccb1a000 C:\WINDOWS\system32\pnrpnsp.dll
332   -0x00007ffbf6230000 - 0x00007ffbf62fa000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
333   -0x00007ffbf9c20000 - 0x00007ffbf9c28000 C:\WINDOWS\System32\NSI.dll
334   -0x00007ffbf61f0000 - 0x00007ffbf622a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
335   -0x00007ffbccaf0000 - 0x00007ffbccafe000 C:\WINDOWS\System32\winrnr.dll
336   -0x00007ffbf4030000 - 0x00007ffbf404c000 C:\WINDOWS\system32\NLAapi.dll
337   -0x00007ffbccab0000 - 0x00007ffbccac5000 C:\WINDOWS\system32\wshbth.dll
338   -0x00007ffbe6680000 - 0x00007ffbe668a000 C:\Windows\System32\rasadhlp.dll
339   -0x00007ffbeecb0000 - 0x00007ffbeed27000 C:\WINDOWS\System32\fwpuclnt.dll
340   -0x00007ffbf74e0000 - 0x00007ffbf7506000 C:\WINDOWS\System32\bcrypt.dll
341   -0x00007ffbf6050000 - 0x00007ffbf6083000 C:\WINDOWS\system32\rsaenh.dll
342   -0x00007ffbf6b90000 - 0x00007ffbf6bb5000 C:\WINDOWS\SYSTEM32\USERENV.dll
343   -0x00007ffbf66b0000 - 0x00007ffbf66bc000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
344   -0x00007ffbef950000 - 0x00007ffbef966000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
345   -0x00007ffbf0aa0000 - 0x00007ffbf0abc000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
346   -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna4968776932763510600.tmp
347   -0x0000000020c50000 - 0x000000002101b000 C:\lib\HCEHomeCMS.DLL
348   -0x00000000221d0000 - 0x000000002255f000 C:\lib\HCEHomeAlarm.DLL
349   -0x0000000022560000 - 0x0000000022750000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll
350   -0x00007ffbc00e0000 - 0x00007ffbc0112000 C:\Program Files\Intel\WiFi\bin\zlib1.dll
351   -0x000000006c800000 - 0x000000006c824000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunec.dll
352   -0x000000006c380000 - 0x000000006c38b000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunmscapi.dll
353   -0x00007ffbf7d00000 - 0x00007ffbf7e49000 C:\WINDOWS\System32\CRYPT32.dll
354   -0x00007ffbf6cc0000 - 0x00007ffbf6cd2000 C:\WINDOWS\System32\MSASN1.dll
355   -0x00007ffbf4bc0000 - 0x00007ffbf4db4000 C:\WINDOWS\SYSTEM32\dbghelp.dll
356   -
357   -VM Arguments:
358   -jvm_args: -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\lib\idea_rt.jar=60274:C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\bin -Dfile.encoding=UTF-8
359   -java_command: com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 com.sincere.haikang.HaikangApplicationTests,contextLoads
360   -java_class_path (initial): C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\lib\idea_rt.jar;C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\plugins\junit\lib\junit-rt.jar;C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\plugins\junit\lib\junit5-rt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\rt.jar;C:\TaoHandong\Java_Code\mycloud\cloud\haikang\target\test-classes;C:\TaoHandong\Java_Code\mycloud\cloud\haikang\target\classes;C:\Users\taohandong\.m2\repository\org\springframework\boot\spring-boot-starter\2.1.7.RELEASE\spring-boot-starter-2.1.7.RELEASE.jar;C:\Users\taohandong\.m2\repository\org\springframework\boot\spring-boot\2.1.7.RELEASE\spring-boot-2.1.7.RELEASE.jar;C:\Users\taohandong\.m2\repository\org\springframework\sp
361   -Launcher Type: SUN_STANDARD
362   -
363   -Environment Variables:
364   -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
365   -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar;
366   -USERNAME=taohandong
367   -OS=Windows_NT
368   -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel
369   -
370   -
371   -
372   ---------------- S Y S T E M ---------------
373   -
374   -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86)
375   -
376   -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
377   -
378   -Memory: 4k page, physical 8218728k(475884k free), swap 17090008k(2497472k free)
379   -
380   -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010)
381   -
382   -time: Fri Aug 23 11:03:44 2019
383   -elapsed time: 13 seconds (0d 0h 0m 13s)
384   -
cloud/haikang/hs_err_pid2220.log
... ... @@ -1,380 +0,0 @@
1   -#
2   -# A fatal error has been detected by the Java Runtime Environment:
3   -#
4   -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000202d643f, pid=2220, tid=0x00000000000039a0
5   -#
6   -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
7   -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
8   -# Problematic frame:
9   -# C [HCEHomeAlarm.DLL+0x2643f]
10   -#
11   -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
12   -#
13   -# If you would like to submit a bug report, please visit:
14   -# http://bugreport.java.com/bugreport/crash.jsp
15   -#
16   -
17   ---------------- T H R E A D ---------------
18   -
19   -Current thread (0x00000000181f8800): VMThread [stack: 0x0000000019ef0000,0x0000000019ff0000] [id=14752]
20   -
21   -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
22   -
23   -Registers:
24   -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000
25   -RSP=0x0000000019fef120, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x000000001ea9ee20
26   -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x0000000019fef1b0
27   -R12=0x0000000001094d60, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x0000000001094e10
28   -RIP=0x00000000202d643f, EFLAGS=0x0000000000010202
29   -
30   -Top of Stack: (sp=0x0000000019fef120)
31   -0x0000000019fef120: 000000002235e890 00007ff8179607cd
32   -0x0000000019fef130: 00000000010a97c0 0000002501040000
33   -0x0000000019fef140: 000000001ea9ee20 000000002036cb11
34   -0x0000000019fef150: 0000000000000000 0000000000000000
35   -0x0000000019fef160: 00000000010a9700 000000071795fba1
36   -0x0000000019fef170: 000000001e9b56e0 00000000202d6bf2
37   -0x0000000019fef180: 0000000000000000 0000000000000001
38   -0x0000000019fef190: 0000000000000000 0000000001094d60
39   -0x0000000019fef1a0: 0000000000000001 00000000202d6620
40   -0x0000000019fef1b0: 0000000000000000 000000001e9b56e0
41   -0x0000000019fef1c0: 0000000001094d60 0000000000000000
42   -0x0000000019fef1d0: 00000000010b6270 0000000018085400
43   -0x0000000019fef1e0: 0000000021cbf470 00000000202d5cc8
44   -0x0000000019fef1f0: 0000000018085400 000000001e9b56e0
45   -0x0000000019fef200: 0000000000000000 0000000000000000
46   -0x0000000019fef210: 0000000021cbf470 000000002036db04
47   -
48   -Instructions: (pc=0x00000000202d643f)
49   -0x00000000202d641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc
50   -0x00000000202d642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20
51   -0x00000000202d643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0
52   -0x00000000202d644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba
53   -
54   -
55   -Register to memory mapping:
56   -
57   -RAX=0x0000000000000001 is an unknown value
58   -RBX=0x0000000000000000 is an unknown value
59   -RCX=0x0000000000000000 is an unknown value
60   -RDX=0x0000000000000000 is an unknown value
61   -RSP=0x0000000019fef120 is an unknown value
62   -RBP=0x0000000000000000 is an unknown value
63   -RSI=0x0000000000000000 is an unknown value
64   -RDI=0x000000001ea9ee20 is an unknown value
65   -R8 =0x0000000000000001 is an unknown value
66   -R9 =0x0000000000000001 is an unknown value
67   -R10=0x0000000000008000 is an unknown value
68   -R11=0x0000000019fef1b0 is an unknown value
69   -R12=0x0000000001094d60 is an unknown value
70   -R13=0x0000000000000000 is an unknown value
71   -R14=0x0000000000000001 is an unknown value
72   -R15=0x0000000001094e10 is an unknown value
73   -
74   -
75   -Stack: [0x0000000019ef0000,0x0000000019ff0000], sp=0x0000000019fef120, free space=1020k
76   -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
77   -
78   -VM_Operation (0x00000000031ff360): Exit, mode: safepoint, requested by thread 0x0000000003213000
79   -
80   -
81   ---------------- P R O C E S S ---------------
82   -
83   -Java Threads: ( => current thread )
84   - 0x000000001faa3800 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=11540, stack(0x0000000022eb0000,0x0000000022fb0000)]
85   - 0x000000001a2f1000 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=16836, stack(0x000000001ae50000,0x000000001af50000)]
86   - 0x000000001a20f000 JavaThread "Service Thread" daemon [_thread_blocked, id=21452, stack(0x000000001ac50000,0x000000001ad50000)]
87   - 0x000000001a189800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=7672, stack(0x000000001ab50000,0x000000001ac50000)]
88   - 0x000000001a181800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=20328, stack(0x000000001aa50000,0x000000001ab50000)]
89   - 0x000000001a180800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=19344, stack(0x000000001a950000,0x000000001aa50000)]
90   - 0x000000001a17e000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=13628, stack(0x000000001a850000,0x000000001a950000)]
91   - 0x000000001a129800 JavaThread "Attach Listener" daemon [_thread_blocked, id=5136, stack(0x000000001a750000,0x000000001a850000)]
92   - 0x000000001a128000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=14660, stack(0x000000001a650000,0x000000001a750000)]
93   - 0x000000001a110800 JavaThread "Finalizer" daemon [_thread_blocked, id=8776, stack(0x000000001a4f0000,0x000000001a5f0000)]
94   - 0x00000000181fd800 JavaThread "Reference Handler" daemon [_thread_blocked, id=19528, stack(0x0000000019ff0000,0x000000001a0f0000)]
95   - 0x0000000003213000 JavaThread "main" [_thread_blocked, id=10968, stack(0x0000000003100000,0x0000000003200000)]
96   -
97   -Other Threads:
98   -=>0x00000000181f8800 VMThread [stack: 0x0000000019ef0000,0x0000000019ff0000] [id=14752]
99   -
100   -VM state:at safepoint (shutting down)
101   -
102   -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
103   -[0x000000000320e370] Threads_lock - owner thread: 0x00000000181f8800
104   -
105   -Heap:
106   - PSYoungGen total 111616K, used 8881K [0x00000000d6300000, 0x00000000e0c00000, 0x0000000100000000)
107   - eden space 102400K, 8% used [0x00000000d6300000,0x00000000d6bac558,0x00000000dc700000)
108   - from space 9216K, 0% used [0x00000000dc700000,0x00000000dc700000,0x00000000dd000000)
109   - to space 9728K, 0% used [0x00000000e0280000,0x00000000e0280000,0x00000000e0c00000)
110   - ParOldGen total 88576K, used 13311K [0x0000000082800000, 0x0000000087e80000, 0x00000000d6300000)
111   - object space 88576K, 15% used [0x0000000082800000,0x00000000834ffcb8,0x0000000087e80000)
112   - Metaspace used 34107K, capacity 35636K, committed 35880K, reserved 1081344K
113   - class space used 4507K, capacity 4790K, committed 4912K, reserved 1048576K
114   -
115   -Card table byte_map: [0x00000000126d0000,0x0000000012ac0000] byte_map_base: 0x00000000122bc000
116   -
117   -Marking Bits: (ParMarkBitMap*) 0x000000005ca12d00
118   - Begin Bits: [0x0000000013560000, 0x00000000154c0000)
119   - End Bits: [0x00000000154c0000, 0x0000000017420000)
120   -
121   -Polling page: 0x0000000001480000
122   -
123   -CodeCache: size=245760Kb used=12251Kb max_used=12277Kb free=233508Kb
124   - bounds [0x0000000003310000, 0x0000000003f20000, 0x0000000012310000]
125   - total_blobs=3746 nmethods=3324 adapters=334
126   - compilation: enabled
127   -
128   -Compilation events (10 events):
129   -Event: 3.100 Thread 0x000000001a189800 3323 3 java.util.logging.LogManager::access$100 (4 bytes)
130   -Event: 3.100 Thread 0x000000001a189800 nmethod 3323 0x0000000003ec7b90 code [0x0000000003ec7ce0, 0x0000000003ec7e10]
131   -Event: 3.100 Thread 0x000000001a189800 3325 3 java.util.HashSet::remove (20 bytes)
132   -Event: 3.100 Thread 0x000000001a189800 nmethod 3325 0x0000000003ec2090 code [0x0000000003ec2200, 0x0000000003ec2488]
133   -Event: 3.101 Thread 0x000000001a189800 3324 3 java.util.logging.LogManager$LoggerContext::requiresDefaultLoggers (29 bytes)
134   -Event: 3.101 Thread 0x000000001a189800 nmethod 3324 0x0000000003edb7d0 code [0x0000000003edb940, 0x0000000003edbd68]
135   -Event: 3.101 Thread 0x000000001a189800 3326 1 java.util.concurrent.ConcurrentHashMap$MapEntry::getValue (5 bytes)
136   -Event: 3.101 Thread 0x000000001a189800 nmethod 3326 0x0000000003ec1dd0 code [0x0000000003ec1f20, 0x0000000003ec2030]
137   -Event: 3.102 Thread 0x000000001a189800 3327 1 ch.qos.logback.core.pattern.Converter::getNext (5 bytes)
138   -Event: 3.102 Thread 0x000000001a189800 nmethod 3327 0x0000000003ec1a50 code [0x0000000003ec1ba0, 0x0000000003ec1cb0]
139   -
140   -GC Heap History (10 events):
141   -Event: 1.083 GC heap before
142   -{Heap before GC invocations=5 (full 1):
143   - PSYoungGen total 70656K, used 5107K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000)
144   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
145   - from space 5120K, 99% used [0x00000000da800000,0x00000000dacfce08,0x00000000dad00000)
146   - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
147   - ParOldGen total 86016K, used 6531K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
148   - object space 86016K, 7% used [0x0000000082800000,0x0000000082e60d98,0x0000000087c00000)
149   - Metaspace used 20671K, capacity 21230K, committed 21296K, reserved 1067008K
150   - class space used 2664K, capacity 2841K, committed 2864K, reserved 1048576K
151   -Event: 1.105 GC heap after
152   -Heap after GC invocations=5 (full 1):
153   - PSYoungGen total 70656K, used 0K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000)
154   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
155   - from space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000)
156   - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
157   - ParOldGen total 56832K, used 7412K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
158   - object space 56832K, 13% used [0x0000000082800000,0x0000000082f3d390,0x0000000085f80000)
159   - Metaspace used 20671K, capacity 21230K, committed 21296K, reserved 1067008K
160   - class space used 2664K, capacity 2841K, committed 2864K, reserved 1048576K
161   -}
162   -Event: 1.573 GC heap before
163   -{Heap before GC invocations=6 (full 1):
164   - PSYoungGen total 70656K, used 65536K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000)
165   - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000)
166   - from space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000)
167   - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
168   - ParOldGen total 56832K, used 7412K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
169   - object space 56832K, 13% used [0x0000000082800000,0x0000000082f3d390,0x0000000085f80000)
170   - Metaspace used 27692K, capacity 28498K, committed 28592K, reserved 1075200K
171   - class space used 3554K, capacity 3741K, committed 3760K, reserved 1048576K
172   -Event: 1.588 GC heap after
173   -Heap after GC invocations=6 (full 1):
174   - PSYoungGen total 70656K, used 5096K [0x00000000d6300000, 0x00000000dda00000, 0x0000000100000000)
175   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
176   - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fa378,0x00000000da800000)
177   - to space 8704K, 0% used [0x00000000dd180000,0x00000000dd180000,0x00000000dda00000)
178   - ParOldGen total 56832K, used 10658K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
179   - object space 56832K, 18% used [0x0000000082800000,0x00000000832688b0,0x0000000085f80000)
180   - Metaspace used 27692K, capacity 28498K, committed 28592K, reserved 1075200K
181   - class space used 3554K, capacity 3741K, committed 3760K, reserved 1048576K
182   -}
183   -Event: 2.312 GC heap before
184   -{Heap before GC invocations=7 (full 1):
185   - PSYoungGen total 70656K, used 70632K [0x00000000d6300000, 0x00000000dda00000, 0x0000000100000000)
186   - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000)
187   - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fa378,0x00000000da800000)
188   - to space 8704K, 0% used [0x00000000dd180000,0x00000000dd180000,0x00000000dda00000)
189   - ParOldGen total 56832K, used 10658K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
190   - object space 56832K, 18% used [0x0000000082800000,0x00000000832688b0,0x0000000085f80000)
191   - Metaspace used 30879K, capacity 32242K, committed 32432K, reserved 1077248K
192   - class space used 3976K, capacity 4245K, committed 4272K, reserved 1048576K
193   -Event: 2.318 GC heap after
194   -Heap after GC invocations=7 (full 1):
195   - PSYoungGen total 109056K, used 7659K [0x00000000d6300000, 0x00000000dd900000, 0x0000000100000000)
196   - eden space 101376K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc600000)
197   - from space 7680K, 99% used [0x00000000dd180000,0x00000000dd8fafe8,0x00000000dd900000)
198   - to space 9216K, 0% used [0x00000000dc700000,0x00000000dc700000,0x00000000dd000000)
199   - ParOldGen total 56832K, used 10666K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
200   - object space 56832K, 18% used [0x0000000082800000,0x000000008326a8b0,0x0000000085f80000)
201   - Metaspace used 30879K, capacity 32242K, committed 32432K, reserved 1077248K
202   - class space used 3976K, capacity 4245K, committed 4272K, reserved 1048576K
203   -}
204   -Event: 2.980 GC heap before
205   -{Heap before GC invocations=8 (full 1):
206   - PSYoungGen total 109056K, used 88026K [0x00000000d6300000, 0x00000000dd900000, 0x0000000100000000)
207   - eden space 101376K, 79% used [0x00000000d6300000,0x00000000db17b858,0x00000000dc600000)
208   - from space 7680K, 99% used [0x00000000dd180000,0x00000000dd8fafe8,0x00000000dd900000)
209   - to space 9216K, 0% used [0x00000000dc700000,0x00000000dc700000,0x00000000dd000000)
210   - ParOldGen total 56832K, used 10666K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
211   - object space 56832K, 18% used [0x0000000082800000,0x000000008326a8b0,0x0000000085f80000)
212   - Metaspace used 33936K, capacity 35464K, committed 35496K, reserved 1079296K
213   - class space used 4465K, capacity 4754K, committed 4784K, reserved 1048576K
214   -Event: 2.989 GC heap after
215   -Heap after GC invocations=8 (full 1):
216   - PSYoungGen total 111616K, used 9192K [0x00000000d6300000, 0x00000000e0c00000, 0x0000000100000000)
217   - eden space 102400K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc700000)
218   - from space 9216K, 99% used [0x00000000dc700000,0x00000000dcffa070,0x00000000dd000000)
219   - to space 9728K, 0% used [0x00000000e0280000,0x00000000e0280000,0x00000000e0c00000)
220   - ParOldGen total 56832K, used 10912K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
221   - object space 56832K, 19% used [0x0000000082800000,0x00000000832a83d0,0x0000000085f80000)
222   - Metaspace used 33936K, capacity 35464K, committed 35496K, reserved 1079296K
223   - class space used 4465K, capacity 4754K, committed 4784K, reserved 1048576K
224   -}
225   -Event: 2.989 GC heap before
226   -{Heap before GC invocations=9 (full 2):
227   - PSYoungGen total 111616K, used 9192K [0x00000000d6300000, 0x00000000e0c00000, 0x0000000100000000)
228   - eden space 102400K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc700000)
229   - from space 9216K, 99% used [0x00000000dc700000,0x00000000dcffa070,0x00000000dd000000)
230   - to space 9728K, 0% used [0x00000000e0280000,0x00000000e0280000,0x00000000e0c00000)
231   - ParOldGen total 56832K, used 10912K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
232   - object space 56832K, 19% used [0x0000000082800000,0x00000000832a83d0,0x0000000085f80000)
233   - Metaspace used 33936K, capacity 35464K, committed 35496K, reserved 1079296K
234   - class space used 4465K, capacity 4754K, committed 4784K, reserved 1048576K
235   -Event: 3.040 GC heap after
236   -Heap after GC invocations=9 (full 2):
237   - PSYoungGen total 111616K, used 0K [0x00000000d6300000, 0x00000000e0c00000, 0x0000000100000000)
238   - eden space 102400K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc700000)
239   - from space 9216K, 0% used [0x00000000dc700000,0x00000000dc700000,0x00000000dd000000)
240   - to space 9728K, 0% used [0x00000000e0280000,0x00000000e0280000,0x00000000e0c00000)
241   - ParOldGen total 88576K, used 13311K [0x0000000082800000, 0x0000000087e80000, 0x00000000d6300000)
242   - object space 88576K, 15% used [0x0000000082800000,0x00000000834ffcb8,0x0000000087e80000)
243   - Metaspace used 33936K, capacity 35464K, committed 35496K, reserved 1079296K
244   - class space used 4465K, capacity 4754K, committed 4784K, reserved 1048576K
245   -}
246   -
247   -Deoptimization events (10 events):
248   -Event: 2.432 Thread 0x0000000003213000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003d49134 method=org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(Ljava/lang/String;Lorg/springframework/core/ResolvableType;)Z @ 66
249   -Event: 2.702 Thread 0x0000000003213000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003dadbd4 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.clear()V @ 4
250   -Event: 2.800 Thread 0x0000000003213000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000000003680850 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63
251   -Event: 2.882 Thread 0x0000000003213000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003b4fe14 method=java.util.AbstractList$Itr.hasNext()Z @ 8
252   -Event: 2.882 Thread 0x0000000003213000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003cfda7c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
253   -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003b4fe14 method=java.util.AbstractList$Itr.hasNext()Z @ 8
254   -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003cfda7c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
255   -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003b4fe14 method=java.util.AbstractList$Itr.hasNext()Z @ 8
256   -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003cfda7c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
257   -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003cfda7c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
258   -
259   -Classes redefined (0 events):
260   -No events
261   -
262   -Internal exceptions (10 events):
263   -Event: 2.677 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/core/env/EnvironmentCapableCustomizer> (0x00000000da064e40) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
264   -Event: 2.678 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/context/ServletContextAwareCustomizer> (0x00000000da079f98) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c
265   -Event: 2.678 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/AwareCustomizer> (0x00000000da08c6a0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210
266   -Event: 2.678 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/InitializingBeanCustomizer> (0x00000000da0a0088) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp
267   -Event: 2.679 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/DisposableBeanCustomizer> (0x00000000da0b3660) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
268   -Event: 2.681 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000da0dc050) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
269   -Event: 2.681 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/support/StandardServletMultipartResolverCustomizer> (0x00000000da0f8218) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\class
270   -Event: 2.682 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/MultipartResolverCustomizer> (0x00000000da111038) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c
271   -Event: 2.769 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000da4443d8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
272   -Event: 2.770 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000da459e80) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
273   -
274   -Events (10 events):
275   -Event: 3.098 Thread 0x000000001be98000 Thread added: 0x000000001be98000
276   -Event: 3.099 Thread 0x0000000023360800 Thread added: 0x0000000023360800
277   -Event: 3.099 Thread 0x000000001a411800 Thread exited: 0x000000001a411800
278   -Event: 3.100 loading class org/springframework/context/support/DefaultLifecycleProcessor
279   -Event: 3.100 loading class org/springframework/context/support/DefaultLifecycleProcessor done
280   -Event: 3.101 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator
281   -Event: 3.101 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator done
282   -Event: 3.102 Thread 0x0000000023360800 Thread exited: 0x0000000023360800
283   -Event: 3.102 Thread 0x000000001be98000 Thread exited: 0x000000001be98000
284   -Event: 3.103 Executing VM operation: Exit
285   -
286   -
287   -Dynamic libraries:
288   -0x00007ff7b7a80000 - 0x00007ff7b7ab7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe
289   -0x00007ff817920000 - 0x00007ff817b10000 C:\WINDOWS\SYSTEM32\ntdll.dll
290   -0x00007ff815d40000 - 0x00007ff815df2000 C:\WINDOWS\System32\KERNEL32.DLL
291   -0x00007ff8156c0000 - 0x00007ff815963000 C:\WINDOWS\System32\KERNELBASE.dll
292   -0x00007ff816600000 - 0x00007ff8166a3000 C:\WINDOWS\System32\ADVAPI32.dll
293   -0x00007ff817570000 - 0x00007ff81760e000 C:\WINDOWS\System32\msvcrt.dll
294   -0x00007ff816f10000 - 0x00007ff816fa7000 C:\WINDOWS\System32\sechost.dll
295   -0x00007ff817420000 - 0x00007ff817540000 C:\WINDOWS\System32\RPCRT4.dll
296   -0x00007ff815b90000 - 0x00007ff815d23000 C:\WINDOWS\System32\USER32.dll
297   -0x00007ff815030000 - 0x00007ff815051000 C:\WINDOWS\System32\win32u.dll
298   -0x00007ff816830000 - 0x00007ff816856000 C:\WINDOWS\System32\GDI32.dll
299   -0x00007ff8154f0000 - 0x00007ff815684000 C:\WINDOWS\System32\gdi32full.dll
300   -0x00007ff815450000 - 0x00007ff8154ee000 C:\WINDOWS\System32\msvcp_win.dll
301   -0x00007ff815190000 - 0x00007ff81528a000 C:\WINDOWS\System32\ucrtbase.dll
302   -0x00007ffffbbb0000 - 0x00007ffffbe35000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll
303   -0x00007ff817080000 - 0x00007ff8173b6000 C:\WINDOWS\System32\combase.dll
304   -0x00007ff815060000 - 0x00007ff8150e0000 C:\WINDOWS\System32\bcryptPrimitives.dll
305   -0x00007ff817540000 - 0x00007ff81756e000 C:\WINDOWS\System32\IMM32.DLL
306   -0x000000005caa0000 - 0x000000005cb72000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll
307   -0x000000005c1f0000 - 0x000000005ca92000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
308   -0x00007ff815ef0000 - 0x00007ff815ef8000 C:\WINDOWS\System32\PSAPI.DLL
309   -0x00007ff8002c0000 - 0x00007ff8002c9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
310   -0x00007ff80f370000 - 0x00007ff80f394000 C:\WINDOWS\SYSTEM32\WINMM.dll
311   -0x00007ff80b780000 - 0x00007ff80b78a000 C:\WINDOWS\SYSTEM32\VERSION.dll
312   -0x00007ff8176c0000 - 0x00007ff81772f000 C:\WINDOWS\System32\WS2_32.dll
313   -0x00007ff80efa0000 - 0x00007ff80efcd000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
314   -0x00007ff815290000 - 0x00007ff8152da000 C:\WINDOWS\System32\cfgmgr32.dll
315   -0x000000005c1e0000 - 0x000000005c1ef000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll
316   -0x000000005c1b0000 - 0x000000005c1d9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll
317   -0x000000005c190000 - 0x000000005c1a6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll
318   -0x00007ff815f00000 - 0x00007ff8165e2000 C:\WINDOWS\System32\SHELL32.dll
319   -0x00007ff8166b0000 - 0x00007ff816759000 C:\WINDOWS\System32\shcore.dll
320   -0x00007ff8148b0000 - 0x00007ff81502c000 C:\WINDOWS\System32\windows.storage.dll
321   -0x00007ff814890000 - 0x00007ff8148af000 C:\WINDOWS\System32\profapi.dll
322   -0x00007ff814800000 - 0x00007ff81484a000 C:\WINDOWS\System32\powrprof.dll
323   -0x00007ff8147f0000 - 0x00007ff814800000 C:\WINDOWS\System32\UMPDC.dll
324   -0x00007ff815e90000 - 0x00007ff815ee2000 C:\WINDOWS\System32\shlwapi.dll
325   -0x00007ff814850000 - 0x00007ff814861000 C:\WINDOWS\System32\kernel.appcore.dll
326   -0x00007ff815430000 - 0x00007ff815447000 C:\WINDOWS\System32\cryptsp.dll
327   -0x000000005c140000 - 0x000000005c14d000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll
328   -0x000000005c170000 - 0x000000005c18a000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll
329   -0x00007ff814060000 - 0x00007ff8140c7000 C:\WINDOWS\system32\mswsock.dll
330   -0x000000005c090000 - 0x000000005c0a1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll
331   -0x00007fffee0e0000 - 0x00007fffee0f6000 C:\WINDOWS\system32\napinsp.dll
332   -0x00007fffee0c0000 - 0x00007fffee0da000 C:\WINDOWS\system32\pnrpnsp.dll
333   -0x00007ff813db0000 - 0x00007ff813e7a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
334   -0x00007ff815d30000 - 0x00007ff815d38000 C:\WINDOWS\System32\NSI.dll
335   -0x00007ff813d70000 - 0x00007ff813daa000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
336   -0x00007fffee750000 - 0x00007fffee75e000 C:\WINDOWS\System32\winrnr.dll
337   -0x00007ff811110000 - 0x00007ff81112c000 C:\WINDOWS\system32\NLAapi.dll
338   -0x00007fffee0a0000 - 0x00007fffee0b5000 C:\WINDOWS\system32\wshbth.dll
339   -0x00007ff80b540000 - 0x00007ff80b54a000 C:\Windows\System32\rasadhlp.dll
340   -0x00007ff80c3b0000 - 0x00007ff80c427000 C:\WINDOWS\System32\fwpuclnt.dll
341   -0x00007ff815690000 - 0x00007ff8156b6000 C:\WINDOWS\System32\bcrypt.dll
342   -0x00007ff813bd0000 - 0x00007ff813c03000 C:\WINDOWS\system32\rsaenh.dll
343   -0x00007ff814710000 - 0x00007ff814735000 C:\WINDOWS\SYSTEM32\USERENV.dll
344   -0x00007ff814230000 - 0x00007ff81423c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
345   -0x00007ff80cab0000 - 0x00007ff80cac6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
346   -0x00007ff80cf90000 - 0x00007ff80cfac000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
347   -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna6229618121822811211.tmp
348   -0x000000001fee0000 - 0x00000000202ab000 C:\lib\HCEHomeCMS.DLL
349   -0x00000000202b0000 - 0x000000002063f000 C:\lib\HCEHomeAlarm.DLL
350   -0x000000001eb20000 - 0x000000001ed10000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll
351   -0x00007ff801bb0000 - 0x00007ff801be2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll
352   -0x00007ff813110000 - 0x00007ff813304000 C:\WINDOWS\SYSTEM32\dbghelp.dll
353   -
354   -VM Arguments:
355   -java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire8591824099827451907\surefirebooter8042244932869339815.jar C:\Users\taohandong\AppData\Local\Temp\surefire8591824099827451907 2019-08-21T16-53-47_705-jvmRun1 surefire1883532276891060710tmp surefire_04853208368878475862tmp
356   -java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire8591824099827451907\surefirebooter8042244932869339815.jar
357   -Launcher Type: SUN_STANDARD
358   -
359   -Environment Variables:
360   -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
361   -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar;
362   -USERNAME=taohandong
363   -OS=Windows_NT
364   -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel
365   -
366   -
367   -
368   ---------------- S Y S T E M ---------------
369   -
370   -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86)
371   -
372   -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
373   -
374   -Memory: 4k page, physical 8218728k(850576k free), swap 16922824k(2204356k free)
375   -
376   -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010)
377   -
378   -time: Wed Aug 21 16:53:51 2019
379   -elapsed time: 3 seconds (0d 0h 0m 3s)
380   -
cloud/haikang/hs_err_pid2388.log 0 → 100644
... ... @@ -0,0 +1,381 @@
  1 +#
  2 +# A fatal error has been detected by the Java Runtime Environment:
  3 +#
  4 +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000242d643f, pid=2388, tid=0x0000000000005bd0
  5 +#
  6 +# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
  7 +# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
  8 +# Problematic frame:
  9 +# C [HCEHomeAlarm.DLL+0x2643f]
  10 +#
  11 +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
  12 +#
  13 +# If you would like to submit a bug report, please visit:
  14 +# http://bugreport.java.com/bugreport/crash.jsp
  15 +#
  16 +
  17 +--------------- T H R E A D ---------------
  18 +
  19 +Current thread (0x00000000184d9800): VMThread [stack: 0x000000001a1b0000,0x000000001a2b0000] [id=23504]
  20 +
  21 +siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
  22 +
  23 +Registers:
  24 +RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000
  25 +RSP=0x000000001a2af2f0, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x00000000011fcbf0
  26 +R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x000000001a2af380
  27 +R12=0x00000000011f97b0, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x00000000011f9860
  28 +RIP=0x00000000242d643f, EFLAGS=0x0000000000010206
  29 +
  30 +Top of Stack: (sp=0x000000001a2af2f0)
  31 +0x000000001a2af2f0: 0000000026d9f430 00007ffec8fe07cd
  32 +0x000000001a2af300: 0000000001242f70 00000026011b0000
  33 +0x000000001a2af310: 00000000011fcbf0 000000002436cb11
  34 +0x000000001a2af320: 0000000000000000 0000000000000000
  35 +0x000000001a2af330: 0000000001205100 00000034c8fdfba1
  36 +0x000000001a2af340: 00000000241d9750 00000000242d6bf2
  37 +0x000000001a2af350: 0000000000000000 0000000000000001
  38 +0x000000001a2af360: 0000000000000000 00000000011f97b0
  39 +0x000000001a2af370: 0000000000000001 00000000242d6620
  40 +0x000000001a2af380: 0000000000000000 00000000241d9750
  41 +0x000000001a2af390: 00000000011f97b0 0000000000000000
  42 +0x000000001a2af3a0: 000000000123e100 0000000018365400
  43 +0x000000001a2af3b0: 00000000012aed20 00000000242d5cc8
  44 +0x000000001a2af3c0: 0000000018365400 00000000241d9750
  45 +0x000000001a2af3d0: 0000000000000000 0000000000000000
  46 +0x000000001a2af3e0: 00000000012aed20 000000002436db04
  47 +
  48 +Instructions: (pc=0x00000000242d643f)
  49 +0x00000000242d641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc
  50 +0x00000000242d642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20
  51 +0x00000000242d643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0
  52 +0x00000000242d644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba
  53 +
  54 +
  55 +Register to memory mapping:
  56 +
  57 +RAX=0x0000000000000001 is an unknown value
  58 +RBX=0x0000000000000000 is an unknown value
  59 +RCX=0x0000000000000000 is an unknown value
  60 +RDX=0x0000000000000000 is an unknown value
  61 +RSP=0x000000001a2af2f0 is an unknown value
  62 +RBP=0x0000000000000000 is an unknown value
  63 +RSI=0x0000000000000000 is an unknown value
  64 +RDI=0x00000000011fcbf0 is an unknown value
  65 +R8 =0x0000000000000001 is an unknown value
  66 +R9 =0x0000000000000001 is an unknown value
  67 +R10=0x0000000000008000 is an unknown value
  68 +R11=0x000000001a2af380 is an unknown value
  69 +R12=0x00000000011f97b0 is an unknown value
  70 +R13=0x0000000000000000 is an unknown value
  71 +R14=0x0000000000000001 is an unknown value
  72 +R15=0x00000000011f9860 is an unknown value
  73 +
  74 +
  75 +Stack: [0x000000001a1b0000,0x000000001a2b0000], sp=0x000000001a2af2f0, free space=1020k
  76 +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
  77 +
  78 +VM_Operation (0x00000000034ef2f0): Exit, mode: safepoint, requested by thread 0x00000000034f3000
  79 +
  80 +
  81 +--------------- P R O C E S S ---------------
  82 +
  83 +Java Threads: ( => current thread )
  84 + 0x000000001fb30000 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=22344, stack(0x00000000278e0000,0x00000000279e0000)]
  85 + 0x000000001fb33000 JavaThread "scheduling-1" [_thread_blocked, id=21104, stack(0x0000000023c00000,0x0000000023d00000)]
  86 + 0x000000001a58e800 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=24812, stack(0x000000001b110000,0x000000001b210000)]
  87 + 0x000000001a4db000 JavaThread "Service Thread" daemon [_thread_blocked, id=18956, stack(0x000000001af10000,0x000000001b010000)]
  88 + 0x000000001a457000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=19520, stack(0x000000001ae10000,0x000000001af10000)]
  89 + 0x000000001a451000 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=3572, stack(0x000000001ad10000,0x000000001ae10000)]
  90 + 0x000000001a443800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=22460, stack(0x000000001ac10000,0x000000001ad10000)]
  91 + 0x000000001a43d800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=25536, stack(0x000000001ab10000,0x000000001ac10000)]
  92 + 0x000000001a3e9000 JavaThread "Attach Listener" daemon [_thread_blocked, id=13012, stack(0x000000001aa10000,0x000000001ab10000)]
  93 + 0x000000001a3d0800 JavaThread "Finalizer" daemon [_thread_blocked, id=21952, stack(0x000000001a7b0000,0x000000001a8b0000)]
  94 + 0x00000000035e6000 JavaThread "Reference Handler" daemon [_thread_blocked, id=20672, stack(0x000000001a2b0000,0x000000001a3b0000)]
  95 + 0x00000000034f3000 JavaThread "main" [_thread_blocked, id=21008, stack(0x00000000033f0000,0x00000000034f0000)]
  96 +
  97 +Other Threads:
  98 +=>0x00000000184d9800 VMThread [stack: 0x000000001a1b0000,0x000000001a2b0000] [id=23504]
  99 +
  100 +VM state:at safepoint (shutting down)
  101 +
  102 +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
  103 +[0x00000000033ee540] Threads_lock - owner thread: 0x00000000184d9800
  104 +
  105 +Heap:
  106 + PSYoungGen total 320000K, used 39081K [0x00000000d6300000, 0x00000000eb080000, 0x0000000100000000)
  107 + eden space 301568K, 7% used [0x00000000d6300000,0x00000000d7a058b8,0x00000000e8980000)
  108 + from space 18432K, 84% used [0x00000000e9e00000,0x00000000ead24c68,0x00000000eb000000)
  109 + to space 19968K, 0% used [0x00000000e8980000,0x00000000e8980000,0x00000000e9d00000)
  110 + ParOldGen total 81920K, used 26483K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  111 + object space 81920K, 32% used [0x0000000082800000,0x00000000841dcc80,0x0000000087800000)
  112 + Metaspace used 54373K, capacity 56636K, committed 56792K, reserved 1097728K
  113 + class space used 7228K, capacity 7658K, committed 7680K, reserved 1048576K
  114 +
  115 +Card table byte_map: [0x00000000129b0000,0x0000000012da0000] byte_map_base: 0x000000001259c000
  116 +
  117 +Marking Bits: (ParMarkBitMap*) 0x0000000074032d00
  118 + Begin Bits: [0x0000000013840000, 0x00000000157a0000)
  119 + End Bits: [0x00000000157a0000, 0x0000000017700000)
  120 +
  121 +Polling page: 0x0000000002ef0000
  122 +
  123 +CodeCache: size=245760Kb used=18338Kb max_used=19533Kb free=227421Kb
  124 + bounds [0x00000000035f0000, 0x0000000004920000, 0x00000000125f0000]
  125 + total_blobs=5364 nmethods=4864 adapters=409
  126 + compilation: enabled
  127 +
  128 +Compilation events (10 events):
  129 +Event: 11.134 Thread 0x000000001a457000 5716 1 java.text.NumberFormat::isGroupingUsed (5 bytes)
  130 +Event: 11.134 Thread 0x000000001a457000 nmethod 5716 0x0000000003fe7350 code [0x0000000003fe74a0, 0x0000000003fe75b0]
  131 +Event: 11.134 Thread 0x000000001a457000 5723 1 io.micrometer.shaded.org.pcollections.IntTree::access$200 (5 bytes)
  132 +Event: 11.134 Thread 0x000000001a457000 nmethod 5723 0x00000000041b8a90 code [0x00000000041b8be0, 0x00000000041b8cd0]
  133 +Event: 11.134 Thread 0x000000001a457000 5724 1 io.micrometer.shaded.org.pcollections.ConsPStack::access$100 (5 bytes)
  134 +Event: 11.134 Thread 0x000000001a457000 nmethod 5724 0x00000000041b87d0 code [0x00000000041b8920, 0x00000000041b8a10]
  135 +Event: 11.134 Thread 0x000000001a457000 5725 1 io.micrometer.shaded.org.pcollections.ConsPStack::access$200 (5 bytes)
  136 +Event: 11.135 Thread 0x000000001a457000 nmethod 5725 0x00000000041b8510 code [0x00000000041b8660, 0x00000000041b8750]
  137 +Event: 11.136 Thread 0x000000001a457000 5738 ! 2 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry::destroyBean (385 bytes)
  138 +Event: 11.138 Thread 0x000000001a457000 nmethod 5738 0x0000000004021cd0 code [0x0000000004022060, 0x00000000040232f8]
  139 +
  140 +GC Heap History (10 events):
  141 +Event: 3.949 GC heap before
  142 +{Heap before GC invocations=10 (full 2):
  143 + PSYoungGen total 203776K, used 11751K [0x00000000d6300000, 0x00000000e5200000, 0x0000000100000000)
  144 + eden space 192000K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e1e80000)
  145 + from space 11776K, 99% used [0x00000000e2c80000,0x00000000e37f9c28,0x00000000e3800000)
  146 + to space 14336K, 0% used [0x00000000e1e80000,0x00000000e1e80000,0x00000000e2c80000)
  147 + ParOldGen total 49152K, used 11215K [0x0000000082800000, 0x0000000085800000, 0x00000000d6300000)
  148 + object space 49152K, 22% used [0x0000000082800000,0x00000000832f3e08,0x0000000085800000)
  149 + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K
  150 + class space used 4450K, capacity 4681K, committed 4736K, reserved 1048576K
  151 +Event: 4.035 GC heap after
  152 +Heap after GC invocations=10 (full 2):
  153 + PSYoungGen total 203776K, used 0K [0x00000000d6300000, 0x00000000e5200000, 0x0000000100000000)
  154 + eden space 192000K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e1e80000)
  155 + from space 11776K, 0% used [0x00000000e2c80000,0x00000000e2c80000,0x00000000e3800000)
  156 + to space 14336K, 0% used [0x00000000e1e80000,0x00000000e1e80000,0x00000000e2c80000)
  157 + ParOldGen total 81920K, used 18798K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  158 + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5bbf0,0x0000000087800000)
  159 + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K
  160 + class space used 4450K, capacity 4681K, committed 4736K, reserved 1048576K
  161 +}
  162 +Event: 6.131 GC heap before
  163 +{Heap before GC invocations=11 (full 2):
  164 + PSYoungGen total 203776K, used 192000K [0x00000000d6300000, 0x00000000e5200000, 0x0000000100000000)
  165 + eden space 192000K, 100% used [0x00000000d6300000,0x00000000e1e80000,0x00000000e1e80000)
  166 + from space 11776K, 0% used [0x00000000e2c80000,0x00000000e2c80000,0x00000000e3800000)
  167 + to space 14336K, 0% used [0x00000000e1e80000,0x00000000e1e80000,0x00000000e2c80000)
  168 + ParOldGen total 81920K, used 18798K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  169 + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5bbf0,0x0000000087800000)
  170 + Metaspace used 40626K, capacity 41940K, committed 42200K, reserved 1085440K
  171 + class space used 5256K, capacity 5524K, committed 5632K, reserved 1048576K
  172 +Event: 6.141 GC heap after
  173 +Heap after GC invocations=11 (full 2):
  174 + PSYoungGen total 206336K, used 9447K [0x00000000d6300000, 0x00000000e7000000, 0x0000000100000000)
  175 + eden space 192000K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e1e80000)
  176 + from space 14336K, 65% used [0x00000000e1e80000,0x00000000e27b9f98,0x00000000e2c80000)
  177 + to space 13824K, 0% used [0x00000000e6280000,0x00000000e6280000,0x00000000e7000000)
  178 + ParOldGen total 81920K, used 18806K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  179 + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5dbf0,0x0000000087800000)
  180 + Metaspace used 40626K, capacity 41940K, committed 42200K, reserved 1085440K
  181 + class space used 5256K, capacity 5524K, committed 5632K, reserved 1048576K
  182 +}
  183 +Event: 7.627 GC heap before
  184 +{Heap before GC invocations=12 (full 2):
  185 + PSYoungGen total 206336K, used 201447K [0x00000000d6300000, 0x00000000e7000000, 0x0000000100000000)
  186 + eden space 192000K, 100% used [0x00000000d6300000,0x00000000e1e80000,0x00000000e1e80000)
  187 + from space 14336K, 65% used [0x00000000e1e80000,0x00000000e27b9f98,0x00000000e2c80000)
  188 + to space 13824K, 0% used [0x00000000e6280000,0x00000000e6280000,0x00000000e7000000)
  189 + ParOldGen total 81920K, used 18806K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  190 + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5dbf0,0x0000000087800000)
  191 + Metaspace used 44117K, capacity 45638K, committed 45784K, reserved 1089536K
  192 + class space used 5706K, capacity 6035K, committed 6144K, reserved 1048576K
  193 +Event: 7.640 GC heap after
  194 +Heap after GC invocations=12 (full 2):
  195 + PSYoungGen total 256000K, used 13148K [0x00000000d6300000, 0x00000000e6f80000, 0x0000000100000000)
  196 + eden space 242688K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e5000000)
  197 + from space 13312K, 98% used [0x00000000e6280000,0x00000000e6f57070,0x00000000e6f80000)
  198 + to space 15360K, 0% used [0x00000000e5180000,0x00000000e5180000,0x00000000e6080000)
  199 + ParOldGen total 81920K, used 18814K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  200 + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5fbf0,0x0000000087800000)
  201 + Metaspace used 44117K, capacity 45638K, committed 45784K, reserved 1089536K
  202 + class space used 5706K, capacity 6035K, committed 6144K, reserved 1048576K
  203 +}
  204 +Event: 9.018 GC heap before
  205 +{Heap before GC invocations=13 (full 2):
  206 + PSYoungGen total 256000K, used 255836K [0x00000000d6300000, 0x00000000e6f80000, 0x0000000100000000)
  207 + eden space 242688K, 100% used [0x00000000d6300000,0x00000000e5000000,0x00000000e5000000)
  208 + from space 13312K, 98% used [0x00000000e6280000,0x00000000e6f57070,0x00000000e6f80000)
  209 + to space 15360K, 0% used [0x00000000e5180000,0x00000000e5180000,0x00000000e6080000)
  210 + ParOldGen total 81920K, used 18814K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  211 + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5fbf0,0x0000000087800000)
  212 + Metaspace used 47259K, capacity 49276K, committed 49496K, reserved 1091584K
  213 + class space used 6158K, capacity 6514K, committed 6528K, reserved 1048576K
  214 +Event: 9.039 GC heap after
  215 +Heap after GC invocations=13 (full 2):
  216 + PSYoungGen total 259584K, used 15336K [0x00000000d6300000, 0x00000000eb000000, 0x0000000100000000)
  217 + eden space 244224K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e5180000)
  218 + from space 15360K, 99% used [0x00000000e5180000,0x00000000e607a040,0x00000000e6080000)
  219 + to space 18432K, 0% used [0x00000000e9e00000,0x00000000e9e00000,0x00000000eb000000)
  220 + ParOldGen total 81920K, used 23103K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  221 + object space 81920K, 28% used [0x0000000082800000,0x0000000083e8fc30,0x0000000087800000)
  222 + Metaspace used 47259K, capacity 49276K, committed 49496K, reserved 1091584K
  223 + class space used 6158K, capacity 6514K, committed 6528K, reserved 1048576K
  224 +}
  225 +Event: 11.011 GC heap before
  226 +{Heap before GC invocations=14 (full 2):
  227 + PSYoungGen total 259584K, used 259560K [0x00000000d6300000, 0x00000000eb000000, 0x0000000100000000)
  228 + eden space 244224K, 100% used [0x00000000d6300000,0x00000000e5180000,0x00000000e5180000)
  229 + from space 15360K, 99% used [0x00000000e5180000,0x00000000e607a040,0x00000000e6080000)
  230 + to space 18432K, 0% used [0x00000000e9e00000,0x00000000e9e00000,0x00000000eb000000)
  231 + ParOldGen total 81920K, used 23103K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  232 + object space 81920K, 28% used [0x0000000082800000,0x0000000083e8fc30,0x0000000087800000)
  233 + Metaspace used 54084K, capacity 56334K, committed 56536K, reserved 1097728K
  234 + class space used 7194K, capacity 7583K, committed 7680K, reserved 1048576K
  235 +Event: 11.031 GC heap after
  236 +Heap after GC invocations=14 (full 2):
  237 + PSYoungGen total 320000K, used 15507K [0x00000000d6300000, 0x00000000eb080000, 0x0000000100000000)
  238 + eden space 301568K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e8980000)
  239 + from space 18432K, 84% used [0x00000000e9e00000,0x00000000ead24c68,0x00000000eb000000)
  240 + to space 19968K, 0% used [0x00000000e8980000,0x00000000e8980000,0x00000000e9d00000)
  241 + ParOldGen total 81920K, used 26483K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000)
  242 + object space 81920K, 32% used [0x0000000082800000,0x00000000841dcc80,0x0000000087800000)
  243 + Metaspace used 54084K, capacity 56334K, committed 56536K, reserved 1097728K
  244 + class space used 7194K, capacity 7583K, committed 7680K, reserved 1048576K
  245 +}
  246 +
  247 +Deoptimization events (10 events):
  248 +Event: 10.687 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d4e2d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8
  249 +Event: 10.687 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000004309e04 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
  250 +Event: 10.698 Thread 0x00000000034f3000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000000003996050 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63
  251 +Event: 10.731 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d4e2d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8
  252 +Event: 10.731 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000004309e04 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
  253 +Event: 10.734 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d4e2d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8
  254 +Event: 10.734 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000004309e04 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
  255 +Event: 10.976 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000043b1bcc method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7
  256 +Event: 10.976 Thread 0x000000001fb33000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003bd54b0 method=java.net.URLStreamHandler.parseURL(Ljava/net/URL;Ljava/lang/String;II)V @ 155
  257 +Event: 10.981 Thread 0x000000001fb33000 Uncommon trap: reason=null_check action=make_not_entrant pc=0x00000000043af648 method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7
  258 +
  259 +Classes redefined (0 events):
  260 +No events
  261 +
  262 +Internal exceptions (10 events):
  263 +Event: 10.188 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e14bdf30) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  264 +Event: 10.189 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/actuate/autoconfigure/web/server/ManagementServerPropertiesCustomizer> (0x00000000e14fd620) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\shar
  265 +Event: 10.238 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e17d82e0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  266 +Event: 10.239 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistrationCustomizer> (0x00000000e1814140) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\clas
  267 +Event: 10.240 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/serviceregistry/RegistrationCustomizer> (0x00000000e1869450) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDi
  268 +Event: 10.241 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/ServiceInstanceCustomizer> (0x00000000e1893000) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
  269 +Event: 10.657 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e3a6aad0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  270 +Event: 10.658 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000e3a95778) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
  271 +Event: 11.114 Thread 0x000000001fb32000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d74acf90) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  272 +Event: 11.115 Thread 0x000000001fb32000 Exception <a 'java/lang/ClassNotFoundException': com/netflix/appinfo/ApplicationInfoManagerCustomizer> (0x00000000d74d7da8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
  273 +
  274 +Events (10 events):
  275 +Event: 11.136 Executing VM operation: RevokeBias done
  276 +Event: 11.137 loading class com/microsoft/sqlserver/jdbc/TDSChannel$SSLHandshakeInputStream
  277 +Event: 11.137 loading class com/microsoft/sqlserver/jdbc/TDSChannel$SSLHandshakeInputStream done
  278 +Event: 11.138 loading class com/microsoft/sqlserver/jdbc/TDSChannel$ProxyInputStream
  279 +Event: 11.138 loading class com/microsoft/sqlserver/jdbc/TDSChannel$ProxyInputStream done
  280 +Event: 11.138 Thread 0x000000001fb32000 Thread exited: 0x000000001fb32000
  281 +Event: 11.138 loading class com/microsoft/sqlserver/jdbc/TDSChannel$ProxyOutputStream
  282 +Event: 11.138 loading class com/microsoft/sqlserver/jdbc/TDSChannel$ProxyOutputStream done
  283 +Event: 11.139 Thread 0x000000001a3e8000 Thread exited: 0x000000001a3e8000
  284 +Event: 11.139 Executing VM operation: Exit
  285 +
  286 +
  287 +Dynamic libraries:
  288 +0x00007ff68b880000 - 0x00007ff68b8b7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe
  289 +0x00007ffec8fa0000 - 0x00007ffec9190000 C:\WINDOWS\SYSTEM32\ntdll.dll
  290 +0x00007ffec7050000 - 0x00007ffec7102000 C:\WINDOWS\System32\KERNEL32.DLL
  291 +0x00007ffec6b20000 - 0x00007ffec6dc3000 C:\WINDOWS\System32\KERNELBASE.dll
  292 +0x00007ffec79a0000 - 0x00007ffec7a43000 C:\WINDOWS\System32\ADVAPI32.dll
  293 +0x00007ffec88e0000 - 0x00007ffec897e000 C:\WINDOWS\System32\msvcrt.dll
  294 +0x00007ffec7a50000 - 0x00007ffec7ae7000 C:\WINDOWS\System32\sechost.dll
  295 +0x00007ffec82d0000 - 0x00007ffec83f0000 C:\WINDOWS\System32\RPCRT4.dll
  296 +0x00007ffec7110000 - 0x00007ffec72a3000 C:\WINDOWS\System32\USER32.dll
  297 +0x00007ffec66b0000 - 0x00007ffec66d1000 C:\WINDOWS\System32\win32u.dll
  298 +0x00007ffec89f0000 - 0x00007ffec8a16000 C:\WINDOWS\System32\GDI32.dll
  299 +0x00007ffec66e0000 - 0x00007ffec6874000 C:\WINDOWS\System32\gdi32full.dll
  300 +0x00007ffec6f00000 - 0x00007ffec6f9e000 C:\WINDOWS\System32\msvcp_win.dll
  301 +0x00007ffec6880000 - 0x00007ffec697a000 C:\WINDOWS\System32\ucrtbase.dll
  302 +0x00007ffeafb50000 - 0x00007ffeafdd5000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll
  303 +0x00007ffec7d90000 - 0x00007ffec80c6000 C:\WINDOWS\System32\combase.dll
  304 +0x00007ffec6e80000 - 0x00007ffec6f00000 C:\WINDOWS\System32\bcryptPrimitives.dll
  305 +0x00007ffec8a40000 - 0x00007ffec8a6e000 C:\WINDOWS\System32\IMM32.DLL
  306 +0x00000000740c0000 - 0x0000000074192000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll
  307 +0x0000000073810000 - 0x00000000740b2000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
  308 +0x00007ffec88b0000 - 0x00007ffec88b8000 C:\WINDOWS\System32\PSAPI.DLL
  309 +0x00007ffec1410000 - 0x00007ffec1434000 C:\WINDOWS\SYSTEM32\WINMM.dll
  310 +0x00007ffeb1890000 - 0x00007ffeb1899000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
  311 +0x00007ffebcd60000 - 0x00007ffebcd6a000 C:\WINDOWS\SYSTEM32\VERSION.dll
  312 +0x00007ffec8130000 - 0x00007ffec819f000 C:\WINDOWS\System32\WS2_32.dll
  313 +0x00007ffec1170000 - 0x00007ffec119d000 C:\WINDOWS\SYSTEM32\winmmbase.dll
  314 +0x00007ffec6980000 - 0x00007ffec69ca000 C:\WINDOWS\System32\cfgmgr32.dll
  315 +0x0000000073800000 - 0x000000007380f000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll
  316 +0x00000000737d0000 - 0x00000000737f9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll
  317 +0x00000000737b0000 - 0x00000000737c6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll
  318 +0x00007ffec72b0000 - 0x00007ffec7992000 C:\WINDOWS\System32\SHELL32.dll
  319 +0x00007ffec8800000 - 0x00007ffec88a9000 C:\WINDOWS\System32\shcore.dll
  320 +0x00007ffec5f30000 - 0x00007ffec66ac000 C:\WINDOWS\System32\windows.storage.dll
  321 +0x00007ffec5f10000 - 0x00007ffec5f2f000 C:\WINDOWS\System32\profapi.dll
  322 +0x00007ffec5ea0000 - 0x00007ffec5eea000 C:\WINDOWS\System32\powrprof.dll
  323 +0x00007ffec5e70000 - 0x00007ffec5e80000 C:\WINDOWS\System32\UMPDC.dll
  324 +0x00007ffec86d0000 - 0x00007ffec8722000 C:\WINDOWS\System32\shlwapi.dll
  325 +0x00007ffec5e80000 - 0x00007ffec5e91000 C:\WINDOWS\System32\kernel.appcore.dll
  326 +0x00007ffec7000000 - 0x00007ffec7017000 C:\WINDOWS\System32\cryptsp.dll
  327 +0x00000000736d0000 - 0x00000000736dd000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll
  328 +0x0000000073790000 - 0x00000000737aa000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll
  329 +0x00007ffec56e0000 - 0x00007ffec5747000 C:\WINDOWS\system32\mswsock.dll
  330 +0x00000000736b0000 - 0x00000000736c1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll
  331 +0x00007ffec53f0000 - 0x00007ffec542a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
  332 +0x00007ffec88c0000 - 0x00007ffec88c8000 C:\WINDOWS\System32\NSI.dll
  333 +0x00007ffebdaa0000 - 0x00007ffebdab6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
  334 +0x00007ffebe420000 - 0x00007ffebe43c000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
  335 +0x00007ffec5430000 - 0x00007ffec54fa000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
  336 +0x00007ffeb8da0000 - 0x00007ffeb8daa000 C:\Windows\System32\rasadhlp.dll
  337 +0x00007ffebce70000 - 0x00007ffebcee7000 C:\WINDOWS\System32\fwpuclnt.dll
  338 +0x00007ffec7020000 - 0x00007ffec7046000 C:\WINDOWS\System32\bcrypt.dll
  339 +0x00007ffe9fea0000 - 0x00007ffe9feb6000 C:\WINDOWS\system32\napinsp.dll
  340 +0x00007ffe9edd0000 - 0x00007ffe9edea000 C:\WINDOWS\system32\pnrpnsp.dll
  341 +0x00007ffe9ed90000 - 0x00007ffe9ed9e000 C:\WINDOWS\System32\winrnr.dll
  342 +0x00007ffec2ba0000 - 0x00007ffec2bbc000 C:\WINDOWS\system32\NLAapi.dll
  343 +0x00007ffe9ed20000 - 0x00007ffe9ed35000 C:\WINDOWS\system32\wshbth.dll
  344 +0x00007ffec5250000 - 0x00007ffec5283000 C:\WINDOWS\system32\rsaenh.dll
  345 +0x00007ffec5d90000 - 0x00007ffec5db5000 C:\WINDOWS\SYSTEM32\USERENV.dll
  346 +0x00007ffec58b0000 - 0x00007ffec58bc000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
  347 +0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna8100986033166459603.tmp
  348 +0x0000000023de0000 - 0x00000000241ab000 C:\lib\HCEHomeCMS.DLL
  349 +0x00000000242b0000 - 0x000000002463f000 C:\lib\HCEHomeAlarm.DLL
  350 +0x0000000025880000 - 0x0000000025a70000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll
  351 +0x00007ffe9bd90000 - 0x00007ffe9bdc2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll
  352 +0x0000000071e40000 - 0x0000000071e64000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunec.dll
  353 +0x00007ffec4790000 - 0x00007ffec4984000 C:\WINDOWS\SYSTEM32\dbghelp.dll
  354 +
  355 +VM Arguments:
  356 +java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5118341549890617159\surefirebooter6322013041199057754.jar C:\Users\taohandong\AppData\Local\Temp\surefire5118341549890617159 2019-08-30T14-44-56_302-jvmRun1 surefire2606505243237962518tmp surefire_08682532327525556423tmp
  357 +java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5118341549890617159\surefirebooter6322013041199057754.jar
  358 +Launcher Type: SUN_STANDARD
  359 +
  360 +Environment Variables:
  361 +JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
  362 +CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar;
  363 +USERNAME=taohandong
  364 +OS=Windows_NT
  365 +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel
  366 +
  367 +
  368 +
  369 +--------------- S Y S T E M ---------------
  370 +
  371 +OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86)
  372 +
  373 +CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
  374 +
  375 +Memory: 4k page, physical 8218728k(921808k free), swap 28521748k(3235836k free)
  376 +
  377 +vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010)
  378 +
  379 +time: Fri Aug 30 14:45:08 2019
  380 +elapsed time: 11 seconds (0d 0h 0m 11s)
  381 +
... ...
cloud/haikang/hs_err_pid26048.log
... ... @@ -1,336 +0,0 @@
1   -#
2   -# A fatal error has been detected by the Java Runtime Environment:
3   -#
4   -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000001cdf643f, pid=26048, tid=0x0000000000005860
5   -#
6   -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
7   -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
8   -# Problematic frame:
9   -# C [HCEHomeAlarm.DLL+0x2643f]
10   -#
11   -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
12   -#
13   -# If you would like to submit a bug report, please visit:
14   -# http://bugreport.java.com/bugreport/crash.jsp
15   -#
16   -
17   ---------------- T H R E A D ---------------
18   -
19   -Current thread (0x0000000017749000): VMThread [stack: 0x0000000019420000,0x0000000019520000] [id=22624]
20   -
21   -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
22   -
23   -Registers:
24   -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000
25   -RSP=0x000000001951ef50, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x00000000005dc620
26   -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x000000001951efe0
27   -R12=0x00000000005aec10, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x00000000005aecc0
28   -RIP=0x000000001cdf643f, EFLAGS=0x0000000000010206
29   -
30   -Top of Stack: (sp=0x000000001951ef50)
31   -0x000000001951ef50: 000000001d9ea6a0 00007ffc314807cd
32   -0x000000001951ef60: 00000000005ac740 0000000f00560000
33   -0x000000001951ef70: 00000000005dc620 000000001ce8cb11
34   -0x000000001951ef80: 0000000000000000 0000000000000000
35   -0x000000001951ef90: 000000000059fa80 000000253147fba1
36   -0x000000001951efa0: 00000000005d9500 000000001cdf6bf2
37   -0x000000001951efb0: 0000000000000000 0000000000000001
38   -0x000000001951efc0: 0000000000000000 00000000005aec10
39   -0x000000001951efd0: 0000000000000001 000000001cdf6620
40   -0x000000001951efe0: 0000000000000000 00000000005d9500
41   -0x000000001951eff0: 00000000005aec10 0000000000000000
42   -0x000000001951f000: 00000000005a53c0 00000000175d5400
43   -0x000000001951f010: 00000000005d29b0 000000001cdf5cc8
44   -0x000000001951f020: 00000000175d5400 00000000005d9500
45   -0x000000001951f030: 0000000000000000 0000000000000000
46   -0x000000001951f040: 00000000005d29b0 000000001ce8db04
47   -
48   -Instructions: (pc=0x000000001cdf643f)
49   -0x000000001cdf641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc
50   -0x000000001cdf642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20
51   -0x000000001cdf643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0
52   -0x000000001cdf644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba
53   -
54   -
55   -Register to memory mapping:
56   -
57   -RAX=0x0000000000000001 is an unknown value
58   -RBX=0x0000000000000000 is an unknown value
59   -RCX=0x0000000000000000 is an unknown value
60   -RDX=0x0000000000000000 is an unknown value
61   -RSP=0x000000001951ef50 is an unknown value
62   -RBP=0x0000000000000000 is an unknown value
63   -RSI=0x0000000000000000 is an unknown value
64   -RDI=0x00000000005dc620 is an unknown value
65   -R8 =0x0000000000000001 is an unknown value
66   -R9 =0x0000000000000001 is an unknown value
67   -R10=0x0000000000008000 is an unknown value
68   -R11=0x000000001951efe0 is an unknown value
69   -R12=0x00000000005aec10 is an unknown value
70   -R13=0x0000000000000000 is an unknown value
71   -R14=0x0000000000000001 is an unknown value
72   -R15=0x00000000005aecc0 is an unknown value
73   -
74   -
75   -Stack: [0x0000000019420000,0x0000000019520000], sp=0x000000001951ef50, free space=1019k
76   -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
77   -
78   -VM_Operation (0x00000000026cf3d0): Exit, mode: safepoint, requested by thread 0x0000000002763000
79   -
80   -
81   ---------------- P R O C E S S ---------------
82   -
83   -Java Threads: ( => current thread )
84   - 0x000000001b2cc800 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=13732, stack(0x000000001e440000,0x000000001e540000)]
85   - 0x000000001989c800 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=26928, stack(0x000000001a380000,0x000000001a480000)]
86   - 0x0000000019747000 JavaThread "Service Thread" daemon [_thread_blocked, id=26424, stack(0x000000001a180000,0x000000001a280000)]
87   - 0x00000000196c3800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=24408, stack(0x000000001a080000,0x000000001a180000)]
88   - 0x00000000196ba800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=25900, stack(0x0000000019f80000,0x000000001a080000)]
89   - 0x00000000196b5800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=2496, stack(0x0000000019e80000,0x0000000019f80000)]
90   - 0x00000000196b2000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=2040, stack(0x0000000019d80000,0x0000000019e80000)]
91   - 0x000000001965a000 JavaThread "Attach Listener" daemon [_thread_blocked, id=20100, stack(0x0000000019c80000,0x0000000019d80000)]
92   - 0x0000000019640800 JavaThread "Finalizer" daemon [_thread_blocked, id=24112, stack(0x0000000019a20000,0x0000000019b20000)]
93   - 0x0000000002857000 JavaThread "Reference Handler" daemon [_thread_blocked, id=17272, stack(0x0000000019520000,0x0000000019620000)]
94   - 0x0000000002763000 JavaThread "main" [_thread_blocked, id=27540, stack(0x00000000025d0000,0x00000000026d0000)]
95   -
96   -Other Threads:
97   -=>0x0000000017749000 VMThread [stack: 0x0000000019420000,0x0000000019520000] [id=22624]
98   -
99   -VM state:at safepoint (shutting down)
100   -
101   -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
102   -[0x000000000275e3a0] Threads_lock - owner thread: 0x0000000017749000
103   -
104   -Heap:
105   - PSYoungGen total 37888K, used 22276K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000)
106   - eden space 32768K, 52% used [0x00000000d6300000,0x00000000d73c73c8,0x00000000d8300000)
107   - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87f9ec0,0x00000000d8800000)
108   - to space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000)
109   - ParOldGen total 86016K, used 4607K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
110   - object space 86016K, 5% used [0x0000000082800000,0x0000000082c7fd28,0x0000000087c00000)
111   - Metaspace used 20330K, capacity 21108K, committed 21296K, reserved 1067008K
112   - class space used 2697K, capacity 2858K, committed 2944K, reserved 1048576K
113   -
114   -Card table byte_map: [0x0000000011c20000,0x0000000012010000] byte_map_base: 0x000000001180c000
115   -
116   -Marking Bits: (ParMarkBitMap*) 0x0000000060112d00
117   - Begin Bits: [0x0000000012ab0000, 0x0000000014a10000)
118   - End Bits: [0x0000000014a10000, 0x0000000016970000)
119   -
120   -Polling page: 0x00000000001f0000
121   -
122   -CodeCache: size=245760Kb used=6391Kb max_used=6391Kb free=239368Kb
123   - bounds [0x0000000002860000, 0x0000000002eb0000, 0x0000000011860000]
124   - total_blobs=2268 nmethods=1888 adapters=292
125   - compilation: enabled
126   -
127   -Compilation events (10 events):
128   -Event: 2.633 Thread 0x00000000196c3800 nmethod 1883 0x0000000002e98650 code [0x0000000002e987a0, 0x0000000002e988d0]
129   -Event: 2.633 Thread 0x00000000196c3800 1885 3 java.util.concurrent.ConcurrentHashMap::remove (8 bytes)
130   -Event: 2.633 Thread 0x00000000196c3800 nmethod 1885 0x0000000002e98210 code [0x0000000002e98380, 0x0000000002e985a8]
131   -Event: 2.633 Thread 0x00000000196c3800 1884 1 org.springframework.beans.factory.support.AbstractBeanDefinition::isLazyInit (5 bytes)
132   -Event: 2.633 Thread 0x00000000196c3800 nmethod 1884 0x0000000002e97f50 code [0x0000000002e980a0, 0x0000000002e981b0]
133   -Event: 2.634 Thread 0x00000000196c3800 1886 ! 3 java.lang.invoke.MethodHandleNatives::linkMethodHandleConstant (154 bytes)
134   -Event: 2.634 Thread 0x00000000196c3800 nmethod 1886 0x0000000002e9e8d0 code [0x0000000002e9eb20, 0x0000000002e9f7b8]
135   -Event: 2.634 Thread 0x00000000196c3800 1889 3 java.lang.invoke.LambdaForm$Name::<init> (194 bytes)
136   -Event: 2.635 Thread 0x00000000196c3800 nmethod 1889 0x0000000002e9fe10 code [0x0000000002ea0000, 0x0000000002ea08f8]
137   -Event: 2.635 Thread 0x00000000196c3800 1887 3 java.lang.invoke.MethodHandles$Lookup::linkMethodHandleConstant (185 bytes)
138   -
139   -GC Heap History (6 events):
140   -Event: 0.984 GC heap before
141   -{Heap before GC invocations=1 (full 0):
142   - PSYoungGen total 37888K, used 32768K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000)
143   - eden space 32768K, 100% used [0x00000000d6300000,0x00000000d8300000,0x00000000d8300000)
144   - from space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000)
145   - to space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000)
146   - ParOldGen total 86016K, used 0K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
147   - object space 86016K, 0% used [0x0000000082800000,0x0000000082800000,0x0000000087c00000)
148   - Metaspace used 10660K, capacity 10938K, committed 11136K, reserved 1058816K
149   - class space used 1259K, capacity 1345K, committed 1408K, reserved 1048576K
150   -Event: 0.990 GC heap after
151   -Heap after GC invocations=1 (full 0):
152   - PSYoungGen total 37888K, used 5105K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000)
153   - eden space 32768K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000d8300000)
154   - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87fc648,0x00000000d8800000)
155   - to space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000)
156   - ParOldGen total 86016K, used 734K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
157   - object space 86016K, 0% used [0x0000000082800000,0x00000000828b7948,0x0000000087c00000)
158   - Metaspace used 10660K, capacity 10938K, committed 11136K, reserved 1058816K
159   - class space used 1259K, capacity 1345K, committed 1408K, reserved 1048576K
160   -}
161   -Event: 1.568 GC heap before
162   -{Heap before GC invocations=2 (full 0):
163   - PSYoungGen total 37888K, used 37873K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000)
164   - eden space 32768K, 100% used [0x00000000d6300000,0x00000000d8300000,0x00000000d8300000)
165   - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87fc648,0x00000000d8800000)
166   - to space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000)
167   - ParOldGen total 86016K, used 734K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
168   - object space 86016K, 0% used [0x0000000082800000,0x00000000828b7948,0x0000000087c00000)
169   - Metaspace used 15612K, capacity 16162K, committed 16256K, reserved 1062912K
170   - class space used 1965K, capacity 2093K, committed 2176K, reserved 1048576K
171   -Event: 1.574 GC heap after
172   -Heap after GC invocations=2 (full 0):
173   - PSYoungGen total 37888K, used 5100K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000)
174   - eden space 32768K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000d8300000)
175   - from space 5120K, 99% used [0x00000000d8800000,0x00000000d8cfb3d0,0x00000000d8d00000)
176   - to space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000)
177   - ParOldGen total 86016K, used 2837K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
178   - object space 86016K, 3% used [0x0000000082800000,0x0000000082ac5640,0x0000000087c00000)
179   - Metaspace used 15612K, capacity 16162K, committed 16256K, reserved 1062912K
180   - class space used 1965K, capacity 2093K, committed 2176K, reserved 1048576K
181   -}
182   -Event: 2.407 GC heap before
183   -{Heap before GC invocations=3 (full 0):
184   - PSYoungGen total 37888K, used 37868K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000)
185   - eden space 32768K, 100% used [0x00000000d6300000,0x00000000d8300000,0x00000000d8300000)
186   - from space 5120K, 99% used [0x00000000d8800000,0x00000000d8cfb3d0,0x00000000d8d00000)
187   - to space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000)
188   - ParOldGen total 86016K, used 2837K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
189   - object space 86016K, 3% used [0x0000000082800000,0x0000000082ac5640,0x0000000087c00000)
190   - Metaspace used 18896K, capacity 19682K, committed 19840K, reserved 1067008K
191   - class space used 2414K, capacity 2597K, committed 2688K, reserved 1048576K
192   -Event: 2.411 GC heap after
193   -Heap after GC invocations=3 (full 0):
194   - PSYoungGen total 37888K, used 5095K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000)
195   - eden space 32768K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000d8300000)
196   - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87f9ec0,0x00000000d8800000)
197   - to space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000)
198   - ParOldGen total 86016K, used 4607K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
199   - object space 86016K, 5% used [0x0000000082800000,0x0000000082c7fd28,0x0000000087c00000)
200   - Metaspace used 18896K, capacity 19682K, committed 19840K, reserved 1067008K
201   - class space used 2414K, capacity 2597K, committed 2688K, reserved 1048576K
202   -}
203   -
204   -Deoptimization events (10 events):
205   -Event: 0.838 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002b0ff8c method=java.io.WinNTFileSystem.normalize(Ljava/lang/String;)Ljava/lang/String; @ 128
206   -Event: 0.839 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002b25594 method=java.lang.String.indexOf([CII[CIII)I @ 3
207   -Event: 0.839 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002a2bb6c method=java.lang.String.indexOf([CII[CIII)I @ 3
208   -Event: 0.954 Thread 0x0000000002763000 Uncommon trap: reason=range_check action=make_not_entrant pc=0x0000000002b07ea0 method=sun.reflect.generics.parser.SignatureParser.current()C @ 34
209   -Event: 1.237 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002a74728 method=java.util.HashMap.hash(Ljava/lang/Object;)I @ 1
210   -Event: 1.394 Thread 0x0000000002763000 Uncommon trap: reason=null_assert action=make_not_entrant pc=0x0000000002b34768 method=java.util.zip.ZipEntry.<init>(Ljava/util/zip/ZipEntry;)V @ 70
211   -Event: 1.406 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002ad88b4 method=java.util.HashMap.hash(Ljava/lang/Object;)I @ 1
212   -Event: 1.673 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002d166cc method=org.springframework.asm.ClassReader.readUTF8(I[C)Ljava/lang/String; @ 7
213   -Event: 1.726 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002c18534 method=org.springframework.boot.context.properties.source.ConfigurationPropertyName$ElementsParser.isValidChar(CI)Z @ 21
214   -Event: 2.416 Thread 0x0000000002763000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000000002bcb010 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63
215   -
216   -Classes redefined (0 events):
217   -No events
218   -
219   -Internal exceptions (10 events):
220   -Event: 2.322 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/autoconfigure/task/TaskSchedulingAutoConfiguration$$EnhancerBySpringCGLIB$$76c7d0e2Customizer> (0x00000000d7f1ad88) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u18
221   -Event: 2.322 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/context/annotation/ConfigurationClassEnhancer$EnhancedConfigurationCustomizer> (0x00000000d7f390e8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\s
222   -Event: 2.322 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/BeanFactoryAwareCustomizer> (0x00000000d7f49098) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp
223   -Event: 2.323 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/AwareCustomizer> (0x00000000d7f587d8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210
224   -Event: 2.324 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d7f6b698) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
225   -Event: 2.324 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/autoconfigure/task/TaskSchedulingPropertiesCustomizer> (0x00000000d7f81bb0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\s
226   -Event: 2.330 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d7ff4880) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
227   -Event: 2.331 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/task/TaskSchedulerBuilderCustomizer> (0x00000000d80079f0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp
228   -Event: 2.393 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d81968b8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
229   -Event: 2.393 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000d81a87c0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
230   -
231   -Events (10 events):
232   -Event: 2.631 Thread 0x0000000019925800 Thread added: 0x0000000019925800
233   -Event: 2.631 Thread 0x000000001b37c000 Thread added: 0x000000001b37c000
234   -Event: 2.631 Thread 0x000000001b271000 Thread added: 0x000000001b271000
235   -Event: 2.631 Thread 0x0000000019925800 Thread exited: 0x0000000019925800
236   -Event: 2.633 loading class org/springframework/context/support/DefaultLifecycleProcessor
237   -Event: 2.633 loading class org/springframework/context/support/DefaultLifecycleProcessor done
238   -Event: 2.634 Thread 0x000000001b271000 Thread exited: 0x000000001b271000
239   -Event: 2.635 Thread 0x000000001b37c000 Thread exited: 0x000000001b37c000
240   -Event: 2.635 Thread 0x0000000019659000 Thread exited: 0x0000000019659000
241   -Event: 2.635 Executing VM operation: Exit
242   -
243   -
244   -Dynamic libraries:
245   -0x00007ff722c60000 - 0x00007ff722c97000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe
246   -0x00007ffc31440000 - 0x00007ffc31630000 C:\WINDOWS\SYSTEM32\ntdll.dll
247   -0x00007ffc2ff80000 - 0x00007ffc30032000 C:\WINDOWS\System32\KERNEL32.DLL
248   -0x00007ffc2e8a0000 - 0x00007ffc2eb43000 C:\WINDOWS\System32\KERNELBASE.dll
249   -0x00007ffc308d0000 - 0x00007ffc30973000 C:\WINDOWS\System32\ADVAPI32.dll
250   -0x00007ffc30040000 - 0x00007ffc300de000 C:\WINDOWS\System32\msvcrt.dll
251   -0x00007ffc303c0000 - 0x00007ffc30457000 C:\WINDOWS\System32\sechost.dll
252   -0x00007ffc30740000 - 0x00007ffc30860000 C:\WINDOWS\System32\RPCRT4.dll
253   -0x00007ffc30140000 - 0x00007ffc302d3000 C:\WINDOWS\System32\USER32.dll
254   -0x00007ffc2e5f0000 - 0x00007ffc2e611000 C:\WINDOWS\System32\win32u.dll
255   -0x00007ffc2fbe0000 - 0x00007ffc2fc06000 C:\WINDOWS\System32\GDI32.dll
256   -0x00007ffc2f350000 - 0x00007ffc2f4e4000 C:\WINDOWS\System32\gdi32full.dll
257   -0x00007ffc2e3d0000 - 0x00007ffc2e46e000 C:\WINDOWS\System32\msvcp_win.dll
258   -0x00007ffc2e4f0000 - 0x00007ffc2e5ea000 C:\WINDOWS\System32\ucrtbase.dll
259   -0x00007ffc2d820000 - 0x00007ffc2daa5000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll
260   -0x00007ffc2fc10000 - 0x00007ffc2ff46000 C:\WINDOWS\System32\combase.dll
261   -0x00007ffc2e470000 - 0x00007ffc2e4f0000 C:\WINDOWS\System32\bcryptPrimitives.dll
262   -0x00007ffc2ff50000 - 0x00007ffc2ff7e000 C:\WINDOWS\System32\IMM32.DLL
263   -0x00000000601a0000 - 0x0000000060272000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll
264   -0x000000005f8f0000 - 0x0000000060192000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
265   -0x00007ffc30e00000 - 0x00007ffc30e08000 C:\WINDOWS\System32\PSAPI.DLL
266   -0x00007ffc24e00000 - 0x00007ffc24e0a000 C:\WINDOWS\SYSTEM32\VERSION.dll
267   -0x00007ffc28560000 - 0x00007ffc28584000 C:\WINDOWS\SYSTEM32\WINMM.dll
268   -0x00007ffc19c40000 - 0x00007ffc19c49000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
269   -0x00007ffc30350000 - 0x00007ffc303bf000 C:\WINDOWS\System32\WS2_32.dll
270   -0x00007ffc28520000 - 0x00007ffc2854d000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
271   -0x00007ffc2eb50000 - 0x00007ffc2eb9a000 C:\WINDOWS\System32\cfgmgr32.dll
272   -0x000000005f8e0000 - 0x000000005f8ef000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll
273   -0x000000005f8b0000 - 0x000000005f8d9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll
274   -0x000000005f890000 - 0x000000005f8a6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll
275   -0x00007ffc2f4f0000 - 0x00007ffc2fbd2000 C:\WINDOWS\System32\SHELL32.dll
276   -0x00007ffc30530000 - 0x00007ffc305d9000 C:\WINDOWS\System32\shcore.dll
277   -0x00007ffc2eba0000 - 0x00007ffc2f31c000 C:\WINDOWS\System32\windows.storage.dll
278   -0x00007ffc2e360000 - 0x00007ffc2e37f000 C:\WINDOWS\System32\profapi.dll
279   -0x00007ffc2e380000 - 0x00007ffc2e3ca000 C:\WINDOWS\System32\powrprof.dll
280   -0x00007ffc2e310000 - 0x00007ffc2e320000 C:\WINDOWS\System32\UMPDC.dll
281   -0x00007ffc30da0000 - 0x00007ffc30df2000 C:\WINDOWS\System32\shlwapi.dll
282   -0x00007ffc2e340000 - 0x00007ffc2e351000 C:\WINDOWS\System32\kernel.appcore.dll
283   -0x00007ffc2e680000 - 0x00007ffc2e697000 C:\WINDOWS\System32\cryptsp.dll
284   -0x000000005f7b0000 - 0x000000005f7bd000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll
285   -0x000000005f7c0000 - 0x000000005f7da000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll
286   -0x00007ffc2d500000 - 0x00007ffc2d567000 C:\WINDOWS\system32\mswsock.dll
287   -0x000000005f790000 - 0x000000005f7a1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll
288   -0x00007ffc04d70000 - 0x00007ffc04d86000 C:\WINDOWS\system32\napinsp.dll
289   -0x00007ffc04d50000 - 0x00007ffc04d6a000 C:\WINDOWS\system32\pnrpnsp.dll
290   -0x00007ffc2d250000 - 0x00007ffc2d31a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
291   -0x00007ffc30f00000 - 0x00007ffc30f08000 C:\WINDOWS\System32\NSI.dll
292   -0x00007ffc2d210000 - 0x00007ffc2d24a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
293   -0x00007ffc04d40000 - 0x00007ffc04d4e000 C:\WINDOWS\System32\winrnr.dll
294   -0x00007ffc2a940000 - 0x00007ffc2a95c000 C:\WINDOWS\system32\NLAapi.dll
295   -0x00007ffc04ce0000 - 0x00007ffc04cf5000 C:\WINDOWS\system32\wshbth.dll
296   -0x00007ffc1f350000 - 0x00007ffc1f35a000 C:\Windows\System32\rasadhlp.dll
297   -0x00007ffc24e10000 - 0x00007ffc24e87000 C:\WINDOWS\System32\fwpuclnt.dll
298   -0x00007ffc2f320000 - 0x00007ffc2f346000 C:\WINDOWS\System32\bcrypt.dll
299   -0x00007ffc2d070000 - 0x00007ffc2d0a3000 C:\WINDOWS\system32\rsaenh.dll
300   -0x00007ffc2e230000 - 0x00007ffc2e255000 C:\WINDOWS\SYSTEM32\USERENV.dll
301   -0x00007ffc2d6d0000 - 0x00007ffc2d6dc000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
302   -0x00007ffc25c10000 - 0x00007ffc25c26000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
303   -0x00007ffc26470000 - 0x00007ffc2648c000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
304   -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna8652228221886876039.tmp
305   -0x000000001c900000 - 0x000000001cccb000 C:\lib\HCEHomeCMS.DLL
306   -0x000000001cdd0000 - 0x000000001d15f000 C:\lib\HCEHomeAlarm.DLL
307   -0x00007ffbfa990000 - 0x00007ffbfa9c2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll
308   -0x00007ffc2de30000 - 0x00007ffc2e024000 C:\WINDOWS\SYSTEM32\dbghelp.dll
309   -
310   -VM Arguments:
311   -java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire6445573542193290882\surefirebooter5783795620507769886.jar C:\Users\taohandong\AppData\Local\Temp\surefire6445573542193290882 2019-08-19T16-38-56_903-jvmRun1 surefire449728521128991711tmp surefire_03055783089077713138tmp
312   -java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire6445573542193290882\surefirebooter5783795620507769886.jar
313   -Launcher Type: SUN_STANDARD
314   -
315   -Environment Variables:
316   -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
317   -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar;
318   -USERNAME=taohandong
319   -OS=Windows_NT
320   -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel
321   -
322   -
323   -
324   ---------------- S Y S T E M ---------------
325   -
326   -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86)
327   -
328   -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
329   -
330   -Memory: 4k page, physical 8218728k(544920k free), swap 22852040k(3365576k free)
331   -
332   -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010)
333   -
334   -time: Mon Aug 19 16:39:00 2019
335   -elapsed time: 3 seconds (0d 0h 0m 3s)
336   -
cloud/haikang/hs_err_pid29688.log 0 → 100644
... ... @@ -0,0 +1,381 @@
  1 +#
  2 +# A fatal error has been detected by the Java Runtime Environment:
  3 +#
  4 +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000220e643f, pid=29688, tid=0x0000000000005d10
  5 +#
  6 +# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
  7 +# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
  8 +# Problematic frame:
  9 +# C [HCEHomeAlarm.DLL+0x2643f]
  10 +#
  11 +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
  12 +#
  13 +# If you would like to submit a bug report, please visit:
  14 +# http://bugreport.java.com/bugreport/crash.jsp
  15 +#
  16 +
  17 +--------------- T H R E A D ---------------
  18 +
  19 +Current thread (0x00000000178c9800): VMThread [stack: 0x00000000195b0000,0x00000000196b0000] [id=23824]
  20 +
  21 +siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
  22 +
  23 +Registers:
  24 +RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000
  25 +RSP=0x00000000196af220, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x00000000006abe30
  26 +R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x00000000196af2b0
  27 +R12=0x000000000067c470, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x000000000067c520
  28 +RIP=0x00000000220e643f, EFLAGS=0x0000000000010202
  29 +
  30 +Top of Stack: (sp=0x00000000196af220)
  31 +0x00000000196af220: 00000000263a3f60 00007ffec8fe07cd
  32 +0x00000000196af230: 00000000006b30f0 0000001800630000
  33 +0x00000000196af240: 00000000006abe30 000000002217cb11
  34 +0x00000000196af250: 0000000000000000 0000000000000000
  35 +0x00000000196af260: 000000000067e730 00000038c8fdfba1
  36 +0x00000000196af270: 0000000020668e00 00000000220e6bf2
  37 +0x00000000196af280: 0000000000000000 0000000000000001
  38 +0x00000000196af290: 0000000000000000 000000000067c470
  39 +0x00000000196af2a0: 0000000000000001 00000000220e6620
  40 +0x00000000196af2b0: 0000000000000000 0000000020668e00
  41 +0x00000000196af2c0: 000000000067c470 0000000000000000
  42 +0x00000000196af2d0: 00000000006b8fc0 0000000017755500
  43 +0x00000000196af2e0: 0000000000723570 00000000220e5cc8
  44 +0x00000000196af2f0: 0000000017755500 0000000020668e00
  45 +0x00000000196af300: 0000000000000000 0000000000000000
  46 +0x00000000196af310: 0000000000723570 000000002217db04
  47 +
  48 +Instructions: (pc=0x00000000220e643f)
  49 +0x00000000220e641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc
  50 +0x00000000220e642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20
  51 +0x00000000220e643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0
  52 +0x00000000220e644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba
  53 +
  54 +
  55 +Register to memory mapping:
  56 +
  57 +RAX=0x0000000000000001 is an unknown value
  58 +RBX=0x0000000000000000 is an unknown value
  59 +RCX=0x0000000000000000 is an unknown value
  60 +RDX=0x0000000000000000 is an unknown value
  61 +RSP=0x00000000196af220 is an unknown value
  62 +RBP=0x0000000000000000 is an unknown value
  63 +RSI=0x0000000000000000 is an unknown value
  64 +RDI=0x00000000006abe30 is an unknown value
  65 +R8 =0x0000000000000001 is an unknown value
  66 +R9 =0x0000000000000001 is an unknown value
  67 +R10=0x0000000000008000 is an unknown value
  68 +R11=0x00000000196af2b0 is an unknown value
  69 +R12=0x000000000067c470 is an unknown value
  70 +R13=0x0000000000000000 is an unknown value
  71 +R14=0x0000000000000001 is an unknown value
  72 +R15=0x000000000067c520 is an unknown value
  73 +
  74 +
  75 +Stack: [0x00000000195b0000,0x00000000196b0000], sp=0x00000000196af220, free space=1020k
  76 +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
  77 +
  78 +VM_Operation (0x00000000028dedb0): Exit, mode: safepoint, requested by thread 0x00000000028e3000
  79 +
  80 +
  81 +--------------- P R O C E S S ---------------
  82 +
  83 +Java Threads: ( => current thread )
  84 + 0x0000000020b35000 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=27240, stack(0x00000000244d0000,0x00000000245d0000)]
  85 + 0x0000000020b34800 JavaThread "scheduling-1" [_thread_blocked, id=17392, stack(0x00000000241a0000,0x00000000242a0000)]
  86 + 0x000000001993e000 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=28448, stack(0x000000001a4c0000,0x000000001a5c0000)]
  87 + 0x00000000198cd800 JavaThread "Service Thread" daemon [_thread_blocked, id=25192, stack(0x000000001a2c0000,0x000000001a3c0000)]
  88 + 0x0000000019851000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=16784, stack(0x000000001a1c0000,0x000000001a2c0000)]
  89 + 0x000000001984a000 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=22272, stack(0x000000001a0c0000,0x000000001a1c0000)]
  90 + 0x0000000019846000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=10608, stack(0x0000000019fc0000,0x000000001a0c0000)]
  91 + 0x0000000019840800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=24008, stack(0x0000000019ec0000,0x0000000019fc0000)]
  92 + 0x000000001983d800 JavaThread "Attach Listener" daemon [_thread_blocked, id=4792, stack(0x0000000019dc0000,0x0000000019ec0000)]
  93 + 0x00000000197d0800 JavaThread "Finalizer" daemon [_thread_blocked, id=19876, stack(0x0000000019bb0000,0x0000000019cb0000)]
  94 + 0x00000000029d6000 JavaThread "Reference Handler" daemon [_thread_blocked, id=13224, stack(0x00000000196b0000,0x00000000197b0000)]
  95 + 0x00000000028e3000 JavaThread "main" [_thread_blocked, id=13392, stack(0x00000000027e0000,0x00000000028e0000)]
  96 +
  97 +Other Threads:
  98 +=>0x00000000178c9800 VMThread [stack: 0x00000000195b0000,0x00000000196b0000] [id=23824]
  99 +
  100 +VM state:at safepoint (shutting down)
  101 +
  102 +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
  103 +[0x00000000027de140] Threads_lock - owner thread: 0x00000000178c9800
  104 +
  105 +Heap:
  106 + PSYoungGen total 273408K, used 244067K [0x00000000d6300000, 0x00000000ec180000, 0x0000000100000000)
  107 + eden space 258048K, 88% used [0x00000000d6300000,0x00000000e425efb8,0x00000000e5f00000)
  108 + from space 15360K, 99% used [0x00000000e5f00000,0x00000000e6dfa040,0x00000000e6e00000)
  109 + to space 18944K, 0% used [0x00000000eaf00000,0x00000000eaf00000,0x00000000ec180000)
  110 + ParOldGen total 80384K, used 23484K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000)
  111 + object space 80384K, 29% used [0x0000000082800000,0x0000000083eef3a8,0x0000000087680000)
  112 + Metaspace used 54553K, capacity 56888K, committed 57048K, reserved 1099776K
  113 + class space used 7242K, capacity 7658K, committed 7680K, reserved 1048576K
  114 +
  115 +Card table byte_map: [0x0000000011da0000,0x0000000012190000] byte_map_base: 0x000000001198c000
  116 +
  117 +Marking Bits: (ParMarkBitMap*) 0x0000000074032d00
  118 + Begin Bits: [0x0000000012c30000, 0x0000000014b90000)
  119 + End Bits: [0x0000000014b90000, 0x0000000016af0000)
  120 +
  121 +Polling page: 0x0000000002710000
  122 +
  123 +CodeCache: size=245760Kb used=19524Kb max_used=20049Kb free=226235Kb
  124 + bounds [0x00000000029e0000, 0x0000000003dc0000, 0x00000000119e0000]
  125 + total_blobs=5402 nmethods=4902 adapters=411
  126 + compilation: enabled
  127 +
  128 +Compilation events (10 events):
  129 +Event: 12.123 Thread 0x0000000019851000 5744 2 org.springframework.beans.factory.support.DefaultListableBeanFactory$$Lambda$113/1856158867::get$Lambda (9 bytes)
  130 +Event: 12.123 Thread 0x0000000019851000 nmethod 5744 0x0000000003ae8950 code [0x0000000003ae8aa0, 0x0000000003ae8c30]
  131 +Event: 12.123 Thread 0x0000000019851000 5745 2 org.springframework.beans.factory.support.DefaultListableBeanFactory$$Lambda$113/1856158867::<init> (10 bytes)
  132 +Event: 12.123 Thread 0x0000000019851000 nmethod 5745 0x0000000002e3d850 code [0x0000000002e3d9a0, 0x0000000002e3db10]
  133 +Event: 12.123 Thread 0x0000000019851000 5735 1 io.micrometer.shaded.org.pcollections.IntTree::access$200 (5 bytes)
  134 +Event: 12.123 Thread 0x0000000019851000 nmethod 5735 0x0000000003257a50 code [0x0000000003257ba0, 0x0000000003257c90]
  135 +Event: 12.123 Thread 0x0000000019851000 5736 1 io.micrometer.shaded.org.pcollections.ConsPStack::access$100 (5 bytes)
  136 +Event: 12.124 Thread 0x0000000019851000 nmethod 5736 0x0000000003990c50 code [0x0000000003990da0, 0x0000000003990e90]
  137 +Event: 12.124 Thread 0x0000000019851000 5737 1 io.micrometer.shaded.org.pcollections.ConsPStack::access$200 (5 bytes)
  138 +Event: 12.124 Thread 0x0000000019851000 nmethod 5737 0x0000000002b7ec50 code [0x0000000002b7eda0, 0x0000000002b7ee90]
  139 +
  140 +GC Heap History (10 events):
  141 +Event: 3.798 GC heap before
  142 +{Heap before GC invocations=9 (full 1):
  143 + PSYoungGen total 138752K, used 111258K [0x00000000d6300000, 0x00000000e4100000, 0x0000000100000000)
  144 + eden space 129536K, 78% used [0x00000000d6300000,0x00000000dc6abbe0,0x00000000de180000)
  145 + from space 9216K, 99% used [0x00000000de180000,0x00000000dea7aef0,0x00000000dea80000)
  146 + to space 11776K, 0% used [0x00000000e3580000,0x00000000e3580000,0x00000000e4100000)
  147 + ParOldGen total 48128K, used 9131K [0x0000000082800000, 0x0000000085700000, 0x00000000d6300000)
  148 + object space 48128K, 18% used [0x0000000082800000,0x00000000830eade8,0x0000000085700000)
  149 + Metaspace used 34326K, capacity 35338K, committed 35416K, reserved 1079296K
  150 + class space used 4451K, capacity 4681K, committed 4736K, reserved 1048576K
  151 +Event: 3.808 GC heap after
  152 +Heap after GC invocations=9 (full 1):
  153 + PSYoungGen total 212992K, used 11752K [0x00000000d6300000, 0x00000000e5780000, 0x0000000100000000)
  154 + eden space 201216K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2780000)
  155 + from space 11776K, 99% used [0x00000000e3580000,0x00000000e40fa080,0x00000000e4100000)
  156 + to space 14336K, 0% used [0x00000000e2780000,0x00000000e2780000,0x00000000e3580000)
  157 + ParOldGen total 48128K, used 11434K [0x0000000082800000, 0x0000000085700000, 0x00000000d6300000)
  158 + object space 48128K, 23% used [0x0000000082800000,0x000000008332ab58,0x0000000085700000)
  159 + Metaspace used 34326K, capacity 35338K, committed 35416K, reserved 1079296K
  160 + class space used 4451K, capacity 4681K, committed 4736K, reserved 1048576K
  161 +}
  162 +Event: 3.808 GC heap before
  163 +{Heap before GC invocations=10 (full 2):
  164 + PSYoungGen total 212992K, used 11752K [0x00000000d6300000, 0x00000000e5780000, 0x0000000100000000)
  165 + eden space 201216K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2780000)
  166 + from space 11776K, 99% used [0x00000000e3580000,0x00000000e40fa080,0x00000000e4100000)
  167 + to space 14336K, 0% used [0x00000000e2780000,0x00000000e2780000,0x00000000e3580000)
  168 + ParOldGen total 48128K, used 11434K [0x0000000082800000, 0x0000000085700000, 0x00000000d6300000)
  169 + object space 48128K, 23% used [0x0000000082800000,0x000000008332ab58,0x0000000085700000)
  170 + Metaspace used 34326K, capacity 35338K, committed 35416K, reserved 1079296K
  171 + class space used 4451K, capacity 4681K, committed 4736K, reserved 1048576K
  172 +Event: 3.891 GC heap after
  173 +Heap after GC invocations=10 (full 2):
  174 + PSYoungGen total 212992K, used 0K [0x00000000d6300000, 0x00000000e5780000, 0x0000000100000000)
  175 + eden space 201216K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2780000)
  176 + from space 11776K, 0% used [0x00000000e3580000,0x00000000e3580000,0x00000000e4100000)
  177 + to space 14336K, 0% used [0x00000000e2780000,0x00000000e2780000,0x00000000e3580000)
  178 + ParOldGen total 80384K, used 18660K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000)
  179 + object space 80384K, 23% used [0x0000000082800000,0x0000000083a392e0,0x0000000087680000)
  180 + Metaspace used 34326K, capacity 35338K, committed 35416K, reserved 1079296K
  181 + class space used 4451K, capacity 4681K, committed 4736K, reserved 1048576K
  182 +}
  183 +Event: 7.109 GC heap before
  184 +{Heap before GC invocations=11 (full 2):
  185 + PSYoungGen total 212992K, used 201216K [0x00000000d6300000, 0x00000000e5780000, 0x0000000100000000)
  186 + eden space 201216K, 100% used [0x00000000d6300000,0x00000000e2780000,0x00000000e2780000)
  187 + from space 11776K, 0% used [0x00000000e3580000,0x00000000e3580000,0x00000000e4100000)
  188 + to space 14336K, 0% used [0x00000000e2780000,0x00000000e2780000,0x00000000e3580000)
  189 + ParOldGen total 80384K, used 18660K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000)
  190 + object space 80384K, 23% used [0x0000000082800000,0x0000000083a392e0,0x0000000087680000)
  191 + Metaspace used 40683K, capacity 41946K, committed 42200K, reserved 1085440K
  192 + class space used 5265K, capacity 5527K, committed 5632K, reserved 1048576K
  193 +Event: 7.119 GC heap after
  194 +Heap after GC invocations=11 (full 2):
  195 + PSYoungGen total 215552K, used 9569K [0x00000000d6300000, 0x00000000e7d80000, 0x0000000100000000)
  196 + eden space 201216K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2780000)
  197 + from space 14336K, 66% used [0x00000000e2780000,0x00000000e30d8790,0x00000000e3580000)
  198 + to space 14336K, 0% used [0x00000000e6f80000,0x00000000e6f80000,0x00000000e7d80000)
  199 + ParOldGen total 80384K, used 18668K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000)
  200 + object space 80384K, 23% used [0x0000000082800000,0x0000000083a3b2e0,0x0000000087680000)
  201 + Metaspace used 40683K, capacity 41946K, committed 42200K, reserved 1085440K
  202 + class space used 5265K, capacity 5527K, committed 5632K, reserved 1048576K
  203 +}
  204 +Event: 8.748 GC heap before
  205 +{Heap before GC invocations=12 (full 2):
  206 + PSYoungGen total 215552K, used 210785K [0x00000000d6300000, 0x00000000e7d80000, 0x0000000100000000)
  207 + eden space 201216K, 100% used [0x00000000d6300000,0x00000000e2780000,0x00000000e2780000)
  208 + from space 14336K, 66% used [0x00000000e2780000,0x00000000e30d8790,0x00000000e3580000)
  209 + to space 14336K, 0% used [0x00000000e6f80000,0x00000000e6f80000,0x00000000e7d80000)
  210 + ParOldGen total 80384K, used 18668K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000)
  211 + object space 80384K, 23% used [0x0000000082800000,0x0000000083a3b2e0,0x0000000087680000)
  212 + Metaspace used 44288K, capacity 45790K, committed 46040K, reserved 1089536K
  213 + class space used 5737K, capacity 6057K, committed 6144K, reserved 1048576K
  214 +Event: 8.765 GC heap after
  215 +Heap after GC invocations=12 (full 2):
  216 + PSYoungGen total 269824K, used 13531K [0x00000000d6300000, 0x00000000e7d00000, 0x0000000100000000)
  217 + eden space 256000K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e5d00000)
  218 + from space 13824K, 97% used [0x00000000e6f80000,0x00000000e7cb6ec0,0x00000000e7d00000)
  219 + to space 15360K, 0% used [0x00000000e5f00000,0x00000000e5f00000,0x00000000e6e00000)
  220 + ParOldGen total 80384K, used 18676K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000)
  221 + object space 80384K, 23% used [0x0000000082800000,0x0000000083a3d2e0,0x0000000087680000)
  222 + Metaspace used 44288K, capacity 45790K, committed 46040K, reserved 1089536K
  223 + class space used 5737K, capacity 6057K, committed 6144K, reserved 1048576K
  224 +}
  225 +Event: 10.252 GC heap before
  226 +{Heap before GC invocations=13 (full 2):
  227 + PSYoungGen total 269824K, used 269531K [0x00000000d6300000, 0x00000000e7d00000, 0x0000000100000000)
  228 + eden space 256000K, 100% used [0x00000000d6300000,0x00000000e5d00000,0x00000000e5d00000)
  229 + from space 13824K, 97% used [0x00000000e6f80000,0x00000000e7cb6ec0,0x00000000e7d00000)
  230 + to space 15360K, 0% used [0x00000000e5f00000,0x00000000e5f00000,0x00000000e6e00000)
  231 + ParOldGen total 80384K, used 18676K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000)
  232 + object space 80384K, 23% used [0x0000000082800000,0x0000000083a3d2e0,0x0000000087680000)
  233 + Metaspace used 47435K, capacity 49496K, committed 49624K, reserved 1091584K
  234 + class space used 6188K, capacity 6558K, committed 6656K, reserved 1048576K
  235 +Event: 10.270 GC heap after
  236 +Heap after GC invocations=13 (full 2):
  237 + PSYoungGen total 273408K, used 15336K [0x00000000d6300000, 0x00000000ec180000, 0x0000000100000000)
  238 + eden space 258048K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e5f00000)
  239 + from space 15360K, 99% used [0x00000000e5f00000,0x00000000e6dfa040,0x00000000e6e00000)
  240 + to space 18944K, 0% used [0x00000000eaf00000,0x00000000eaf00000,0x00000000ec180000)
  241 + ParOldGen total 80384K, used 23484K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000)
  242 + object space 80384K, 29% used [0x0000000082800000,0x0000000083eef3a8,0x0000000087680000)
  243 + Metaspace used 47435K, capacity 49496K, committed 49624K, reserved 1091584K
  244 + class space used 6188K, capacity 6558K, committed 6656K, reserved 1048576K
  245 +}
  246 +
  247 +Deoptimization events (10 events):
  248 +Event: 11.720 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003126854 method=java.util.AbstractList$Itr.hasNext()Z @ 8
  249 +Event: 11.720 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003582484 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
  250 +Event: 11.755 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003126854 method=java.util.AbstractList$Itr.hasNext()Z @ 8
  251 +Event: 11.755 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003582484 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
  252 +Event: 11.757 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003126854 method=java.util.AbstractList$Itr.hasNext()Z @ 8
  253 +Event: 11.757 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003582484 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
  254 +Event: 11.983 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000037a1d4c method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7
  255 +Event: 11.983 Thread 0x0000000020b34800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000301e91c method=java.net.URLStreamHandler.parseURL(Ljava/net/URL;Ljava/lang/String;II)V @ 155
  256 +Event: 11.991 Thread 0x0000000020b34800 Uncommon trap: reason=null_check action=make_not_entrant pc=0x000000000379f690 method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7
  257 +Event: 12.031 Thread 0x00000000028e3000 Uncommon trap: reason=null_check action=make_not_entrant pc=0x00000000033bb6f4 method=org.springframework.core.annotation.AnnotatedElementUtils.searchWithGetSemanticsInAnnotations(Ljava/lang/reflect/AnnotatedElement;Ljava/util/List;Ljava/util/Set;Ljava/la
  258 +
  259 +Classes redefined (0 events):
  260 +No events
  261 +
  262 +Internal exceptions (10 events):
  263 +Event: 11.287 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/actuate/autoconfigure/web/server/ManagementServerPropertiesCustomizer> (0x00000000df7220f0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\shar
  264 +Event: 11.314 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000df9ec1f8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  265 +Event: 11.315 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistrationCustomizer> (0x00000000dfa28058) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\clas
  266 +Event: 11.316 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/serviceregistry/RegistrationCustomizer> (0x00000000dfa7d138) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDi
  267 +Event: 11.317 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/ServiceInstanceCustomizer> (0x00000000dfaa6ce8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
  268 +Event: 11.685 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e1655300) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  269 +Event: 11.685 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000e167ffa8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
  270 +Event: 12.031 Thread 0x00000000028e3000 Implicit null exception at 0x00000000033b931a to 0x00000000033bb6c9
  271 +Event: 12.106 Thread 0x0000000020b36000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e3dea878) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
  272 +Event: 12.107 Thread 0x0000000020b36000 Exception <a 'java/lang/ClassNotFoundException': com/netflix/appinfo/ApplicationInfoManagerCustomizer> (0x00000000e3e14ac0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
  273 +
  274 +Events (10 events):
  275 +Event: 12.121 Thread 0x0000000019851000 flushing nmethod 0x00000000038a6450
  276 +Event: 12.121 Thread 0x0000000019851000 flushing nmethod 0x0000000003990bd0
  277 +Event: 12.122 loading class com/sun/crypto/provider/SunJCE$1
  278 +Event: 12.122 loading class com/sun/crypto/provider/SunJCE$1 done
  279 +Event: 12.122 Thread 0x0000000019851000 flushing nmethod 0x0000000003ae8950
  280 +Event: 12.122 Thread 0x0000000019851000 flushing nmethod 0x0000000003b2e390
  281 +Event: 12.123 Thread 0x0000000019851000 flushing nmethod 0x0000000003bdbf10
  282 +Event: 12.123 Thread 0x0000000020b36000 Thread exited: 0x0000000020b36000
  283 +Event: 12.123 Thread 0x00000000197e9800 Thread exited: 0x00000000197e9800
  284 +Event: 12.124 Executing VM operation: Exit
  285 +
  286 +
  287 +Dynamic libraries:
  288 +0x00007ff68b880000 - 0x00007ff68b8b7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe
  289 +0x00007ffec8fa0000 - 0x00007ffec9190000 C:\WINDOWS\SYSTEM32\ntdll.dll
  290 +0x00007ffec7050000 - 0x00007ffec7102000 C:\WINDOWS\System32\KERNEL32.DLL
  291 +0x00007ffec6b20000 - 0x00007ffec6dc3000 C:\WINDOWS\System32\KERNELBASE.dll
  292 +0x00007ffec79a0000 - 0x00007ffec7a43000 C:\WINDOWS\System32\ADVAPI32.dll
  293 +0x00007ffec88e0000 - 0x00007ffec897e000 C:\WINDOWS\System32\msvcrt.dll
  294 +0x00007ffec7a50000 - 0x00007ffec7ae7000 C:\WINDOWS\System32\sechost.dll
  295 +0x00007ffec82d0000 - 0x00007ffec83f0000 C:\WINDOWS\System32\RPCRT4.dll
  296 +0x00007ffec7110000 - 0x00007ffec72a3000 C:\WINDOWS\System32\USER32.dll
  297 +0x00007ffec66b0000 - 0x00007ffec66d1000 C:\WINDOWS\System32\win32u.dll
  298 +0x00007ffec89f0000 - 0x00007ffec8a16000 C:\WINDOWS\System32\GDI32.dll
  299 +0x00007ffec66e0000 - 0x00007ffec6874000 C:\WINDOWS\System32\gdi32full.dll
  300 +0x00007ffec6f00000 - 0x00007ffec6f9e000 C:\WINDOWS\System32\msvcp_win.dll
  301 +0x00007ffec6880000 - 0x00007ffec697a000 C:\WINDOWS\System32\ucrtbase.dll
  302 +0x00007ffeafb50000 - 0x00007ffeafdd5000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll
  303 +0x00007ffec7d90000 - 0x00007ffec80c6000 C:\WINDOWS\System32\combase.dll
  304 +0x00007ffec6e80000 - 0x00007ffec6f00000 C:\WINDOWS\System32\bcryptPrimitives.dll
  305 +0x00007ffec8a40000 - 0x00007ffec8a6e000 C:\WINDOWS\System32\IMM32.DLL
  306 +0x00000000740c0000 - 0x0000000074192000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll
  307 +0x0000000073810000 - 0x00000000740b2000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
  308 +0x00007ffec88b0000 - 0x00007ffec88b8000 C:\WINDOWS\System32\PSAPI.DLL
  309 +0x00007ffec1410000 - 0x00007ffec1434000 C:\WINDOWS\SYSTEM32\WINMM.dll
  310 +0x00007ffeb1890000 - 0x00007ffeb1899000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
  311 +0x00007ffebcd60000 - 0x00007ffebcd6a000 C:\WINDOWS\SYSTEM32\VERSION.dll
  312 +0x00007ffec8130000 - 0x00007ffec819f000 C:\WINDOWS\System32\WS2_32.dll
  313 +0x00007ffec1170000 - 0x00007ffec119d000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
  314 +0x00007ffec6980000 - 0x00007ffec69ca000 C:\WINDOWS\System32\cfgmgr32.dll
  315 +0x0000000073800000 - 0x000000007380f000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll
  316 +0x00000000737d0000 - 0x00000000737f9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll
  317 +0x00000000737b0000 - 0x00000000737c6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll
  318 +0x00007ffec72b0000 - 0x00007ffec7992000 C:\WINDOWS\System32\SHELL32.dll
  319 +0x00007ffec8800000 - 0x00007ffec88a9000 C:\WINDOWS\System32\shcore.dll
  320 +0x00007ffec5f30000 - 0x00007ffec66ac000 C:\WINDOWS\System32\windows.storage.dll
  321 +0x00007ffec5f10000 - 0x00007ffec5f2f000 C:\WINDOWS\System32\profapi.dll
  322 +0x00007ffec5ea0000 - 0x00007ffec5eea000 C:\WINDOWS\System32\powrprof.dll
  323 +0x00007ffec5e70000 - 0x00007ffec5e80000 C:\WINDOWS\System32\UMPDC.dll
  324 +0x00007ffec86d0000 - 0x00007ffec8722000 C:\WINDOWS\System32\shlwapi.dll
  325 +0x00007ffec5e80000 - 0x00007ffec5e91000 C:\WINDOWS\System32\kernel.appcore.dll
  326 +0x00007ffec7000000 - 0x00007ffec7017000 C:\WINDOWS\System32\cryptsp.dll
  327 +0x00000000736d0000 - 0x00000000736dd000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll
  328 +0x0000000073790000 - 0x00000000737aa000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll
  329 +0x00007ffec56e0000 - 0x00007ffec5747000 C:\WINDOWS\system32\mswsock.dll
  330 +0x00000000736b0000 - 0x00000000736c1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll
  331 +0x00007ffec53f0000 - 0x00007ffec542a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
  332 +0x00007ffec88c0000 - 0x00007ffec88c8000 C:\WINDOWS\System32\NSI.dll
  333 +0x00007ffebdaa0000 - 0x00007ffebdab6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
  334 +0x00007ffebe420000 - 0x00007ffebe43c000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
  335 +0x00007ffec5430000 - 0x00007ffec54fa000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
  336 +0x00007ffeb8da0000 - 0x00007ffeb8daa000 C:\Windows\System32\rasadhlp.dll
  337 +0x00007ffebce70000 - 0x00007ffebcee7000 C:\WINDOWS\System32\fwpuclnt.dll
  338 +0x00007ffec7020000 - 0x00007ffec7046000 C:\WINDOWS\System32\bcrypt.dll
  339 +0x00007ffe9fea0000 - 0x00007ffe9feb6000 C:\WINDOWS\system32\napinsp.dll
  340 +0x00007ffe9edd0000 - 0x00007ffe9edea000 C:\WINDOWS\system32\pnrpnsp.dll
  341 +0x00007ffe9ed90000 - 0x00007ffe9ed9e000 C:\WINDOWS\System32\winrnr.dll
  342 +0x00007ffec2ba0000 - 0x00007ffec2bbc000 C:\WINDOWS\system32\NLAapi.dll
  343 +0x00007ffe9ed20000 - 0x00007ffe9ed35000 C:\WINDOWS\system32\wshbth.dll
  344 +0x00007ffec5250000 - 0x00007ffec5283000 C:\WINDOWS\system32\rsaenh.dll
  345 +0x00007ffec5d90000 - 0x00007ffec5db5000 C:\WINDOWS\SYSTEM32\USERENV.dll
  346 +0x00007ffec58b0000 - 0x00007ffec58bc000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
  347 +0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna4596171739764217585.tmp
  348 +0x0000000021cf0000 - 0x00000000220bb000 C:\lib\HCEHomeCMS.DLL
  349 +0x00000000220c0000 - 0x000000002244f000 C:\lib\HCEHomeAlarm.DLL
  350 +0x0000000023bb0000 - 0x0000000023da0000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll
  351 +0x00007ffe9bd90000 - 0x00007ffe9bdc2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll
  352 +0x0000000071e40000 - 0x0000000071e64000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunec.dll
  353 +0x00007ffec4790000 - 0x00007ffec4984000 C:\WINDOWS\SYSTEM32\dbghelp.dll
  354 +
  355 +VM Arguments:
  356 +java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5663795452921204559\surefirebooter5490973143149834000.jar C:\Users\taohandong\AppData\Local\Temp\surefire5663795452921204559 2019-08-30T14-47-30_089-jvmRun1 surefire2288351008064456144tmp surefire_03777265743351655011tmp
  357 +java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5663795452921204559\surefirebooter5490973143149834000.jar
  358 +Launcher Type: SUN_STANDARD
  359 +
  360 +Environment Variables:
  361 +JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
  362 +CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar;
  363 +USERNAME=taohandong
  364 +OS=Windows_NT
  365 +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel
  366 +
  367 +
  368 +
  369 +--------------- S Y S T E M ---------------
  370 +
  371 +OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86)
  372 +
  373 +CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
  374 +
  375 +Memory: 4k page, physical 8218728k(712828k free), swap 28521748k(3226572k free)
  376 +
  377 +vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010)
  378 +
  379 +time: Fri Aug 30 14:47:43 2019
  380 +elapsed time: 12 seconds (0d 0h 0m 12s)
  381 +
... ...
cloud/haikang/hs_err_pid5804.log
... ... @@ -1,380 +0,0 @@
1   -#
2   -# A fatal error has been detected by the Java Runtime Environment:
3   -#
4   -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000002103643f, pid=5804, tid=0x0000000000005398
5   -#
6   -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
7   -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
8   -# Problematic frame:
9   -# C [HCEHomeAlarm.DLL+0x2643f]
10   -#
11   -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
12   -#
13   -# If you would like to submit a bug report, please visit:
14   -# http://bugreport.java.com/bugreport/crash.jsp
15   -#
16   -
17   ---------------- T H R E A D ---------------
18   -
19   -Current thread (0x0000000017be9800): VMThread [stack: 0x00000000198b0000,0x00000000199b0000] [id=21400]
20   -
21   -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000
22   -
23   -Registers:
24   -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000
25   -RSP=0x00000000199af330, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x000000000093cca0
26   -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x00000000199af3c0
27   -R12=0x000000000092afe0, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x000000000092b090
28   -RIP=0x000000002103643f, EFLAGS=0x0000000000010206
29   -
30   -Top of Stack: (sp=0x00000000199af330)
31   -0x00000000199af330: 000000002207d400 00007ff8179607cd
32   -0x00000000199af340: 000000000093bd20 00000002008c0000
33   -0x00000000199af350: 000000000093cca0 00000000210ccb11
34   -0x00000000199af360: 0000000000000000 0000000000000000
35   -0x00000000199af370: 00000000009125c0 000000341795fba1
36   -0x00000000199af380: 000000001c9440e0 0000000021036bf2
37   -0x00000000199af390: 0000000000000000 0000000000000001
38   -0x00000000199af3a0: 0000000000000000 000000000092afe0
39   -0x00000000199af3b0: 0000000000000001 0000000021036620
40   -0x00000000199af3c0: 0000000000000000 000000001c9440e0
41   -0x00000000199af3d0: 000000000092afe0 0000000000000000
42   -0x00000000199af3e0: 0000000000942b00 0000000017a756d0
43   -0x00000000199af3f0: 0000000021991200 0000000021035cc8
44   -0x00000000199af400: 0000000017a756d0 000000001c9440e0
45   -0x00000000199af410: 0000000000000000 0000000000000000
46   -0x00000000199af420: 0000000021991200 00000000210cdb04
47   -
48   -Instructions: (pc=0x000000002103643f)
49   -0x000000002103641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc
50   -0x000000002103642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20
51   -0x000000002103643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0
52   -0x000000002103644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba
53   -
54   -
55   -Register to memory mapping:
56   -
57   -RAX=0x0000000000000001 is an unknown value
58   -RBX=0x0000000000000000 is an unknown value
59   -RCX=0x0000000000000000 is an unknown value
60   -RDX=0x0000000000000000 is an unknown value
61   -RSP=0x00000000199af330 is an unknown value
62   -RBP=0x0000000000000000 is an unknown value
63   -RSI=0x0000000000000000 is an unknown value
64   -RDI=0x000000000093cca0 is an unknown value
65   -R8 =0x0000000000000001 is an unknown value
66   -R9 =0x0000000000000001 is an unknown value
67   -R10=0x0000000000008000 is an unknown value
68   -R11=0x00000000199af3c0 is an unknown value
69   -R12=0x000000000092afe0 is an unknown value
70   -R13=0x0000000000000000 is an unknown value
71   -R14=0x0000000000000001 is an unknown value
72   -R15=0x000000000092b090 is an unknown value
73   -
74   -
75   -Stack: [0x00000000198b0000,0x00000000199b0000], sp=0x00000000199af330, free space=1020k
76   -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
77   -
78   -VM_Operation (0x0000000002b8ed80): Exit, mode: safepoint, requested by thread 0x0000000002c03000
79   -
80   -
81   ---------------- P R O C E S S ---------------
82   -
83   -Java Threads: ( => current thread )
84   - 0x000000001e757800 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=4628, stack(0x000000001f5d0000,0x000000001f6d0000)]
85   - 0x0000000019c8d000 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=4584, stack(0x000000001a7b0000,0x000000001a8b0000)]
86   - 0x0000000019bd8800 JavaThread "Service Thread" daemon [_thread_blocked, id=1544, stack(0x000000001a5b0000,0x000000001a6b0000)]
87   - 0x0000000019b4b800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=11108, stack(0x000000001a4b0000,0x000000001a5b0000)]
88   - 0x0000000019b44800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=15628, stack(0x000000001a3b0000,0x000000001a4b0000)]
89   - 0x0000000019b41800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=21148, stack(0x000000001a2b0000,0x000000001a3b0000)]
90   - 0x0000000019b3d800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=19612, stack(0x000000001a1b0000,0x000000001a2b0000)]
91   - 0x0000000019ae9000 JavaThread "Attach Listener" daemon [_thread_blocked, id=5504, stack(0x000000001a0b0000,0x000000001a1b0000)]
92   - 0x0000000019ae8000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=17668, stack(0x0000000019fb0000,0x000000001a0b0000)]
93   - 0x0000000019ad0800 JavaThread "Finalizer" daemon [_thread_blocked, id=18084, stack(0x0000000019eb0000,0x0000000019fb0000)]
94   - 0x0000000002cf6000 JavaThread "Reference Handler" daemon [_thread_blocked, id=21476, stack(0x00000000199b0000,0x0000000019ab0000)]
95   - 0x0000000002c03000 JavaThread "main" [_thread_blocked, id=128, stack(0x0000000002a90000,0x0000000002b90000)]
96   -
97   -Other Threads:
98   -=>0x0000000017be9800 VMThread [stack: 0x00000000198b0000,0x00000000199b0000] [id=21400]
99   -
100   -VM state:at safepoint (shutting down)
101   -
102   -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
103   -[0x0000000002bfe070] Threads_lock - owner thread: 0x0000000017be9800
104   -
105   -Heap:
106   - PSYoungGen total 110080K, used 8586K [0x00000000d6300000, 0x00000000e0580000, 0x0000000100000000)
107   - eden space 100864K, 8% used [0x00000000d6300000,0x00000000d6b62a30,0x00000000dc580000)
108   - from space 9216K, 0% used [0x00000000dc580000,0x00000000dc580000,0x00000000dce80000)
109   - to space 10240K, 0% used [0x00000000dfb80000,0x00000000dfb80000,0x00000000e0580000)
110   - ParOldGen total 87552K, used 13265K [0x0000000082800000, 0x0000000087d80000, 0x00000000d6300000)
111   - object space 87552K, 15% used [0x0000000082800000,0x00000000834f4528,0x0000000087d80000)
112   - Metaspace used 34115K, capacity 35628K, committed 35800K, reserved 1081344K
113   - class space used 4508K, capacity 4790K, committed 4864K, reserved 1048576K
114   -
115   -Card table byte_map: [0x00000000120c0000,0x00000000124b0000] byte_map_base: 0x0000000011cac000
116   -
117   -Marking Bits: (ParMarkBitMap*) 0x000000005ca12d00
118   - Begin Bits: [0x0000000012f50000, 0x0000000014eb0000)
119   - End Bits: [0x0000000014eb0000, 0x0000000016e10000)
120   -
121   -Polling page: 0x00000000008b0000
122   -
123   -CodeCache: size=245760Kb used=12489Kb max_used=12525Kb free=233270Kb
124   - bounds [0x0000000002d00000, 0x0000000003950000, 0x0000000011d00000]
125   - total_blobs=3721 nmethods=3298 adapters=334
126   - compilation: enabled
127   -
128   -Compilation events (10 events):
129   -Event: 4.095 Thread 0x0000000019b4b800 nmethod 3298 0x00000000038f4250 code [0x00000000038f43a0, 0x00000000038f44d0]
130   -Event: 4.095 Thread 0x0000000019b4b800 3299 3 java.util.logging.LogManager$LoggerContext::requiresDefaultLoggers (29 bytes)
131   -Event: 4.095 Thread 0x0000000019b3d800 3300 4 org.springframework.core.ResolvableType$1::isAssignableFrom (24 bytes)
132   -Event: 4.095 Thread 0x0000000019b4b800 nmethod 3299 0x00000000038f77d0 code [0x00000000038f7940, 0x00000000038f7d68]
133   -Event: 4.096 Thread 0x0000000019b4b800 3301 1 java.util.concurrent.ConcurrentHashMap$MapEntry::getValue (5 bytes)
134   -Event: 4.096 Thread 0x0000000019b4b800 nmethod 3301 0x00000000038f67d0 code [0x00000000038f6920, 0x00000000038f6a30]
135   -Event: 4.096 Thread 0x0000000019b4b800 3302 1 ch.qos.logback.core.pattern.Converter::getNext (5 bytes)
136   -Event: 4.096 Thread 0x0000000019b4b800 nmethod 3302 0x00000000038f7510 code [0x00000000038f7660, 0x00000000038f7770]
137   -Event: 4.097 Thread 0x0000000019b4b800 3303 ! 3 java.util.concurrent.ConcurrentHashMap::clear (176 bytes)
138   -Event: 4.098 Thread 0x0000000019b4b800 nmethod 3303 0x00000000038f1b10 code [0x00000000038f1d20, 0x00000000038f2ab8]
139   -
140   -GC Heap History (10 events):
141   -Event: 1.128 GC heap before
142   -{Heap before GC invocations=5 (full 1):
143   - PSYoungGen total 70656K, used 5119K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000)
144   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
145   - from space 5120K, 99% used [0x00000000da800000,0x00000000dacffcc0,0x00000000dad00000)
146   - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
147   - ParOldGen total 86016K, used 6297K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000)
148   - object space 86016K, 7% used [0x0000000082800000,0x0000000082e26720,0x0000000087c00000)
149   - Metaspace used 20641K, capacity 21176K, committed 21248K, reserved 1067008K
150   - class space used 2650K, capacity 2802K, committed 2816K, reserved 1048576K
151   -Event: 1.151 GC heap after
152   -Heap after GC invocations=5 (full 1):
153   - PSYoungGen total 70656K, used 0K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000)
154   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
155   - from space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000)
156   - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
157   - ParOldGen total 56832K, used 7391K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
158   - object space 56832K, 13% used [0x0000000082800000,0x0000000082f37fc8,0x0000000085f80000)
159   - Metaspace used 20641K, capacity 21176K, committed 21248K, reserved 1067008K
160   - class space used 2650K, capacity 2802K, committed 2816K, reserved 1048576K
161   -}
162   -Event: 1.614 GC heap before
163   -{Heap before GC invocations=6 (full 1):
164   - PSYoungGen total 70656K, used 65536K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000)
165   - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000)
166   - from space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000)
167   - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000)
168   - ParOldGen total 56832K, used 7391K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
169   - object space 56832K, 13% used [0x0000000082800000,0x0000000082f37fc8,0x0000000085f80000)
170   - Metaspace used 27507K, capacity 28260K, committed 28288K, reserved 1073152K
171   - class space used 3531K, capacity 3706K, committed 3712K, reserved 1048576K
172   -Event: 1.622 GC heap after
173   -Heap after GC invocations=6 (full 1):
174   - PSYoungGen total 70656K, used 5118K [0x00000000d6300000, 0x00000000dd800000, 0x0000000100000000)
175   - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000)
176   - from space 5120K, 99% used [0x00000000da300000,0x00000000da7ff870,0x00000000da800000)
177   - to space 8704K, 0% used [0x00000000dcf80000,0x00000000dcf80000,0x00000000dd800000)
178   - ParOldGen total 56832K, used 10601K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
179   - object space 56832K, 18% used [0x0000000082800000,0x000000008325a5e8,0x0000000085f80000)
180   - Metaspace used 27507K, capacity 28260K, committed 28288K, reserved 1073152K
181   - class space used 3531K, capacity 3706K, committed 3712K, reserved 1048576K
182   -}
183   -Event: 3.417 GC heap before
184   -{Heap before GC invocations=7 (full 1):
185   - PSYoungGen total 70656K, used 70654K [0x00000000d6300000, 0x00000000dd800000, 0x0000000100000000)
186   - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000)
187   - from space 5120K, 99% used [0x00000000da300000,0x00000000da7ff870,0x00000000da800000)
188   - to space 8704K, 0% used [0x00000000dcf80000,0x00000000dcf80000,0x00000000dd800000)
189   - ParOldGen total 56832K, used 10601K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
190   - object space 56832K, 18% used [0x0000000082800000,0x000000008325a5e8,0x0000000085f80000)
191   - Metaspace used 30824K, capacity 32158K, committed 32512K, reserved 1077248K
192   - class space used 3972K, capacity 4243K, committed 4352K, reserved 1048576K
193   -Event: 3.422 GC heap after
194   -Heap after GC invocations=7 (full 1):
195   - PSYoungGen total 106496K, used 7736K [0x00000000d6300000, 0x00000000dd780000, 0x0000000100000000)
196   - eden space 98304K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc300000)
197   - from space 8192K, 94% used [0x00000000dcf80000,0x00000000dd70e208,0x00000000dd780000)
198   - to space 9216K, 0% used [0x00000000dc580000,0x00000000dc580000,0x00000000dce80000)
199   - ParOldGen total 56832K, used 10609K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
200   - object space 56832K, 18% used [0x0000000082800000,0x000000008325c5e8,0x0000000085f80000)
201   - Metaspace used 30824K, capacity 32158K, committed 32512K, reserved 1077248K
202   - class space used 3972K, capacity 4243K, committed 4352K, reserved 1048576K
203   -}
204   -Event: 3.985 GC heap before
205   -{Heap before GC invocations=8 (full 1):
206   - PSYoungGen total 106496K, used 88928K [0x00000000d6300000, 0x00000000dd780000, 0x0000000100000000)
207   - eden space 98304K, 82% used [0x00000000d6300000,0x00000000db24a1a0,0x00000000dc300000)
208   - from space 8192K, 94% used [0x00000000dcf80000,0x00000000dd70e208,0x00000000dd780000)
209   - to space 9216K, 0% used [0x00000000dc580000,0x00000000dc580000,0x00000000dce80000)
210   - ParOldGen total 56832K, used 10609K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
211   - object space 56832K, 18% used [0x0000000082800000,0x000000008325c5e8,0x0000000085f80000)
212   - Metaspace used 33846K, capacity 35360K, committed 35416K, reserved 1079296K
213   - class space used 4445K, capacity 4722K, committed 4736K, reserved 1048576K
214   -Event: 3.994 GC heap after
215   -Heap after GC invocations=8 (full 1):
216   - PSYoungGen total 110080K, used 9213K [0x00000000d6300000, 0x00000000e0580000, 0x0000000100000000)
217   - eden space 100864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc580000)
218   - from space 9216K, 99% used [0x00000000dc580000,0x00000000dce7f6c8,0x00000000dce80000)
219   - to space 10240K, 0% used [0x00000000dfb80000,0x00000000dfb80000,0x00000000e0580000)
220   - ParOldGen total 56832K, used 10895K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
221   - object space 56832K, 19% used [0x0000000082800000,0x00000000832a3cc0,0x0000000085f80000)
222   - Metaspace used 33846K, capacity 35360K, committed 35416K, reserved 1079296K
223   - class space used 4445K, capacity 4722K, committed 4736K, reserved 1048576K
224   -}
225   -Event: 3.994 GC heap before
226   -{Heap before GC invocations=9 (full 2):
227   - PSYoungGen total 110080K, used 9213K [0x00000000d6300000, 0x00000000e0580000, 0x0000000100000000)
228   - eden space 100864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc580000)
229   - from space 9216K, 99% used [0x00000000dc580000,0x00000000dce7f6c8,0x00000000dce80000)
230   - to space 10240K, 0% used [0x00000000dfb80000,0x00000000dfb80000,0x00000000e0580000)
231   - ParOldGen total 56832K, used 10895K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000)
232   - object space 56832K, 19% used [0x0000000082800000,0x00000000832a3cc0,0x0000000085f80000)
233   - Metaspace used 33846K, capacity 35360K, committed 35416K, reserved 1079296K
234   - class space used 4445K, capacity 4722K, committed 4736K, reserved 1048576K
235   -Event: 4.043 GC heap after
236   -Heap after GC invocations=9 (full 2):
237   - PSYoungGen total 110080K, used 0K [0x00000000d6300000, 0x00000000e0580000, 0x0000000100000000)
238   - eden space 100864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc580000)
239   - from space 9216K, 0% used [0x00000000dc580000,0x00000000dc580000,0x00000000dce80000)
240   - to space 10240K, 0% used [0x00000000dfb80000,0x00000000dfb80000,0x00000000e0580000)
241   - ParOldGen total 87552K, used 13265K [0x0000000082800000, 0x0000000087d80000, 0x00000000d6300000)
242   - object space 87552K, 15% used [0x0000000082800000,0x00000000834f4528,0x0000000087d80000)
243   - Metaspace used 33846K, capacity 35360K, committed 35416K, reserved 1079296K
244   - class space used 4445K, capacity 4722K, committed 4736K, reserved 1048576K
245   -}
246   -
247   -Deoptimization events (10 events):
248   -Event: 3.280 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000035b9da4 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.findInChain(Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;Ljava/lang/Object;I)Lorg/springframewo
249   -Event: 3.343 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000360ed98 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.findInChain(Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;Ljava/lang/Object;I)Lorg/springframewo
250   -Event: 3.398 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000035bb154 method=java.lang.reflect.Method.equals(Ljava/lang/Object;)Z @ 1
251   -Event: 3.540 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003775984 method=org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(Ljava/lang/String;Lorg/springframework/core/ResolvableType;)Z @ 66
252   -Event: 3.789 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003813fd4 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.clear()V @ 4
253   -Event: 3.863 Thread 0x0000000002c03000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x000000000307ed50 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63
254   -Event: 3.910 Thread 0x0000000002c03000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003726afc method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
255   -Event: 3.912 Thread 0x0000000002c03000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003726afc method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
256   -Event: 3.912 Thread 0x0000000002c03000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003726afc method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
257   -Event: 3.912 Thread 0x0000000002c03000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003726afc method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14
258   -
259   -Classes redefined (0 events):
260   -No events
261   -
262   -Internal exceptions (10 events):
263   -Event: 3.770 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/core/env/EnvironmentCapableCustomizer> (0x00000000da1eadc0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
264   -Event: 3.770 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/context/ServletContextAwareCustomizer> (0x00000000da1fff18) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c
265   -Event: 3.771 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/AwareCustomizer> (0x00000000da212620) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210
266   -Event: 3.771 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/InitializingBeanCustomizer> (0x00000000da226008) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp
267   -Event: 3.771 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/DisposableBeanCustomizer> (0x00000000da2395e0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp,
268   -Event: 3.774 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000da262588) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
269   -Event: 3.774 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/support/StandardServletMultipartResolverCustomizer> (0x00000000da27e750) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\class
270   -Event: 3.775 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/MultipartResolverCustomizer> (0x00000000da297570) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c
271   -Event: 3.847 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000da5ca5e8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210]
272   -Event: 3.848 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000da5e00c8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line
273   -
274   -Events (10 events):
275   -Event: 4.094 Thread 0x000000001e757000 Thread added: 0x000000001e757000
276   -Event: 4.094 Thread 0x000000001e758800 Thread added: 0x000000001e758800
277   -Event: 4.095 Thread 0x000000001e758800 Thread exited: 0x000000001e758800
278   -Event: 4.095 loading class org/springframework/context/support/DefaultLifecycleProcessor
279   -Event: 4.095 loading class org/springframework/context/support/DefaultLifecycleProcessor done
280   -Event: 4.097 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator
281   -Event: 4.097 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator done
282   -Event: 4.098 Thread 0x000000001e756000 Thread exited: 0x000000001e756000
283   -Event: 4.098 Thread 0x000000001e757000 Thread exited: 0x000000001e757000
284   -Event: 4.099 Executing VM operation: EnableBiasedLocking
285   -
286   -
287   -Dynamic libraries:
288   -0x00007ff7b7a80000 - 0x00007ff7b7ab7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe
289   -0x00007ff817920000 - 0x00007ff817b10000 C:\WINDOWS\SYSTEM32\ntdll.dll
290   -0x00007ff815d40000 - 0x00007ff815df2000 C:\WINDOWS\System32\KERNEL32.DLL
291   -0x00007ff8156c0000 - 0x00007ff815963000 C:\WINDOWS\System32\KERNELBASE.dll
292   -0x00007ff816600000 - 0x00007ff8166a3000 C:\WINDOWS\System32\ADVAPI32.dll
293   -0x00007ff817570000 - 0x00007ff81760e000 C:\WINDOWS\System32\msvcrt.dll
294   -0x00007ff816f10000 - 0x00007ff816fa7000 C:\WINDOWS\System32\sechost.dll
295   -0x00007ff817420000 - 0x00007ff817540000 C:\WINDOWS\System32\RPCRT4.dll
296   -0x00007ff815b90000 - 0x00007ff815d23000 C:\WINDOWS\System32\USER32.dll
297   -0x00007ff815030000 - 0x00007ff815051000 C:\WINDOWS\System32\win32u.dll
298   -0x00007ff816830000 - 0x00007ff816856000 C:\WINDOWS\System32\GDI32.dll
299   -0x00007ff8154f0000 - 0x00007ff815684000 C:\WINDOWS\System32\gdi32full.dll
300   -0x00007ff815450000 - 0x00007ff8154ee000 C:\WINDOWS\System32\msvcp_win.dll
301   -0x00007ff815190000 - 0x00007ff81528a000 C:\WINDOWS\System32\ucrtbase.dll
302   -0x00007ffffbbb0000 - 0x00007ffffbe35000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll
303   -0x00007ff817080000 - 0x00007ff8173b6000 C:\WINDOWS\System32\combase.dll
304   -0x00007ff815060000 - 0x00007ff8150e0000 C:\WINDOWS\System32\bcryptPrimitives.dll
305   -0x00007ff817540000 - 0x00007ff81756e000 C:\WINDOWS\System32\IMM32.DLL
306   -0x000000005caa0000 - 0x000000005cb72000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll
307   -0x000000005c1f0000 - 0x000000005ca92000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
308   -0x00007ff815ef0000 - 0x00007ff815ef8000 C:\WINDOWS\System32\PSAPI.DLL
309   -0x00007ff8002c0000 - 0x00007ff8002c9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
310   -0x00007ff8176c0000 - 0x00007ff81772f000 C:\WINDOWS\System32\WS2_32.dll
311   -0x00007ff80b780000 - 0x00007ff80b78a000 C:\WINDOWS\SYSTEM32\VERSION.dll
312   -0x00007ff80f370000 - 0x00007ff80f394000 C:\WINDOWS\SYSTEM32\WINMM.dll
313   -0x00007ff80efa0000 - 0x00007ff80efcd000 C:\WINDOWS\SYSTEM32\winmmbase.dll
314   -0x00007ff815290000 - 0x00007ff8152da000 C:\WINDOWS\System32\cfgmgr32.dll
315   -0x000000005c1e0000 - 0x000000005c1ef000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll
316   -0x000000005c1b0000 - 0x000000005c1d9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll
317   -0x000000005c190000 - 0x000000005c1a6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll
318   -0x00007ff815f00000 - 0x00007ff8165e2000 C:\WINDOWS\System32\SHELL32.dll
319   -0x00007ff8166b0000 - 0x00007ff816759000 C:\WINDOWS\System32\shcore.dll
320   -0x00007ff8148b0000 - 0x00007ff81502c000 C:\WINDOWS\System32\windows.storage.dll
321   -0x00007ff814890000 - 0x00007ff8148af000 C:\WINDOWS\System32\profapi.dll
322   -0x00007ff814800000 - 0x00007ff81484a000 C:\WINDOWS\System32\powrprof.dll
323   -0x00007ff8147f0000 - 0x00007ff814800000 C:\WINDOWS\System32\UMPDC.dll
324   -0x00007ff815e90000 - 0x00007ff815ee2000 C:\WINDOWS\System32\shlwapi.dll
325   -0x00007ff814850000 - 0x00007ff814861000 C:\WINDOWS\System32\kernel.appcore.dll
326   -0x00007ff815430000 - 0x00007ff815447000 C:\WINDOWS\System32\cryptsp.dll
327   -0x000000005c140000 - 0x000000005c14d000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll
328   -0x000000005c170000 - 0x000000005c18a000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll
329   -0x00007ff814060000 - 0x00007ff8140c7000 C:\WINDOWS\system32\mswsock.dll
330   -0x000000005c090000 - 0x000000005c0a1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll
331   -0x00007fffee0e0000 - 0x00007fffee0f6000 C:\WINDOWS\system32\napinsp.dll
332   -0x00007fffee0c0000 - 0x00007fffee0da000 C:\WINDOWS\system32\pnrpnsp.dll
333   -0x00007ff813db0000 - 0x00007ff813e7a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
334   -0x00007ff815d30000 - 0x00007ff815d38000 C:\WINDOWS\System32\NSI.dll
335   -0x00007ff813d70000 - 0x00007ff813daa000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
336   -0x00007fffee750000 - 0x00007fffee75e000 C:\WINDOWS\System32\winrnr.dll
337   -0x00007ff811110000 - 0x00007ff81112c000 C:\WINDOWS\system32\NLAapi.dll
338   -0x00007fffee0a0000 - 0x00007fffee0b5000 C:\WINDOWS\system32\wshbth.dll
339   -0x00007ff80b540000 - 0x00007ff80b54a000 C:\Windows\System32\rasadhlp.dll
340   -0x00007ff80c3b0000 - 0x00007ff80c427000 C:\WINDOWS\System32\fwpuclnt.dll
341   -0x00007ff815690000 - 0x00007ff8156b6000 C:\WINDOWS\System32\bcrypt.dll
342   -0x00007ff813bd0000 - 0x00007ff813c03000 C:\WINDOWS\system32\rsaenh.dll
343   -0x00007ff814710000 - 0x00007ff814735000 C:\WINDOWS\SYSTEM32\USERENV.dll
344   -0x00007ff814230000 - 0x00007ff81423c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
345   -0x00007ff80cab0000 - 0x00007ff80cac6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
346   -0x00007ff80cf90000 - 0x00007ff80cfac000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
347   -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna8573894597523270195.tmp
348   -0x0000000020c40000 - 0x000000002100b000 C:\lib\HCEHomeCMS.DLL
349   -0x0000000021010000 - 0x000000002139f000 C:\lib\HCEHomeAlarm.DLL
350   -0x0000000020730000 - 0x0000000020920000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll
351   -0x00007ff805a80000 - 0x00007ff805ab2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll
352   -0x00007ff813110000 - 0x00007ff813304000 C:\WINDOWS\SYSTEM32\dbghelp.dll
353   -
354   -VM Arguments:
355   -java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire4361925548474029200\surefirebooter6466546106949192259.jar C:\Users\taohandong\AppData\Local\Temp\surefire4361925548474029200 2019-08-21T17-05-37_284-jvmRun1 surefire6910806768415210701tmp surefire_03608835572114943320tmp
356   -java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire4361925548474029200\surefirebooter6466546106949192259.jar
357   -Launcher Type: SUN_STANDARD
358   -
359   -Environment Variables:
360   -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
361   -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar;
362   -USERNAME=taohandong
363   -OS=Windows_NT
364   -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel
365   -
366   -
367   -
368   ---------------- S Y S T E M ---------------
369   -
370   -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86)
371   -
372   -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
373   -
374   -Memory: 4k page, physical 8218728k(1001364k free), swap 16922824k(2753668k free)
375   -
376   -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010)
377   -
378   -time: Wed Aug 21 17:05:42 2019
379   -elapsed time: 4 seconds (0d 0h 0m 4s)
380   -
cloud/haikang/pom.xml
... ... @@ -16,6 +16,7 @@
16 16  
17 17 <properties>
18 18 <java.version>1.8</java.version>
  19 + <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
19 20 </properties>
20 21  
21 22 <dependencies>
... ... @@ -35,11 +36,23 @@
35 36 <artifactId>spring-boot-starter-web</artifactId>
36 37 </dependency>
37 38  
38   - <!--<dependency>
  39 + <dependency>
39 40 <groupId>org.springframework.cloud</groupId>
40   - <artifactId>spring-cloud-starter-eureka-server</artifactId>
41   - <version>1.4.7.RELEASE</version>
42   - </dependency>-->
  41 + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  42 + <version>2.1.2.RELEASE</version>
  43 + </dependency>
  44 +
  45 + <dependency>
  46 + <groupId>io.springfox</groupId>
  47 + <artifactId>springfox-swagger2</artifactId>
  48 + <version>2.9.2</version>
  49 + </dependency>
  50 +
  51 + <dependency>
  52 + <groupId>io.springfox</groupId>
  53 + <artifactId>springfox-swagger-ui</artifactId>
  54 + <version>2.9.2</version>
  55 + </dependency>
43 56  
44 57 <dependency>
45 58 <groupId>com.sun.jna</groupId>
... ... @@ -76,9 +89,32 @@
76 89 <artifactId>spring-boot-starter-jdbc</artifactId>
77 90 <version>2.1.6.RELEASE</version>
78 91 </dependency>
79   -
  92 + <!--模拟http请求包-->
  93 + <dependency>
  94 + <groupId>org.apache.httpcomponents</groupId>
  95 + <artifactId>httpclient</artifactId>
  96 + <version>4.5.3</version>
  97 + </dependency>
  98 + <!--Json格式的字符串序列化和反序列化 fastjson-->
  99 + <dependency>
  100 + <groupId>com.alibaba</groupId>
  101 + <artifactId>fastjson</artifactId>
  102 + <version>1.2.58</version>
  103 + </dependency>
80 104 </dependencies>
81 105  
  106 + <dependencyManagement>
  107 + <dependencies>
  108 + <dependency>
  109 + <groupId>org.springframework.cloud</groupId>
  110 + <artifactId>spring-cloud-dependencies</artifactId>
  111 + <version>${spring-cloud.version}</version>
  112 + <type>pom</type>
  113 + <scope>import</scope>
  114 + </dependency>
  115 + </dependencies>
  116 + </dependencyManagement>
  117 +
82 118 <build>
83 119 <plugins>
84 120 <plugin>
... ...
cloud/haikang/src/main/java/com/sincere/haikang/CMSServer.java
1 1 package com.sincere.haikang;
2 2  
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.sincere.haikang.bean.AttendanceInfoBean;
  6 +import com.sincere.haikang.bean.PlaceAttendance;
  7 +import com.sincere.haikang.dao.DeviceDao;
3 8 import com.sincere.haikang.libutils.HCEHomeAlarm;
4 9 import com.sincere.haikang.libutils.HCEHomeCMS;
5 10 import com.sincere.haikang.server.AttendanceService;
  11 +import com.sincere.haikang.utils.ApiHelper;
  12 +import com.sincere.haikang.utils.FileUtils;
  13 +import com.sun.jna.Memory;
6 14 import com.sun.jna.NativeLong;
7 15 import com.sun.jna.Pointer;
8 16 import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.beans.factory.annotation.Value;
9 18 import org.springframework.boot.ApplicationArguments;
10 19 import org.springframework.boot.ApplicationRunner;
11 20 import org.springframework.stereotype.Component;
  21 +import sun.rmi.runtime.Log;
12 22  
13 23 import java.io.*;
  24 +import java.math.BigInteger;
  25 +import java.net.InetAddress;
  26 +import java.net.UnknownHostException;
14 27 import java.text.SimpleDateFormat;
  28 +import java.util.Calendar;
15 29 import java.util.Date;
  30 +import java.util.HashMap;
  31 +import java.util.Map;
16 32  
17 33 @Component
18 34 public class CMSServer implements ApplicationRunner {
  35 +
19 36 @Autowired
20 37 AttendanceService attendanceService;
21 38  
  39 + @Autowired
  40 + DeviceDao deviceDao;
  41 +
22 42 //121.40.109.21
23 43  
24 44 HCEHomeCMS hCEhomeCMS = HCEHomeCMS.INSTANCE;
... ... @@ -31,9 +51,29 @@ public class CMSServer implements ApplicationRunner {
31 51 //注册监听参数
32 52 static HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM struCMSListenPara = new HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM();
33 53  
34   - // private String ip = "121.40.109.21";
35   - private String ip = "192.168.66.54";
  54 + private String ip;
  55 +
  56 + {
  57 + try {
  58 + ip = InetAddress.getLocalHost().getHostAddress();
  59 + } catch (UnknownHostException e) {
  60 + e.printStackTrace();
  61 + }
  62 + }
  63 +
  64 + @Value("${attendanceHost}")
  65 + private String host;
  66 +
  67 + @Value("${SchoolPwd}")
  68 + private String pwd;
36 69  
  70 + @Value("${SchoolAccount}")
  71 + private String account;
  72 +
  73 + /**
  74 + * 存档设备id和登录信息
  75 + */
  76 + public static Map<String, NativeLong> deviceAndLoginIdMap = new HashMap<>();
37 77  
38 78 @Override
39 79 public void run(ApplicationArguments args) {
... ... @@ -42,7 +82,7 @@ public class CMSServer implements ApplicationRunner {
42 82 //CMS注册模块初始化
43 83 boolean binit = hCEhomeCMS.NET_ECMS_Init();
44 84  
45   - System.out.println("模块初始化:" + binit);
  85 + System.out.println("模块初始化:" + binit + " ip:" + ip);
46 86  
47 87 //注册监听参数
48 88 if (fRegisterCallBack == null) {
... ... @@ -93,7 +133,11 @@ public class CMSServer implements ApplicationRunner {
93 133 String zIp = new String(strDevRegInfo.struDevAdd.szIP, "utf-8").trim();
94 134 int port = strDevRegInfo.struDevAdd.wPort;
95 135 String time = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date());
96   - attendanceService.insert(deviceId, "23", zIp, port + "", time, "0", "1");
  136 + attendanceService.insert(deviceId, "23", zIp, port + "", time, "-1", "1");
  137 + deviceAndLoginIdMap.put(deviceId, lUserID);
  138 +
  139 + FileUtils.getInstance().writeLogs("设备注册ID:" + deviceId, FileUtils.devices);
  140 +
97 141 } catch (UnsupportedEncodingException e) {
98 142 e.printStackTrace();
99 143 }
... ... @@ -122,11 +166,7 @@ public class CMSServer implements ApplicationRunner {
122 166 // pInBuffer.struPictureSever.wPort = 7667;
123 167 pInBuffer.write();
124 168 dwInLen = pInBuffer.size();
125   -
126   -
127   - sendCards(lUserID);
128 169 // System.out.println("dwInLen:" + dwInLen + " lUserID:" + lUserID + " pUser:" + pUser);
129   -// lLoginID= lUserID;
130 170 // jTextFieldDevNo.setText(new String(strDevRegInfo.byDeviceID));
131 171 }
132 172 return true;
... ... @@ -179,7 +219,6 @@ public class CMSServer implements ApplicationRunner {
179 219  
180 220 struAMSAddr.write();
181 221  
182   -
183 222 boolean setAMSAddr = hCEhomeCMS.NET_ECMS_SetSDKLocalCfg(1, struAMSAddr.getPointer());
184 223 if (!setAMSAddr) {
185 224 System.out.println("设置回环地址:" + hCEhomeCMS.NET_ECMS_GetLastError());
... ... @@ -187,64 +226,92 @@ public class CMSServer implements ApplicationRunner {
187 226 System.out.println("设置回环地址:" + hCEhomeCMS.NET_ECMS_GetLastError() + " setAMSAddr:" + setAMSAddr);
188 227 }
189 228  
190   - private void sendCards(NativeLong lUserID) {
191   -
192   - HCEHomeCMS.NET_EHOME_XML_CFG struXMLCard = new HCEHomeCMS.NET_EHOME_XML_CFG();
193   -
  229 + /**
  230 + * 下发卡号
  231 + */
  232 + public synchronized void sendCards(String clint_id, String cardNo, String name) {
  233 + HCEHomeCMS.NET_EHOME_XML_CFG struXMLCfg = new HCEHomeCMS.NET_EHOME_XML_CFG();
  234 + HCEHomeCMS.NET_EHOME_XML_REMOTE_CTRL_PARAM struRemoteCtrl = new HCEHomeCMS.NET_EHOME_XML_REMOTE_CTRL_PARAM();
194 235 HCEHomeCMS.NET_DVR_STRING_POINTER stringRequestCard = new HCEHomeCMS.NET_DVR_STRING_POINTER();
195 236 stringRequestCard.read();
196   - String strRequestCard = "SetFingerPrintCfg";
  237 + String strRequestCard = "SETDEVICECONFIG";
  238 +
197 239 stringRequestCard.byString = strRequestCard.getBytes();
198 240 stringRequestCard.write();
199 241  
200   - struXMLCard.pCmdBuf = stringRequestCard.getPointer();
201   - struXMLCard.dwCmdLen = stringRequestCard.byString.length;
202   - struXMLCard.write();
203   -
204   - HCEHomeCMS.NET_DVR_STRING_POINTER struConfigXMLCard = new HCEHomeCMS.NET_DVR_STRING_POINTER();
205   - struConfigXMLCard.read();
206   - String strConfigXMLCard = "<Params>\r\n" +
207   - "<ConfigCmd>SetFingerPrintCfg</ConfigCmd>\r\n" +
208   - "<ConfigParam1>111111</ConfigParam1>\r\n" +
209   - "<ConfigParam2>1</ConfigParam2>\r\n" +
210   - "<ConfigXML>\r\n" +
211   - "<FingerPrintCfg>\r\n" +
212   - "<readerNo>1</readerNo>\r\n" +
213   - "<fingerType></fingerType>\r\n" +
214   - "<fingerData></fingerData>\r\n" +
215   - "</FingerPrintCfg>\r\n" +
216   - "</ConfigXML>\r\n" +
  242 + struXMLCfg.pCmdBuf = stringRequestCard.getPointer();
  243 + struXMLCfg.dwCmdLen = stringRequestCard.byString.length;
  244 + struXMLCfg.write();
  245 +
  246 + int valid = 1;//0:删除;1:有效
  247 +
  248 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  249 +
  250 + String startTime = simpleDateFormat.format(new Date());
  251 +
  252 + Calendar calendar = Calendar.getInstance();
  253 + calendar.add(Calendar.YEAR, 5);
  254 + String endTime = simpleDateFormat.format(calendar.getTime());
  255 +
  256 + HCEHomeCMS.NET_DVR_STRING_POINTER struConfigXMLInput = new HCEHomeCMS.NET_DVR_STRING_POINTER();
  257 + struConfigXMLInput.read();
  258 + String strConfigXMLCard = "<Params>\n" +
  259 + "<ConfigCmd>SetCardCfg</ConfigCmd>\n" +
  260 + "<ConfigParam1>" + Long.parseLong(cardNo,16) + "</ConfigParam1>\n" +
  261 + "<ConfigParam2>0</ConfigParam2>\n" +
  262 + "<ConfigParam3>0</ConfigParam3>\n" +
  263 + "<ConfigParam4>0</ConfigParam4>\n" +
  264 + "<ConfigXML>\n" +
  265 + "<CardCfg>\n" +
  266 + "<valid>" + valid + "</valid>\n" +
  267 + "<cardType>1</cardType>\n" +
  268 + "<leaderCardEnabled>1</leaderCardEnabled>\n" +
  269 + "<validTimeEnabled>1</validTimeEnabled>\n" +
  270 + "<ValidTime>\n" +
  271 + "<startTime>" + startTime + "</startTime>\n" +
  272 + "<endTime>" + endTime + "</endTime>\n" +
  273 + "</ValidTime>\n" +
  274 + "<password>MTIzNDU2</password><maxSwipeTime>0</maxSwipeTime>\n" +
  275 + "<swipeTime>1</swipeTime>\n" +
  276 + "<groupNo>1</groupNo>\n" +
  277 + "<name>" + name + "</name>\n" +
  278 + "</CardCfg>\n" +
  279 + "</ConfigXML>\n" +
217 280 "</Params>";
218   - struConfigXMLCard.byString = strConfigXMLCard.getBytes();
219   - struConfigXMLCard.write();
220   -
221   - struXMLCard.pInBuf = struConfigXMLCard.getPointer();
222   - struXMLCard.dwInSize = struConfigXMLCard.byString.length;
223   - struXMLCard.dwRecvTimeOut = 5000;
224   - struXMLCard.dwSendTimeOut = 5000;
225   - struXMLCard.write();
226   -
227   - HCEHomeCMS.NET_DVR_STRING_POINTER stringOutCard = new HCEHomeCMS.NET_DVR_STRING_POINTER();
228   - stringOutCard.write();
229   - struXMLCard.pOutBuf = stringOutCard.getPointer();
230   - struXMLCard.dwOutSize = stringOutCard.size();
231   - struXMLCard.write();
232   -
233   - HCEHomeCMS.NET_DVR_STRING_POINTER stringStatusCard = new HCEHomeCMS.NET_DVR_STRING_POINTER();
234   - stringStatusCard.write();
235   - struXMLCard.pStatusBuf = stringStatusCard.getPointer();
236   - struXMLCard.dwStatusSize = stringStatusCard.size();
237   - struXMLCard.write();
238   -
239   - int i = struXMLCard.size();
240   - if(!hCEhomeCMS.NET_ECMS_XMLConfig(lUserID, struXMLCard, struXMLCard.size()))
241   - {
  281 + struConfigXMLInput.byString = strConfigXMLCard.getBytes();
  282 + struConfigXMLInput.write();
  283 +
  284 +// System.out.println("InPut:"+ strConfigXMLCard);
  285 +
  286 + struXMLCfg.pInBuf = struConfigXMLInput.getPointer();
  287 + struXMLCfg.dwInSize = struConfigXMLInput.byString.length;
  288 + struXMLCfg.dwRecvTimeOut = 5000;
  289 + struXMLCfg.dwSendTimeOut = 5000;
  290 + struXMLCfg.write();
  291 +
  292 + HCEHomeCMS.NET_DVR_STRING_POINTER struConfigXMLOutput = new HCEHomeCMS.NET_DVR_STRING_POINTER();
  293 + struConfigXMLOutput.write();
  294 + struXMLCfg.pOutBuf = struConfigXMLOutput.getPointer();
  295 + struXMLCfg.dwOutSize = struConfigXMLOutput.size();
  296 + struXMLCfg.write();
  297 +
  298 + HCEHomeCMS.NET_DVR_STRING_POINTER stringXMLStatus = new HCEHomeCMS.NET_DVR_STRING_POINTER();
  299 + stringXMLStatus.write();
  300 + struXMLCfg.pStatusBuf = stringXMLStatus.getPointer();
  301 + struXMLCfg.dwStatusSize = stringXMLStatus.size();
  302 + struXMLCfg.write();
  303 +
  304 + NativeLong lLoginID = deviceAndLoginIdMap.get(clint_id);
  305 +
  306 + if (!hCEhomeCMS.NET_ECMS_XMLConfig(lLoginID, struXMLCfg, struXMLCfg.size())) {
242 307 int iErr = hCEhomeCMS.NET_ECMS_GetLastError();
  308 + FileUtils.getInstance().writeLogs("用户下发失败:" + iErr + " 设备ID:" + clint_id + " 用户:" + name+" 卡号:"+cardNo, FileUtils.sendUserErrTxt);
243 309 System.out.println("NET_ECMS_XMLConfig失败,错误号:" + iErr);
244   - }
245   - else
246   - {
247   - System.out.println("下发卡号成功,卡号:12345");
  310 + return;
  311 + } else {
  312 + struXMLCfg.read();
  313 + struConfigXMLOutput.read();
  314 + FileUtils.getInstance().writeLogs("用户下发成功" + " 设备ID:" + clint_id + " 用户:" + name, FileUtils.sendUserSucTxt);
248 315 }
249 316 }
250 317  
... ... @@ -263,20 +330,25 @@ public class CMSServer implements ApplicationRunner {
263 330  
264 331 String strXML = new String(strXMLData.byXMLData);
265 332  
266   - String majirType = strXML.substring(strXML.indexOf("MajorType"), strXML.lastIndexOf("MajorType"));
  333 + //主类型
  334 + String majirType = strXML.substring(strXML.indexOf("MajorType"), strXML.lastIndexOf("MajorType")).trim();
267 335 majirType = majirType.replace("MajorType>", "");
268 336 majirType = majirType.replace("</", "");
269   - System.out.println("majirType:" + majirType);
270 337  
271   - String cardNo = strXML.substring(strXML.indexOf("CardNo"), strXML.lastIndexOf("CardNo"));
  338 + //次类型
  339 + String minorType = strXML.substring(strXML.indexOf("MinorType"),strXML.lastIndexOf("MinorType")).trim();
  340 + minorType = minorType.replace("MinorType>","");
  341 + minorType = minorType.replace("</","");
  342 +
  343 + String cardNo = strXML.substring(strXML.indexOf("CardNo"), strXML.lastIndexOf("CardNo")).trim();
272 344 cardNo = cardNo.replace("CardNo>", "");
273 345 cardNo = cardNo.replace("</", "");
274 346  
275   - String deviceID = strXML.substring(strXML.indexOf("DeviceID"), strXML.lastIndexOf("DeviceID"));
  347 + String deviceID = strXML.substring(strXML.indexOf("DeviceID"), strXML.lastIndexOf("DeviceID")).trim();
276 348 deviceID = deviceID.replace("DeviceID>", "");
277 349 deviceID = deviceID.replace("</", "");
278 350  
279   - String time = strXML.substring(strXML.indexOf("Time"), strXML.lastIndexOf("Time"));
  351 + String time = strXML.substring(strXML.indexOf("Time"), strXML.lastIndexOf("Time")).trim();
280 352 time = time.replace("Time>", "");
281 353 time = time.replace("</", "");
282 354  
... ... @@ -285,14 +357,65 @@ public class CMSServer implements ApplicationRunner {
285 357  
286 358 } else if (majirType.equals("0x2")) {//异常
287 359  
  360 + switch (minorType){
  361 + case "0x27"://网络断开
  362 + deviceDao.updateDeviceStatu(0,"",0,deviceID);
  363 + break;
  364 + }
  365 +
288 366 } else if (majirType.equals("0x3")) {//操作
289 367  
290 368 } else if (majirType.equals("0x4")) {//
291 369  
292 370 } else if (majirType.equals("0x5")) {//事件
293   -// BigInteger bigInteger = new BigInteger(cardNo);
294   -// cardNo = cardNo(bigInteger.toString(16)).toUpperCase();
295   - System.out.println(String.format("设备号:%s 卡号:%s 时间:%s", deviceID, cardNo, time));
  371 +
  372 + if (cardNo != null && cardNo.length() > 0) {
  373 +
  374 + BigInteger bigInteger = new BigInteger(cardNo);
  375 + cardNo = String.format("%08x", bigInteger); //16进制取8位,不够补0
  376 + cardNo = cardNo(cardNo).toUpperCase();
  377 + cardNo = new BigInteger(cardNo, 16).toString();
  378 +
  379 + System.out.println(String.format("设备号:%s 卡号:%s 时间:%s", deviceID, cardNo, time));
  380 +
  381 + if (deviceID != null && !deviceID.isEmpty()) {
  382 +
  383 + PlaceAttendance placeAttendance = deviceDao.getPlaceAttendance(deviceID);
  384 +
  385 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  386 + String info = String.format("<AttendanceInfo submitTime=\"%s\"><Info device=\"%s\" card=\"%s\" operTime=\"%s\" direc=\"%s\"></Info></AttendanceInfo>", simpleDateFormat.format(new Date()), deviceID, cardNo, time, "-1");
  387 +
  388 + AttendanceInfoBean attendanceInfoBean = new AttendanceInfoBean();
  389 + attendanceInfoBean.setInfo(info);
  390 + attendanceInfoBean.setIsControl(0);
  391 + attendanceInfoBean.setPwd(pwd);
  392 + attendanceInfoBean.setUsername(account);
  393 +
  394 + String jsonResult = JSON.toJSONString(attendanceInfoBean);
  395 + System.out.println(jsonResult);
  396 +
  397 + if (placeAttendance == null) {//出入校
  398 + String urlXST = host + "api/XiaoAnCommon/SendXST";
  399 + String result1 = ApiHelper.doPost(urlXST, new HashMap<String, String>(), jsonResult);
  400 + JSONObject jsonObject = JSONObject.parseObject(result1);
  401 + if ((int) jsonObject.get("status") == 1)
  402 + FileUtils.getInstance().writeLogs("出入校签到成功:" + deviceID + " 卡号:" + cardNo, FileUtils.sendUserSucTxt);
  403 + else
  404 + FileUtils.getInstance().writeLogs("出入校签到失败:" + deviceID + " 卡号:" + cardNo + " result1:" + result1, FileUtils.sendUserErrTxt);
  405 + System.out.println("urlXST:" + result1);//{"status":1,"message":null,"data":"0"}
  406 + } else {//出入寝室
  407 + String urlHXY = host + "api/XiaoAnCommon/SendHXY";
  408 + String result2 = ApiHelper.doPost(urlHXY, new HashMap<String, String>(), jsonResult);
  409 + JSONObject jsonObject = JSONObject.parseObject(result2);
  410 + if ((int) jsonObject.get("status") == 1)
  411 + FileUtils.getInstance().writeLogs("出入寝签到成功:" + deviceID + " 卡号:" + cardNo, FileUtils.sendUserSucTxt);
  412 + else
  413 + FileUtils.getInstance().writeLogs("出入寝签到失败:" + deviceID + " 卡号:" + cardNo + " result1:" + result2, FileUtils.sendUserErrTxt);
  414 + System.out.println("urlHXY:" + result2);
  415 + }
  416 +
  417 + }
  418 + }else System.out.println("卡号为空");
296 419 }
297 420  
298 421 // System.out.println(strXML);
... ... @@ -326,13 +449,4 @@ public class CMSServer implements ApplicationRunner {
326 449 return cardR;
327 450  
328 451 }
329   -
330   - /**
331   - *
332   - * @param deviceId
333   - * @param cardNo
334   - */
335   - public void sendUserInfo(String deviceId,String cardNo){
336   - System.out.println(deviceId);
337   - }
338 452 }
... ...
cloud/haikang/src/main/java/com/sincere/haikang/HaikangApplication.java
... ... @@ -6,9 +6,18 @@ import com.sun.jna.Pointer;
6 6 import org.springframework.beans.factory.annotation.Autowired;
7 7 import org.springframework.boot.SpringApplication;
8 8 import org.springframework.boot.autoconfigure.SpringBootApplication;
  9 +import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  10 +import org.springframework.context.annotation.Bean;
  11 +import org.springframework.context.annotation.Configuration;
9 12 import org.springframework.scheduling.annotation.EnableAsync;
  13 +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  14 +
  15 +import javax.xml.ws.WebServiceClient;
  16 +import java.util.concurrent.Executor;
  17 +import java.util.concurrent.ThreadPoolExecutor;
10 18  
11 19 @SpringBootApplication
  20 +@EnableDiscoveryClient
12 21 public class HaikangApplication {
13 22  
14 23 public static void main(String[] args) {
... ... @@ -16,4 +25,22 @@ public class HaikangApplication {
16 25  
17 26 }
18 27  
  28 + @EnableAsync
  29 + @Configuration
  30 + class TaskPoolConfig{
  31 +
  32 + @Bean("taskExecutor")
  33 + public Executor taskExecutor(){
  34 + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
  35 + executor.setCorePoolSize(10);
  36 + executor.setMaxPoolSize(20);
  37 + executor.setQueueCapacity(200);
  38 + executor.setKeepAliveSeconds(60);
  39 + executor.setThreadNamePrefix("taskExecutor-");
  40 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
  41 + return executor;
  42 + }
  43 +
  44 + }
  45 +
19 46 }
... ...
cloud/haikang/src/main/java/com/sincere/haikang/SchduleTask.java
1 1 package com.sincere.haikang;
2 2  
  3 +import com.sincere.haikang.async.SendUserAsync;
  4 +import com.sincere.haikang.bean.AttendanceBean;
3 5 import com.sincere.haikang.bean.StudentBean;
  6 +import com.sincere.haikang.dao.DeviceDao;
4 7 import com.sincere.haikang.dao.UserDao;
5 8 import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.beans.factory.annotation.Value;
  10 +import org.springframework.scheduling.annotation.Async;
6 11 import org.springframework.scheduling.annotation.EnableScheduling;
7 12 import org.springframework.scheduling.annotation.Scheduled;
8 13 import org.springframework.stereotype.Component;
9 14 import org.springframework.util.StringUtils;
10 15  
11 16 import java.io.*;
  17 +import java.util.ArrayList;
12 18 import java.util.List;
13 19  
14 20 @Component
15 21 @EnableScheduling
16 22 public class SchduleTask {
17 23  
18   - CMSServer cmsServer = new CMSServer();
19   -
20 24 File saveFile = new File("C:\\save");
21 25  
22 26 File savePth = new File("C:\\save\\save.txt");
... ... @@ -24,47 +28,54 @@ public class SchduleTask {
24 28 @Autowired
25 29 UserDao userDao;
26 30  
  31 + @Value("${clint_type}")
  32 + private String clint_type;
  33 +
  34 + @Autowired
  35 + SendUserAsync sendUserAsync;
  36 +
27 37 /**
28 38 * 定时任务,取更新的学生信息
29 39 */
30 40 @Scheduled(fixedRate = 5000)
31   - public void getUpdateStudentInfo() {
32   - if (!saveFile.exists()) {
33   - try {
34   - saveFile.mkdirs();
35   - File saveFile_txt = new File(saveFile,"save.txt");
36   - if (!saveFile_txt.exists())saveFile_txt.createNewFile();
37   - } catch (IOException e) {
38   - System.out.println("e:"+e.toString());
39   - e.printStackTrace();
  41 + public synchronized void getUpdateStudentInfo() {
  42 + try {
  43 +
  44 + if (!saveFile.exists()) {
  45 + try {
  46 + saveFile.mkdirs();
  47 + File saveFile_txt = new File(saveFile, "save.txt");
  48 + if (!saveFile_txt.exists()) saveFile_txt.createNewFile();
  49 + } catch (IOException e) {
  50 + System.out.println("e:" + e.toString());
  51 + e.printStackTrace();
  52 + }
40 53 }
41   - }
42 54  
43   - try {
44 55 FileInputStream fileInputStream = new FileInputStream(savePth);
45 56 byte[] readByte = new byte[1024];
46 57 fileInputStream.read(readByte);
47 58 //存储的数据库下标
48 59 String index = new String(readByte, 0, readByte.length).trim();
49   - System.out.println("index:"+index);
  60 + System.out.println("定时任务取得下标:"+index);
50 61 List<StudentBean> studentBeans = null;
51 62 if (StringUtils.isEmpty(index)) {//没记录,取前十条
52   - studentBeans = userDao.getStudents();
53   - System.out.println("getStudents:"+studentBeans.toString());
  63 + studentBeans = userDao.getStudents();
  64 +// System.out.println("getStudents:"+studentBeans.toString());
54 65 } else {
55 66 studentBeans = userDao.getAllStudents(Long.parseLong(index));
56   - System.out.println("getAllStudents:"+studentBeans.toString());
57   - }
58   - if (studentBeans.size()>0){
59   - FileOutputStream fileOutputStream = null;
60   - fileOutputStream = new FileOutputStream(savePth);
61   - fileOutputStream.write((studentBeans.get(0).getID()+"").getBytes());
  67 +// System.out.println("getAllStudents:"+studentBeans.toString());
62 68 }
63   - }catch (Exception e){
  69 +
  70 + System.out.println("定时任务:"+studentBeans.toString());
  71 + if (sendUserAsync != null)
  72 + sendUserAsync.sendStu(studentBeans,1);
  73 +
  74 + } catch (Exception e) {
64 75 e.printStackTrace();
65 76 }
66 77  
67   -//cmsServer.sendUserInfo("1111111111","");
68 78 }
69 79  
  80 +
70 81 }
... ...
cloud/haikang/src/main/java/com/sincere/haikang/Swagger2.java 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +package com.sincere.haikang;
  2 +
  3 +import org.springframework.context.annotation.Bean;
  4 +import org.springframework.context.annotation.Configuration;
  5 +import springfox.documentation.builders.ApiInfoBuilder;
  6 +import springfox.documentation.builders.PathSelectors;
  7 +import springfox.documentation.builders.RequestHandlerSelectors;
  8 +import springfox.documentation.service.ApiInfo;
  9 +import springfox.documentation.spi.DocumentationType;
  10 +import springfox.documentation.spring.web.plugins.Docket;
  11 +import springfox.documentation.swagger2.annotations.EnableSwagger2;
  12 +
  13 +@Configuration
  14 +@EnableSwagger2
  15 +public class Swagger2 {
  16 +
  17 + @Bean
  18 + public Docket createRestApi() {
  19 + return new Docket(DocumentationType.SWAGGER_2)
  20 + .apiInfo(apiInfo())
  21 + .select()
  22 + .apis(RequestHandlerSelectors.basePackage("com.sincere.haikang.control"))
  23 + .paths(PathSelectors.any())
  24 + .build();
  25 + }
  26 +
  27 + private ApiInfo apiInfo() {
  28 + return new ApiInfoBuilder()
  29 + .title("海康指纹机接口")
  30 + .contact("sincere")
  31 + .description("")
  32 + .termsOfServiceUrl("")
  33 + .version("1.0")
  34 + .build();
  35 + }
  36 +
  37 +}
... ...
cloud/haikang/src/main/java/com/sincere/haikang/async/SendUserAsync.java 0 → 100644
... ... @@ -0,0 +1,75 @@
  1 +package com.sincere.haikang.async;
  2 +
  3 +
  4 +import com.sincere.haikang.CMSServer;
  5 +import com.sincere.haikang.bean.AttendanceBean;
  6 +import com.sincere.haikang.bean.StudentBean;
  7 +import com.sincere.haikang.dao.DeviceDao;
  8 +import com.sincere.haikang.utils.FileUtils;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.beans.factory.annotation.Value;
  11 +import org.springframework.scheduling.annotation.Async;
  12 +import org.springframework.stereotype.Component;
  13 +import org.springframework.util.StringUtils;
  14 +
  15 +import java.io.File;
  16 +import java.io.FileOutputStream;
  17 +import java.util.List;
  18 +
  19 +@Component
  20 +public class SendUserAsync {
  21 +
  22 +
  23 + File savePth = new File("C:\\save\\save.txt");
  24 +
  25 + @Value("${clint_type}")
  26 + private String clint_type;
  27 +
  28 + @Autowired
  29 + CMSServer cmsServer;
  30 +
  31 + @Autowired
  32 + DeviceDao deviceDao;
  33 +
  34 + @Async("taskExecutor")
  35 + public void sendStu(List<StudentBean> studentBeans, int type) {
  36 + try {
  37 + if (studentBeans.size() > 0) {
  38 + FileOutputStream fileOutputStream = null;
  39 + fileOutputStream = new FileOutputStream(savePth);
  40 + fileOutputStream.write((studentBeans.get(0).getID() + "").getBytes());
  41 + }
  42 +
  43 + for (StudentBean stu :
  44 + studentBeans) {
  45 +
  46 + String cardNum = null;
  47 + String school_id = null;
  48 + if (type == 0) {//调用接口下发
  49 + cardNum = stu.getStudent_num();
  50 + school_id = stu.getSchool_id()+"";
  51 + } else if (type == 1) {//更新数据下发
  52 + if (!StringUtils.isEmpty(stu.getCard()))
  53 + cardNum = stu.getCard();
  54 + else cardNum = stu.getOldCard();
  55 + school_id = stu.getSchoolId()+"";
  56 + }
  57 +
  58 + List<AttendanceBean> attendanceBeanList = deviceDao.selectDeviceWithschool_id(clint_type, school_id + "");
  59 + for (int i = 0; i < attendanceBeanList.size(); i++) {
  60 + /**
  61 + * 下发卡号给人脸设备
  62 + */
  63 + String clint_id = attendanceBeanList.get(i).getClint_id();
  64 + if (!StringUtils.isEmpty(stu.getCard()) || stu.getCard() != null || !StringUtils.isEmpty(stu.getStudent_num())) {
  65 + System.out.println("下发学生:"+stu.getName()+" schoolId:"+school_id+" cardNum:"+cardNum);
  66 + cmsServer.sendCards(clint_id, cardNum, stu.getName());
  67 + } else FileUtils.getInstance().writeLogs("没有卡号:" + stu.getName(), FileUtils.sendUserErrTxt);
  68 + }
  69 + }
  70 + } catch (Exception e) {
  71 + e.printStackTrace();
  72 + }
  73 + }
  74 +
  75 +}
... ...
cloud/haikang/src/main/java/com/sincere/haikang/bean/AttendanceInfoBean.java 0 → 100644
... ... @@ -0,0 +1,61 @@
  1 +package com.sincere.haikang.bean;
  2 +
  3 +/**
  4 + * 考勤账号表
  5 + */
  6 +public class AttendanceInfoBean {
  7 +
  8 + /**
  9 + * 控制器类型,0是其他控制器,1是微耕控制器
  10 + */
  11 + private Integer isControl;
  12 +
  13 + public Integer getIsControl() {
  14 + return isControl;
  15 + }
  16 +
  17 + public void setIsControl(Integer isControl) {
  18 + this.isControl = isControl;
  19 + }
  20 +
  21 + public String getInfo() {
  22 + return info;
  23 + }
  24 +
  25 + public void setInfo(String info) {
  26 + this.info = info;
  27 + }
  28 +
  29 + public String getUsername() {
  30 + return username;
  31 + }
  32 +
  33 + public void setUsername(String username) {
  34 + this.username = username;
  35 + }
  36 +
  37 + public String getPwd() {
  38 + return pwd;
  39 + }
  40 +
  41 + public void setPwd(String pwd) {
  42 + this.pwd = pwd;
  43 + }
  44 +
  45 + /**
  46 + * 刷卡信息,XML格式字符串:<AttendanceInfo submitTime="2017-08-01T16:30:30">
  47 + * <Info device="FD98DC58C467DB43" card="223456789" operTime="2017-08-01T11:20:30" direc="0"></Info>
  48 + * </AttendanceInfo>
  49 + */
  50 + private String info;
  51 +
  52 + /**
  53 + * 账号
  54 + */
  55 + private String username;
  56 +
  57 + /**
  58 + * 密码
  59 + */
  60 + private String pwd;
  61 +}
... ...
cloud/haikang/src/main/java/com/sincere/haikang/bean/PlaceAttendance.java 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +package com.sincere.haikang.bean;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +/**
  6 + * 场地和设备关联
  7 + */
  8 +public class PlaceAttendance implements Serializable {
  9 +
  10 + private String KaoQinAttendance;//设备id
  11 +
  12 + private String TypeTwo;//0:活动场地,1:寝室
  13 +
  14 + public String getKaoQinAttendance() {
  15 + return KaoQinAttendance;
  16 + }
  17 +
  18 + public void setKaoQinAttendance(String kaoQinAttendance) {
  19 + KaoQinAttendance = kaoQinAttendance;
  20 + }
  21 +
  22 + public String getTypeTwo() {
  23 + return TypeTwo;
  24 + }
  25 +
  26 + public void setTypeTwo(String typeTwo) {
  27 + TypeTwo = typeTwo;
  28 + }
  29 +
  30 + @Override
  31 + public String toString() {
  32 + return "PlaceAttendance{" +
  33 + "KaoQinAttendance='" + KaoQinAttendance + '\'' +
  34 + ", TypeTwo='" + TypeTwo + '\'' +
  35 + '}';
  36 + }
  37 +}
... ...
cloud/haikang/src/main/java/com/sincere/haikang/bean/StudentBean.java
... ... @@ -27,6 +27,8 @@ public class StudentBean implements Serializable {
27 27  
28 28 private int SchoolId;
29 29  
  30 + private int school_id;
  31 +
30 32 private int IsNew;
31 33  
32 34 private int UpdateType;
... ... @@ -39,6 +41,7 @@ public class StudentBean implements Serializable {
39 41  
40 42 private String StudentCode;
41 43  
  44 + private String student_num;
42 45  
43 46 public String getUserId() {
44 47 return UserId;
... ... @@ -108,6 +111,22 @@ public class StudentBean implements Serializable {
108 111 return Card;
109 112 }
110 113  
  114 + public int getSchool_id() {
  115 + return school_id;
  116 + }
  117 +
  118 + public void setSchool_id(int school_id) {
  119 + this.school_id = school_id;
  120 + }
  121 +
  122 + public String getStudent_num() {
  123 + return student_num;
  124 + }
  125 +
  126 + public void setStudent_num(String student_num) {
  127 + this.student_num = student_num;
  128 + }
  129 +
111 130 public void setCard(String card) {
112 131 Card = card;
113 132 }
... ... @@ -190,12 +209,14 @@ public class StudentBean implements Serializable {
190 209 ", OldCard='" + OldCard + '\'' +
191 210 ", Card='" + Card + '\'' +
192 211 ", SchoolId=" + SchoolId +
  212 + ", school_id=" + school_id +
193 213 ", IsNew=" + IsNew +
194 214 ", UpdateType=" + UpdateType +
195 215 ", AddTime=" + AddTime +
196 216 ", Sex=" + Sex +
197 217 ", Face='" + Face + '\'' +
198 218 ", StudentCode='" + StudentCode + '\'' +
  219 + ", student_num='" + student_num + '\'' +
199 220 '}';
200 221 }
201 222 }
... ...
cloud/haikang/src/main/java/com/sincere/haikang/control/UserControl.java 0 → 100644
... ... @@ -0,0 +1,37 @@
  1 +package com.sincere.haikang.control;
  2 +
  3 +import com.sincere.haikang.async.SendUserAsync;
  4 +import com.sincere.haikang.bean.StudentBean;
  5 +import com.sincere.haikang.dao.UserDao;
  6 +import io.swagger.annotations.Api;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.web.bind.annotation.RequestMapping;
  9 +import org.springframework.web.bind.annotation.RequestMethod;
  10 +import org.springframework.web.bind.annotation.RequestParam;
  11 +import org.springframework.web.bind.annotation.RestController;
  12 +
  13 +import java.util.List;
  14 +
  15 +@RestController
  16 +@RequestMapping("/user/*")
  17 +@Api("用户控制")
  18 +public class UserControl {
  19 +
  20 + @Autowired
  21 + SendUserAsync sendUserAsync;
  22 +
  23 + @Autowired
  24 + UserDao userDao;
  25 +
  26 + @RequestMapping(value = "sendUsers",method = RequestMethod.GET)
  27 + public boolean sendUsers(@RequestParam("schoolId")String schoolId){
  28 + List<StudentBean> studentBeans = userDao.getAllStudentsWithSchoolId(schoolId);
  29 + System.out.println("schoolId:"+schoolId+" 学生数量:"+studentBeans.size());
  30 +
  31 +// System.out.println("studentBeans:"+studentBeans);
  32 + sendUserAsync.sendStu(studentBeans,0);
  33 + return true;
  34 +
  35 + }
  36 +
  37 +}
... ...
cloud/haikang/src/main/java/com/sincere/haikang/dao/DeviceDao.java
1 1 package com.sincere.haikang.dao;
2 2  
3 3 import com.sincere.haikang.bean.AttendanceBean;
  4 +import com.sincere.haikang.bean.PlaceAttendance;
4 5 import org.apache.ibatis.annotations.*;
5 6 import org.springframework.stereotype.Repository;
6 7  
  8 +import java.util.List;
  9 +
7 10  
8 11 @Repository
9 12 @Mapper
... ... @@ -20,4 +23,15 @@ public interface DeviceDao {
20 23 int updateDeviceStatu(@Param("isConnection")int isConnection,@Param("ip")String ip,@Param("port")int port,@Param("clint_id")String clint_id);
21 24  
22 25  
  26 + @Select("select * from SZ_Attendance where clint_type = #{clint_type} and school_id = #{school_id}")
  27 + List<AttendanceBean> selectDeviceWithschool_id(@Param("clint_type")String clint_type, @Param("school_id")String school_id);
  28 +
  29 + /**
  30 + * 获取活动场地
  31 + * @param KaoQinAttendance
  32 + * @return
  33 + */
  34 + @Select("select * from XA_PlaceAttendance where KaoQinAttendance = #{KaoQinAttendance}")
  35 + PlaceAttendance getPlaceAttendance(@Param("KaoQinAttendance")String KaoQinAttendance);
  36 +
23 37 }
... ...
cloud/haikang/src/main/java/com/sincere/haikang/dao/UserDao.java
... ... @@ -4,6 +4,7 @@ import com.sincere.haikang.bean.StudentBean;
4 4 import org.apache.ibatis.annotations.Mapper;
5 5 import org.apache.ibatis.annotations.Param;
6 6 import org.apache.ibatis.annotations.Select;
  7 +import org.apache.ibatis.annotations.Update;
7 8 import org.springframework.stereotype.Repository;
8 9  
9 10 import java.util.List;
... ... @@ -25,4 +26,12 @@ public interface UserDao {
25 26 */
26 27 @Select("select * from HS_StudentUpdateCard where ID > #{id} order by AddTime desc")
27 28 List<StudentBean> getAllStudents(@Param("id")long id);
  29 +
  30 + @Select("select * from SZ_V_School_Student where school_id = #{school_id}")
  31 + List<StudentBean> getAllStudentsWithSchoolId(@Param("school_id")String school_id);
  32 +
  33 + @Update("update SZ_V_School_Student set name = #{name} where student_id = #{student_id}")
  34 + void updateTest(@Param("student_id")String student_id,@Param("name")String name);
  35 +
  36 +
28 37 }
... ...
cloud/haikang/src/main/java/com/sincere/haikang/utils/ApiHelper.java 0 → 100644
... ... @@ -0,0 +1,270 @@
  1 +package com.sincere.haikang.utils;
  2 +
  3 +import org.apache.http.HttpEntity;
  4 +import org.apache.http.NameValuePair;
  5 +import org.apache.http.client.ClientProtocolException;
  6 +import org.apache.http.client.config.RequestConfig;
  7 +import org.apache.http.client.entity.UrlEncodedFormEntity;
  8 +import org.apache.http.client.methods.*;
  9 +import org.apache.http.entity.ContentType;
  10 +import org.apache.http.entity.StringEntity;
  11 +import org.apache.http.impl.client.CloseableHttpClient;
  12 +import org.apache.http.impl.client.HttpClients;
  13 +import org.apache.http.message.BasicNameValuePair;
  14 +import org.apache.http.util.EntityUtils;
  15 +
  16 +import java.io.IOException;
  17 +import java.io.UnsupportedEncodingException;
  18 +import java.util.*;
  19 +
  20 +public class ApiHelper {
  21 +
  22 + public static String doGet(String url,Map<String, String> headerParamMap) {
  23 + CloseableHttpClient httpClient = null;
  24 + CloseableHttpResponse response = null;
  25 + String result = "";
  26 + try {
  27 + // 通过址默认配置创建一个httpClient实例
  28 + httpClient = HttpClients.createDefault();
  29 + // 创建httpGet远程连接实例
  30 + HttpGet httpGet = new HttpGet(url);
  31 + // 设置请求头信息,
  32 + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) {
  33 + httpGet.setHeader(entry.getKey(),entry.getValue());
  34 + }
  35 +
  36 + // 为httpGet实例设置配置
  37 + httpGet.setConfig(setRequestConfig());
  38 + // 执行get请求得到返回对象
  39 + response = httpClient.execute(httpGet);
  40 + // 通过返回对象获取返回数据
  41 + HttpEntity entity = response.getEntity();
  42 + // 通过EntityUtils中的toString方法将结果转换为字符串
  43 + result = EntityUtils.toString(entity);
  44 + } catch (ClientProtocolException e) {
  45 + e.printStackTrace();
  46 + } catch (IOException e) {
  47 + e.printStackTrace();
  48 + } finally {
  49 + // 关闭资源
  50 + if (null != response) {
  51 + try {
  52 + response.close();
  53 + } catch (IOException e) {
  54 + e.printStackTrace();
  55 + }
  56 + }
  57 + if (null != httpClient) {
  58 + try {
  59 + httpClient.close();
  60 + } catch (IOException e) {
  61 + e.printStackTrace();
  62 + }
  63 + }
  64 + }
  65 + return result;
  66 + }
  67 +
  68 +
  69 +
  70 + public static String doDelete(String url,Map<String, String> headerParamMap) {
  71 + CloseableHttpClient httpClient = null;
  72 + CloseableHttpResponse response = null;
  73 + String result = "";
  74 + try {
  75 + // 通过址默认配置创建一个httpClient实例
  76 + httpClient = HttpClients.createDefault();
  77 + // 创建HttpDelete远程连接实例
  78 + HttpDelete httpDelete = new HttpDelete(url);
  79 + // 设置请求头信息,
  80 + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) {
  81 + httpDelete.setHeader(entry.getKey(),entry.getValue());
  82 + }
  83 + // 为httpGet实例设置配置
  84 + httpDelete.setConfig(setRequestConfig());
  85 + // 执行get请求得到返回对象
  86 + response = httpClient.execute(httpDelete);
  87 + // 通过返回对象获取返回数据
  88 + HttpEntity entity = response.getEntity();
  89 + // 通过EntityUtils中的toString方法将结果转换为字符串
  90 + result = EntityUtils.toString(entity);
  91 + } catch (ClientProtocolException e) {
  92 + e.printStackTrace();
  93 + } catch (IOException e) {
  94 + e.printStackTrace();
  95 + } finally {
  96 + // 关闭资源
  97 + if (null != response) {
  98 + try {
  99 + response.close();
  100 + } catch (IOException e) {
  101 + e.printStackTrace();
  102 + }
  103 + }
  104 + if (null != httpClient) {
  105 + try {
  106 + httpClient.close();
  107 + } catch (IOException e) {
  108 + e.printStackTrace();
  109 + }
  110 + }
  111 + }
  112 + return result;
  113 + }
  114 +
  115 + /**
  116 + * 表单格式的post请求
  117 + *
  118 + * @param url 接口地址
  119 + * @param headerParamMap 设置请求头
  120 + * @param paramMap 设置请求值,表单格式的请求值
  121 + * @return
  122 + */
  123 + public static String doPost(String url, Map<String, String> headerParamMap, Map<String, Object> paramMap) {
  124 + CloseableHttpClient httpClient;
  125 + String result;
  126 + // 创建httpClient实例
  127 + httpClient = HttpClients.createDefault();
  128 + // 创建httpPost远程连接实例
  129 + HttpPost httpPost = new HttpPost(url);
  130 + // 设置请求头
  131 + httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
  132 + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) {
  133 + httpPost.setHeader(entry.getKey(), entry.getValue());
  134 + }
  135 + // 为httpPost实例设置配置
  136 + httpPost.setConfig(setRequestConfig());
  137 +
  138 + // 封装post请求参数
  139 + if (null != paramMap && paramMap.size() > 0) {
  140 + List<NameValuePair> nvps = new ArrayList<NameValuePair>();
  141 + // 通过map集成entrySet方法获取entity
  142 + Set<Map.Entry<String, Object>> entrySet = paramMap.entrySet();
  143 + // 循环遍历,获取迭代器
  144 + Iterator<Map.Entry<String, Object>> iterator = entrySet.iterator();
  145 + while (iterator.hasNext()) {
  146 + Map.Entry<String, Object> mapEntry = iterator.next();
  147 + nvps.add(new BasicNameValuePair(mapEntry.getKey(), mapEntry.getValue().toString()));
  148 + }
  149 +
  150 + // 为httpPost设置封装好的请求参数
  151 + try {
  152 + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(nvps, "UTF-8");
  153 + httpPost.setEntity(entity);
  154 + } catch (UnsupportedEncodingException e) {
  155 + e.printStackTrace();
  156 + }
  157 + }
  158 + result = closeHttpAndResult(httpClient, httpPost,null);
  159 + return result;
  160 + }
  161 + /**
  162 + * post请求,内容体比较灵活,任意字符串格式的内容
  163 + * @param url
  164 + * @param headerParamMap
  165 + * @param jsonParam
  166 + * @return
  167 + */
  168 + public static String doPost(String url, Map<String, String> headerParamMap, String jsonParam) {
  169 + CloseableHttpClient httpClient;
  170 + String result;
  171 + // 创建httpClient实例
  172 + httpClient = HttpClients.createDefault();
  173 + // 创建httpPost远程连接实例
  174 + HttpPost httpPost = new HttpPost(url);
  175 + // 设置请求头
  176 + httpPost.addHeader("Content-Type", "application/json");
  177 + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) {
  178 + httpPost.setHeader(entry.getKey(),entry.getValue());
  179 + }
  180 + // 为httpPost实例设置配置
  181 + httpPost.setConfig(setRequestConfig());
  182 +// try {
  183 + StringEntity stringEntity = new StringEntity(jsonParam, ContentType.create("application/json","UTF-8"));
  184 +// stringEntity.setContentType("application/json");
  185 +// stringEntity.setContentEncoding("gzip");//请求头的编码格式
  186 + httpPost.setEntity(stringEntity);
  187 +// }catch (UnsupportedEncodingException e){
  188 +// e.printStackTrace();
  189 +// }
  190 + result = closeHttpAndResult(httpClient,httpPost,null);
  191 + return result;
  192 + }
  193 +
  194 + public static String doPut(String url, Map<String, String> headerParamMap, String jsonParam) {
  195 + CloseableHttpClient httpClient;
  196 + String result;
  197 + // 创建httpClient实例
  198 + httpClient = HttpClients.createDefault();
  199 + // 创建httpPost远程连接实例
  200 + HttpPut httpPut= new HttpPut(url);
  201 + // 设置请求头
  202 + httpPut.addHeader("Content-Type", "application/json");
  203 + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) {
  204 + httpPut.setHeader(entry.getKey(),entry.getValue());
  205 + }
  206 + // 为httpPut实例设置配置
  207 + httpPut.setConfig(setRequestConfig());
  208 +
  209 + StringEntity stringEntity = new StringEntity(jsonParam, ContentType.create("application/json","UTF-8"));
  210 +
  211 + httpPut.setEntity(stringEntity);
  212 +
  213 + result = closeHttpAndResult(httpClient,null,httpPut);
  214 + return result;
  215 + }
  216 +
  217 +
  218 + private static String closeHttpAndResult(CloseableHttpClient httpClient,HttpPost httpPost,HttpPut httpPut){
  219 + CloseableHttpResponse httpResponse = null;
  220 + String result = null;
  221 + try {
  222 + // httpClient对象执行post或者是put请求,并返回响应参数对象
  223 + if(httpPost != null) {
  224 + httpResponse = httpClient.execute(httpPost);
  225 + }else {
  226 + httpResponse = httpClient.execute(httpPut);
  227 + }
  228 + // 从响应对象中获取响应内容
  229 + HttpEntity entity = httpResponse.getEntity();
  230 + result = EntityUtils.toString(entity);
  231 + } catch (ClientProtocolException e) {
  232 + e.printStackTrace();
  233 + } catch (IOException e) {
  234 + e.printStackTrace();
  235 + } finally {
  236 + // 关闭资源
  237 + if (null != httpResponse) {
  238 + try {
  239 + httpResponse.close();
  240 + } catch (IOException e) {
  241 + e.printStackTrace();
  242 + }
  243 + }
  244 + if (null != httpClient) {
  245 + try {
  246 + httpClient.close();
  247 + } catch (IOException e) {
  248 + e.printStackTrace();
  249 + }
  250 + }
  251 + }
  252 +
  253 + return result;
  254 + }
  255 +
  256 +
  257 + /**
  258 + * 设置配置请求参数
  259 + * @return
  260 + */
  261 + private static RequestConfig setRequestConfig(){
  262 + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 连接主机服务超时时间
  263 + .setConnectionRequestTimeout(35000)// 请求超时时间
  264 + .setSocketTimeout(60000)// 数据读取超时时间
  265 + .build();
  266 +
  267 + return requestConfig;
  268 + }
  269 +}
  270 +
... ...
cloud/haikang/src/main/java/com/sincere/haikang/utils/FileUtils.java 0 → 100644
... ... @@ -0,0 +1,78 @@
  1 +package com.sincere.haikang.utils;
  2 +
  3 +import java.io.*;
  4 +import java.text.SimpleDateFormat;
  5 +import java.util.Date;
  6 +
  7 +/**
  8 + * 日志记录、文件操作工具类
  9 + */
  10 +public class FileUtils {
  11 +
  12 +
  13 + private static FileUtils fileUtils;
  14 +
  15 + private String filePath = "./log/";//日志记录目录
  16 +
  17 + public static String devices = "devices.txt";//设备记录
  18 +
  19 + public static String sendUserErrTxt = "senduserErr.txt";//用户下发失败记录
  20 +
  21 + public static String sendUserSucTxt = "senduserSuc.txt";//用户下发成功记录
  22 +
  23 + public static FileUtils getInstance() {
  24 + if (null == fileUtils) {
  25 + synchronized (FileUtils.class) {
  26 + fileUtils = new FileUtils();
  27 + }
  28 + }
  29 + return fileUtils;
  30 + }
  31 +
  32 +
  33 + public FileUtils() {
  34 +
  35 + File filePa = new File(filePath);
  36 + if (!filePa.exists()) filePa.mkdirs();
  37 +
  38 + }
  39 +
  40 +
  41 + /**
  42 + * @param content 日志内容
  43 + * @param fileName 文件名字
  44 + */
  45 + public void writeLogs(String content, String fileName) {
  46 +
  47 + File logPath = new File(filePath, fileName);
  48 +
  49 + try {
  50 +// System.out.println("logPath:" + logPath.getAbsolutePath());
  51 + if (!logPath.exists()) logPath.createNewFile();
  52 +
  53 + FileOutputStream fileOutputStream = new FileOutputStream(logPath, true);//true表示文件后面续写
  54 +
  55 + String writeContent = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())
  56 + + " " + content + "\r\n";
  57 +
  58 + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
  59 +
  60 + outputStreamWriter.write(writeContent);
  61 +
  62 + outputStreamWriter.write("\r\n");
  63 +
  64 + outputStreamWriter.close();
  65 +
  66 + } catch (FileNotFoundException e) {
  67 + e.printStackTrace();
  68 + } catch (UnsupportedEncodingException e) {
  69 + e.printStackTrace();
  70 + } catch (IOException e) {
  71 + e.printStackTrace();
  72 + }
  73 +
  74 +
  75 + }
  76 +
  77 +
  78 +}
... ...
cloud/haikang/src/main/resources/application.yaml
... ... @@ -16,9 +16,29 @@ spring:
16 16 # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
17 17  
18 18  
  19 +eureka:
  20 + instance:
  21 + hostname: localhost
  22 + lease-expiration-duration-in-seconds: 60
  23 + lease-renewal-interval-in-seconds: 10
  24 + client:
  25 + service-url:
  26 +# defaultZone: http://localhost:8761/eureka/
  27 + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/
19 28  
20 29 mybatis:
21 30 type-aliases-package: com.sincere.haikang.dao
22 31 mapper-locations: classpath:mapper/*.xml
23 32 config-location: classpath:mybatis-config.xml
24 33  
  34 +attendanceHost: http://campus.myjxt.com/
  35 +SchoolAccount: ceshixiao
  36 +SchoolPwd: 11111111-6fef-48gh-a5a9-447ec68bff1f
  37 +
  38 +clint_type: 23
  39 +
  40 +ip: localhost
  41 +
  42 +
  43 +
  44 +
... ...
cloud/haikang/src/test/java/com/sincere/haikang/HaikangApplicationTests.java
1 1 package com.sincere.haikang;
2 2  
  3 +import com.sincere.haikang.dao.UserDao;
3 4 import com.sincere.haikang.server.AttendanceService;
4 5 import org.junit.Test;
5 6 import org.junit.runner.RunWith;
... ... @@ -11,14 +12,19 @@ import org.springframework.test.context.junit4.SpringRunner;
11 12 @SpringBootTest
12 13 public class HaikangApplicationTests {
13 14  
  15 +// @Autowired
  16 +// AttendanceService attendanceService;
  17 +
14 18 @Autowired
15   - AttendanceService attendanceService;
  19 + UserDao userDao;
16 20  
17 21 @Test
18 22 public void contextLoads() {
19 23  
20   -
21   - attendanceService.insert("11111111","23", "1", 0 + "", "", "0", "1");
  24 +// attendanceService.insert("11111111","23", "1", 0 + "", "", "0", "1");
  25 +// for (int i = 12035; i < 12167; i++) {
  26 +// userDao.updateTest(i+"","测试"+i);
  27 +// }
22 28  
23 29 }
24 30  
... ...
cloud/mypulsar/pom.xml
... ... @@ -73,6 +73,10 @@
73 73 <version>2.0.1</version>
74 74 </dependency>
75 75  
  76 + <dependency>
  77 + <groupId>org.springframework.cloud</groupId>
  78 + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  79 + </dependency>
76 80 <!--<dependency>-->
77 81 <!--<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>-->
78 82 <!--<artifactId>mybatis-enhance-actable</artifactId>-->
... ... @@ -80,6 +84,18 @@
80 84 <!--</dependency>-->
81 85 </dependencies>
82 86  
  87 + <dependencyManagement>
  88 + <dependencies>
  89 + <dependency>
  90 + <groupId>org.springframework.cloud</groupId>
  91 + <artifactId>spring-cloud-dependencies</artifactId>
  92 + <version>${spring-cloud.version}</version>
  93 + <type>pom</type>
  94 + <scope>import</scope>
  95 + </dependency>
  96 + </dependencies>
  97 + </dependencyManagement>
  98 +
83 99 <build>
84 100 <plugins>
85 101 <plugin>
... ...
cloud/mypulsar/src/main/java/com/example/mypulsar/MypulsarApplication.java
... ... @@ -3,11 +3,13 @@ package com.example.mypulsar;
3 3 import org.mybatis.spring.annotation.MapperScan;
4 4 import org.springframework.boot.SpringApplication;
5 5 import org.springframework.boot.autoconfigure.SpringBootApplication;
  6 +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 7 import org.springframework.context.annotation.Bean;
7 8 import org.springframework.jdbc.core.JdbcTemplate;
8 9  
9 10 @SpringBootApplication
10 11 @MapperScan("com.example.mypulsar.dao")
  12 +@EnableEurekaServer
11 13 public class MypulsarApplication {
12 14  
13 15  
... ...
cloud/mypulsar/src/main/java/com/example/mypulsar/service/UserServiceImp.java
... ... @@ -17,4 +17,15 @@ public class UserServiceImp implements UserService {
17 17 public List<User> select() {
18 18 return userDao.select();
19 19 }
  20 +
  21 + /**
  22 + * http://60.190.202.57:8023/
  23 + * POST /api/IotApp/UpdateDeviceOnlineStatus
  24 + * 设备上下线状态更新(服务端调用)
  25 + * 传参:
  26 + * id (integer, optional): 0下线,1上线 ,
  27 + * deviceId (string, optional): 设备id ,
  28 + * dtime (string, optional): Id为0,下线时间;为1 ,上线时间
  29 + */
  30 +
20 31 }
... ...
cloud/mypulsar/src/main/resources/application.yaml
... ... @@ -13,4 +13,16 @@ spring:
13 13 mybatis:
14 14 type-aliases-package: com.example.mypulsar.dao
15 15 mapper-locations: classpath:mapper/*.xml
16   - config-location: classpath:mybatis-config.xml
17 16 \ No newline at end of file
  17 + config-location: classpath:mybatis-config.xml
  18 +
  19 +
  20 +
  21 +eureka:
  22 + instance:
  23 + hostname: localhost
  24 + lease-expiration-duration-in-seconds: 60
  25 + lease-renewal-interval-in-seconds: 10
  26 + client:
  27 + service-url:
  28 + # defaultZone: http://localhost:8761/eureka/
  29 + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/
18 30 \ No newline at end of file
... ...
cloud/mypulsar/src/test/java/com/example/mypulsar/MypulsarApplicationTests.java
... ... @@ -3,12 +3,20 @@ package com.example.mypulsar;
3 3 import org.junit.Test;
4 4 import org.junit.runner.RunWith;
5 5 import org.springframework.boot.test.context.SpringBootTest;
  6 +import org.springframework.http.HttpEntity;
  7 +import org.springframework.http.HttpHeaders;
  8 +import org.springframework.http.MediaType;
6 9 import org.springframework.test.context.junit4.SpringRunner;
  10 +import org.springframework.util.LinkedMultiValueMap;
  11 +import org.springframework.util.MultiValueMap;
  12 +import org.springframework.web.client.RestTemplate;
7 13  
8 14 @RunWith(SpringRunner.class)
9 15 @SpringBootTest
10 16 public class MypulsarApplicationTests {
11 17  
  18 +
  19 +
12 20 @Test
13 21 public void contextLoads() {
14 22 }
... ...
cloud/sdklog/2019-09-02_10-13-39.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-02 10:13:39.922
  2 +[2019-09-02 10:13:39.922][P:12260/T:14392][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-02 10:13:39.938][P:12260/T:14392][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 00000000254B0000
  4 +
  5 +[2019-09-02 10:13:39.938][P:12260/T:14392][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-02 10:13:39.941][P:12260/T:14392][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=00000000217A0050, dwUser=0000000000000000].
  7 +[2019-09-02 10:13:39.941][P:12260/T:14392][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-02 10:13:39.941][P:12260/T:14392][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-02 10:13:39.941][P:12260/T:14392][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-02 10:13:39.942][P:12260/T:14392][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-02 10:13:39.942][P:12260/T:14392][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-02 10:13:39.944][P:12260/T:14392][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=00000000217A0090, dwUserData=0000000000000000.]
  13 +[2019-09-02 10:13:39.944][P:12260/T:14392][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=581757968.]
... ...
cloud/sdklog/2019-09-04_11-27-02.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 11:27:02.062
  2 +[2019-09-04 11:27:02.063][P:15756/T:12212][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 11:27:02.086][P:15756/T:12212][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 0000000025760000
  4 +
  5 +[2019-09-04 11:27:02.086][P:15756/T:12212][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 11:27:02.090][P:15756/T:12212][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=00000000218F0050, dwUser=0000000000000000].
  7 +[2019-09-04 11:27:02.090][P:15756/T:12212][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 11:27:02.090][P:15756/T:12212][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 11:27:02.090][P:15756/T:12212][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 11:27:02.091][P:15756/T:12212][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 11:27:02.091][P:15756/T:12212][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 11:27:02.093][P:15756/T:12212][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=00000000218F0090, dwUserData=0000000000000000.]
  13 +[2019-09-04 11:27:02.093][P:15756/T:12212][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=584313872.]
... ...
cloud/sdklog/2019-09-04_11-29-52.log 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +Begin Time:2019-09-04 11:29:52.136
  2 +[2019-09-04 11:29:52.136][P:18472/T:12392][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically
  3 +[2019-09-04 11:29:52.153][P:18472/T:12392][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 00000000256A0000
  4 +
  5 +[2019-09-04 11:29:52.153][P:18472/T:12392][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically
  6 +[2019-09-04 11:29:52.156][P:18472/T:12392][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=0000000021A30050, dwUser=0000000000000000].
  7 +[2019-09-04 11:29:52.156][P:18472/T:12392][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect.
  8 +[2019-09-04 11:29:52.157][P:18472/T:12392][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1].
  9 +[2019-09-04 11:29:52.157][P:18472/T:12392][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime.
  10 +[2019-09-04 11:29:52.157][P:18472/T:12392][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0].
  11 +[2019-09-04 11:29:52.157][P:18472/T:12392][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam.
  12 +[2019-09-04 11:29:52.159][P:18472/T:12392][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=0000000021A30090, dwUserData=0000000000000000.]
  13 +[2019-09-04 11:29:52.159][P:18472/T:12392][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=564784144.]
... ...
cloud/server1/pom.xml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3   - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4 4 <modelVersion>4.0.0</modelVersion>
5 5 <parent>
6 6 <groupId>org.springframework.boot</groupId>
7 7 <artifactId>spring-boot-starter-parent</artifactId>
8   - <version>2.1.6.RELEASE</version>
  8 + <version>2.1.7.RELEASE</version>
9 9 <relativePath/> <!-- lookup parent from repository -->
10 10 </parent>
11   - <groupId>com.example</groupId>
  11 + <groupId>com.sincere</groupId>
12 12 <artifactId>server1</artifactId>
13   - <version>1.0.0</version>
  13 + <version>0.0.1-SNAPSHOT</version>
14 14 <name>server1</name>
15 15 <description>Demo project for Spring Boot</description>
16 16  
17 17 <properties>
18 18 <java.version>1.8</java.version>
19   - <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
  19 + <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
20 20 </properties>
21 21  
22 22 <dependencies>
23 23 <dependency>
24   - <groupId>org.springframework.boot</groupId>
25   - <artifactId>spring-boot-starter-web</artifactId>
26   - </dependency>
27   - <dependency>
28 24 <groupId>org.springframework.cloud</groupId>
29 25 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
30 26 </dependency>
31 27  
32 28 <dependency>
33 29 <groupId>org.springframework.boot</groupId>
34   - <artifactId>spring-boot-configuration-processor</artifactId>
35   - <!--<version>2.1.3.RELEASE</version>-->
36   - </dependency>
37   -
38   - <dependency>
39   - <groupId>org.springframework.boot</groupId>
40 30 <artifactId>spring-boot-starter-test</artifactId>
41 31 <scope>test</scope>
42 32 </dependency>
43   -
44 33 </dependencies>
45 34  
46 35 <dependencyManagement>
... ...
cloud/server1/src/main/java/com/example/server1/Server1Application.java
... ... @@ -1,17 +0,0 @@
1   -package com.example.server1;
2   -
3   -import org.springframework.boot.SpringApplication;
4   -import org.springframework.boot.autoconfigure.SpringBootApplication;
5   -import org.springframework.boot.context.properties.ConfigurationProperties;
6   -import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7   -
8   -@ConfigurationProperties
9   -@EnableDiscoveryClient
10   -@SpringBootApplication
11   -public class Server1Application {
12   -
13   - public static void main(String[] args) {
14   - SpringApplication.run(Server1Application.class, args);
15   - }
16   -
17   -}
cloud/server1/src/main/java/com/example/server1/control/HelloControler.java
... ... @@ -1,26 +0,0 @@
1   -package com.example.server1.control;
2   -
3   -import org.springframework.beans.factory.annotation.Autowired;
4   -import org.springframework.cloud.client.ServiceInstance;
5   -import org.springframework.cloud.client.discovery.DiscoveryClient;
6   -import org.springframework.web.bind.annotation.RequestMapping;
7   -import org.springframework.web.bind.annotation.RequestMethod;
8   -import org.springframework.web.bind.annotation.RestController;
9   -
10   -import java.util.List;
11   -
12   -
13   -@RestController
14   -public class HelloControler {
15   -
16   - @Autowired
17   - private DiscoveryClient client;
18   -
19   - @RequestMapping(value = "/hello",method = RequestMethod.GET)
20   - public String index(){
21   - System.out.println("hello1:");
22   - List<ServiceInstance> instance = client.getInstances("hello-service");
23   - return "hello";
24   - }
25   -
26   -}
cloud/server1/src/main/java/com/sincere/server1/Server1Application.java 0 → 100644
... ... @@ -0,0 +1,15 @@
  1 +package com.sincere.server1;
  2 +
  3 +import org.springframework.boot.SpringApplication;
  4 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  5 +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
  6 +
  7 +@EnableEurekaServer
  8 +@SpringBootApplication
  9 +public class Server1Application {
  10 +
  11 + public static void main(String[] args) {
  12 + SpringApplication.run(Server1Application.class, args);
  13 + }
  14 +
  15 +}
... ...
cloud/server1/src/main/resources/META-INF/additional-spring-configuration-metadata.json
... ... @@ -1,8 +0,0 @@
1   -{
2   - "properties": [
3   - {
4   - "name": "eureka.client.serviceUrl.defaultZone",
5   - "type": "java.lang.String",
6   - "description": "Description for eureka.client.serviceUrl.defaultZone."
7   - }
8   - ] }
9 0 \ No newline at end of file
cloud/server1/src/main/resources/application.properties
... ... @@ -1,8 +0,0 @@
1   -spring.application.name= hello-service
2   -eureka.client.serviceUrl.defaultZone=http://220.189.228.132:1112/eureka
3   -server.port=8081
4   -
5   -eureka.instance.lease-renewal-interval-in-seconds=30
6   -eureka.instance.lease-expiration-duration-in-seconds=90
7   -
8   -eureka.instance.instance-id=hello-service
cloud/server1/src/main/resources/application.yaml 0 → 100644
... ... @@ -0,0 +1,30 @@
  1 +server:
  2 + port: 8761
  3 +
  4 +spring:
  5 + application:
  6 + name: eureka-server
  7 + profiles:
  8 + active: dev
  9 +
  10 +eureka:
  11 + instance:
  12 + preferIpAddress: true
  13 + # 注册周期心跳 默认30s 这里改成5s 建议生成环境使用默认值30
  14 + lease-renewal-interval-in-seconds: 10
  15 + lease-expiration-duration-in-seconds: 60
  16 +
  17 + hostname: localhost
  18 + server:
  19 + #是否开启保护模式
  20 + enable-self-preservation: true
  21 + eviction-interval-timer-in-ms: 4000
  22 + #当进入保护模式的情况下,注册中心不会注销服务,以兼容分区故障
  23 + renewal-percent-threshold: 0.5
  24 + client:
  25 + #是否注册eureka,高可用的清况下使用
  26 + register-with-eureka: true
  27 + #是否启用获取服务注册信息
  28 + fetch-registry: true
  29 + service-url:
  30 + defaultZone: http://121.40.109.21:8762/eureka/
0 31 \ No newline at end of file
... ...
cloud/server1/src/test/java/com/example/server1/Server1ApplicationTests.java
... ... @@ -1,16 +0,0 @@
1   -package com.example.server1;
2   -
3   -import org.junit.Test;
4   -import org.junit.runner.RunWith;
5   -import org.springframework.boot.test.context.SpringBootTest;
6   -import org.springframework.test.context.junit4.SpringRunner;
7   -
8   -@RunWith(SpringRunner.class)
9   -@SpringBootTest
10   -public class Server1ApplicationTests {
11   -
12   - @Test
13   - public void contextLoads() {
14   - }
15   -
16   -}
cloud/server1/src/test/java/com/sincere/server1/Server1ApplicationTests.java 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +package com.sincere.server1;
  2 +
  3 +import org.junit.Test;
  4 +import org.junit.runner.RunWith;
  5 +import org.springframework.boot.test.context.SpringBootTest;
  6 +import org.springframework.test.context.junit4.SpringRunner;
  7 +
  8 +@RunWith(SpringRunner.class)
  9 +@SpringBootTest
  10 +public class Server1ApplicationTests {
  11 +
  12 + @Test
  13 + public void contextLoads() {
  14 + }
  15 +
  16 +}
... ...
cloud/server2/pom.xml
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3   - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4 4 <modelVersion>4.0.0</modelVersion>
5 5 <parent>
6 6 <groupId>org.springframework.boot</groupId>
7 7 <artifactId>spring-boot-starter-parent</artifactId>
8   - <version>2.1.6.RELEASE</version>
  8 + <version>2.1.7.RELEASE</version>
9 9 <relativePath/> <!-- lookup parent from repository -->
10 10 </parent>
11   - <groupId>com.example</groupId>
  11 + <groupId>com.sincere</groupId>
12 12 <artifactId>server2</artifactId>
13   - <version>1.0.0</version>
  13 + <version>0.0.1-SNAPSHOT</version>
14 14 <name>server2</name>
15 15 <description>Demo project for Spring Boot</description>
16 16  
17 17 <properties>
18 18 <java.version>1.8</java.version>
19   - <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
  19 + <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
20 20 </properties>
21 21  
22 22 <dependencies>
... ... @@ -30,13 +30,6 @@
30 30 <artifactId>spring-boot-starter-test</artifactId>
31 31 <scope>test</scope>
32 32 </dependency>
33   -
34   - <dependency>
35   - <groupId>org.springframework.boot</groupId>
36   - <artifactId>spring-boot-configuration-processor</artifactId>
37   - <!--<version>2.1.3.RELEASE</version>-->
38   - </dependency>
39   -
40 33 </dependencies>
41 34  
42 35 <dependencyManagement>
... ...
cloud/server2/src/main/java/com/example/server2/Server2Application.java
... ... @@ -1,20 +0,0 @@
1   -package com.example.server2;
2   -
3   -import org.springframework.boot.SpringApplication;
4   -import org.springframework.boot.autoconfigure.SpringBootApplication;
5   -import org.springframework.boot.context.properties.ConfigurationProperties;
6   -import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7   -import org.springframework.cloud.client.loadbalancer.LoadBalanced;
8   -import org.springframework.context.annotation.Bean;
9   -import org.springframework.web.client.RestTemplate;
10   -
11   -@ConfigurationProperties
12   -@SpringBootApplication
13   -@EnableDiscoveryClient
14   -public class Server2Application {
15   -
16   - public static void main(String[] args) {
17   - SpringApplication.run(Server2Application.class, args);
18   - }
19   -
20   -}
cloud/server2/src/main/java/com/example/server2/control/HelloControler.java
... ... @@ -1,27 +0,0 @@
1   -package com.example.server2.control;
2   -
3   -import org.springframework.beans.factory.annotation.Autowired;
4   -import org.springframework.cloud.client.ServiceInstance;
5   -import org.springframework.cloud.client.discovery.DiscoveryClient;
6   -import org.springframework.web.bind.annotation.RequestMapping;
7   -import org.springframework.web.bind.annotation.RequestMethod;
8   -import org.springframework.web.bind.annotation.RestController;
9   -
10   -import java.util.List;
11   -
12   -
13   -@RestController
14   -public class HelloControler {
15   -
16   -
17   - @Autowired
18   - private DiscoveryClient client;
19   -
20   - @RequestMapping(value = "/hello",method = RequestMethod.GET)
21   - public String index(){
22   - System.out.println("hello2:");
23   - List<ServiceInstance> instance = client.getInstances("hello-service");
24   - return "hello2";
25   - }
26   -
27   -}
cloud/server2/src/main/java/com/sincere/server2/Server2Application.java 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +package com.sincere.server2;
  2 +
  3 +import org.springframework.boot.SpringApplication;
  4 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  5 +import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  6 +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
  7 +
  8 +@EnableEurekaServer
  9 +@SpringBootApplication
  10 +public class Server2Application {
  11 +
  12 + public static void main(String[] args) {
  13 + SpringApplication.run(Server2Application.class, args);
  14 + }
  15 +
  16 +}
... ...
cloud/server2/src/main/resources/META-INF/additional-spring-configuration-metadata.json
... ... @@ -1,8 +0,0 @@
1   -{
2   - "properties": [
3   - {
4   - "name": "eureka.client.serviceUrl.defaultZone",
5   - "type": "java.lang.String",
6   - "description": "Description for eureka.client.serviceUrl.defaultZone."
7   - }
8   - ] }
9 0 \ No newline at end of file
cloud/server2/src/main/resources/application.properties
... ... @@ -1,4 +0,0 @@
1   -spring.application.name= hello-service
2   -eureka.client.serviceUrl.defaultZone=http://localhost:81/eureka
3   -
4   -server.port=8082
cloud/server2/src/main/resources/application.yaml 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +server:
  2 + port: 8762
  3 +
  4 +spring:
  5 + application:
  6 + name: eureka-server
  7 + profiles:
  8 + active: dev
  9 +
  10 +eureka:
  11 + instance:
  12 + preferIpAddress: true
  13 + # 注册周期心跳 默认30s 这里改成5s 建议生成环境使用默认值30
  14 + lease-renewal-interval-in-seconds: 10
  15 + lease-expiration-duration-in-seconds: 60
  16 +
  17 + hostname: localhost
  18 + server:
  19 + enable-self-preservation: true
  20 + eviction-interval-timer-in-ms: 4000
  21 + #当进入保护模式的情况下,注册中心不会注销服务,以兼容分区故障
  22 + renewal-percent-threshold: 0.5
  23 + client:
  24 + #是否注册eureka,高可用的清况下使用
  25 + register-with-eureka: true
  26 + #是否启用获取服务注册信息
  27 + fetch-registry: true
  28 + service-url:
  29 + defaultZone: http://121.40.109.21:8761/eureka/
0 30 \ No newline at end of file
... ...
cloud/server2/src/test/java/com/example/server2/Server2ApplicationTests.java
... ... @@ -1,16 +0,0 @@
1   -package com.example.server2;
2   -
3   -import org.junit.Test;
4   -import org.junit.runner.RunWith;
5   -import org.springframework.boot.test.context.SpringBootTest;
6   -import org.springframework.test.context.junit4.SpringRunner;
7   -
8   -@RunWith(SpringRunner.class)
9   -@SpringBootTest
10   -public class Server2ApplicationTests {
11   -
12   - @Test
13   - public void contextLoads() {
14   - }
15   -
16   -}
cloud/server2/src/test/java/com/sincere/server2/Server2ApplicationTests.java 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +package com.sincere.server2;
  2 +
  3 +import org.junit.Test;
  4 +import org.junit.runner.RunWith;
  5 +import org.springframework.boot.test.context.SpringBootTest;
  6 +import org.springframework.test.context.junit4.SpringRunner;
  7 +
  8 +@RunWith(SpringRunner.class)
  9 +@SpringBootTest
  10 +public class Server2ApplicationTests {
  11 +
  12 + @Test
  13 + public void contextLoads() {
  14 + }
  15 +
  16 +}
... ...
cloud/service_register/.gitignore
... ... @@ -1,31 +0,0 @@
1   -HELP.md
2   -target/
3   -!.mvn/wrapper/maven-wrapper.jar
4   -!**/src/main/**
5   -!**/src/test/**
6   -
7   -### STS ###
8   -.apt_generated
9   -.classpath
10   -.factorypath
11   -.project
12   -.settings
13   -.springBeans
14   -.sts4-cache
15   -
16   -### IntelliJ IDEA ###
17   -.idea
18   -*.iws
19   -*.iml
20   -*.ipr
21   -
22   -### NetBeans ###
23   -/nbproject/private/
24   -/nbbuild/
25   -/dist/
26   -/nbdist/
27   -/.nb-gradle/
28   -build/
29   -
30   -### VS Code ###
31   -.vscode/
cloud/service_register/.mvn/wrapper/MavenWrapperDownloader.java
... ... @@ -1,114 +0,0 @@
1   -/*
2   -Licensed to the Apache Software Foundation (ASF) under one
3   -or more contributor license agreements. See the NOTICE file
4   -distributed with this work for additional information
5   -regarding copyright ownership. The ASF licenses this file
6   -to you under the Apache License, Version 2.0 (the
7   -"License"); you may not use this file except in compliance
8   -with the License. You may obtain a copy of the License at
9   -
10   - https://www.apache.org/licenses/LICENSE-2.0
11   -
12   -Unless required by applicable law or agreed to in writing,
13   -software distributed under the License is distributed on an
14   -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   -KIND, either express or implied. See the License for the
16   -specific language governing permissions and limitations
17   -under the License.
18   -*/
19   -
20   -import java.io.File;
21   -import java.io.FileInputStream;
22   -import java.io.FileOutputStream;
23   -import java.io.IOException;
24   -import java.net.URL;
25   -import java.nio.channels.Channels;
26   -import java.nio.channels.ReadableByteChannel;
27   -import java.util.Properties;
28   -
29   -public class MavenWrapperDownloader {
30   -
31   - /**
32   - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
33   - */
34   - private static final String DEFAULT_DOWNLOAD_URL =
35   - "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
36   -
37   - /**
38   - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
39   - * use instead of the default one.
40   - */
41   - private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
42   - ".mvn/wrapper/maven-wrapper.properties";
43   -
44   - /**
45   - * Path where the maven-wrapper.jar will be saved to.
46   - */
47   - private static final String MAVEN_WRAPPER_JAR_PATH =
48   - ".mvn/wrapper/maven-wrapper.jar";
49   -
50   - /**
51   - * Name of the property which should be used to override the default download url for the wrapper.
52   - */
53   - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
54   -
55   - public static void main(String args[]) {
56   - System.out.println("- Downloader started");
57   - File baseDirectory = new File(args[0]);
58   - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
59   -
60   - // If the maven-wrapper.properties exists, read it and check if it contains a custom
61   - // wrapperUrl parameter.
62   - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
63   - String url = DEFAULT_DOWNLOAD_URL;
64   - if (mavenWrapperPropertyFile.exists()) {
65   - FileInputStream mavenWrapperPropertyFileInputStream = null;
66   - try {
67   - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
68   - Properties mavenWrapperProperties = new Properties();
69   - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
70   - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
71   - } catch (IOException e) {
72   - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
73   - } finally {
74   - try {
75   - if (mavenWrapperPropertyFileInputStream != null) {
76   - mavenWrapperPropertyFileInputStream.close();
77   - }
78   - } catch (IOException e) {
79   - // Ignore ...
80   - }
81   - }
82   - }
83   - System.out.println("- Downloading from: : " + url);
84   -
85   - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
86   - if (!outputFile.getParentFile().exists()) {
87   - if (!outputFile.getParentFile().mkdirs()) {
88   - System.out.println(
89   - "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
90   - }
91   - }
92   - System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
93   - try {
94   - downloadFileFromURL(url, outputFile);
95   - System.out.println("Done");
96   - System.exit(0);
97   - } catch (Throwable e) {
98   - System.out.println("- Error downloading");
99   - e.printStackTrace();
100   - System.exit(1);
101   - }
102   - }
103   -
104   - private static void downloadFileFromURL(String urlString, File destination) throws Exception {
105   - URL website = new URL(urlString);
106   - ReadableByteChannel rbc;
107   - rbc = Channels.newChannel(website.openStream());
108   - FileOutputStream fos = new FileOutputStream(destination);
109   - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
110   - fos.close();
111   - rbc.close();
112   - }
113   -
114   -}
cloud/service_register/.mvn/wrapper/maven-wrapper.jar
No preview for this file type
cloud/service_register/.mvn/wrapper/maven-wrapper.properties
... ... @@ -1 +0,0 @@
1   -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
cloud/service_register/mvnw
... ... @@ -1,286 +0,0 @@
1   -#!/bin/sh
2   -# ----------------------------------------------------------------------------
3   -# Licensed to the Apache Software Foundation (ASF) under one
4   -# or more contributor license agreements. See the NOTICE file
5   -# distributed with this work for additional information
6   -# regarding copyright ownership. The ASF licenses this file
7   -# to you under the Apache License, Version 2.0 (the
8   -# "License"); you may not use this file except in compliance
9   -# with the License. You may obtain a copy of the License at
10   -#
11   -# https://www.apache.org/licenses/LICENSE-2.0
12   -#
13   -# Unless required by applicable law or agreed to in writing,
14   -# software distributed under the License is distributed on an
15   -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   -# KIND, either express or implied. See the License for the
17   -# specific language governing permissions and limitations
18   -# under the License.
19   -# ----------------------------------------------------------------------------
20   -
21   -# ----------------------------------------------------------------------------
22   -# Maven2 Start Up Batch script
23   -#
24   -# Required ENV vars:
25   -# ------------------
26   -# JAVA_HOME - location of a JDK home dir
27   -#
28   -# Optional ENV vars
29   -# -----------------
30   -# M2_HOME - location of maven2's installed home dir
31   -# MAVEN_OPTS - parameters passed to the Java VM when running Maven
32   -# e.g. to debug Maven itself, use
33   -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34   -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35   -# ----------------------------------------------------------------------------
36   -
37   -if [ -z "$MAVEN_SKIP_RC" ] ; then
38   -
39   - if [ -f /etc/mavenrc ] ; then
40   - . /etc/mavenrc
41   - fi
42   -
43   - if [ -f "$HOME/.mavenrc" ] ; then
44   - . "$HOME/.mavenrc"
45   - fi
46   -
47   -fi
48   -
49   -# OS specific support. $var _must_ be set to either true or false.
50   -cygwin=false;
51   -darwin=false;
52   -mingw=false
53   -case "`uname`" in
54   - CYGWIN*) cygwin=true ;;
55   - MINGW*) mingw=true;;
56   - Darwin*) darwin=true
57   - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
58   - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
59   - if [ -z "$JAVA_HOME" ]; then
60   - if [ -x "/usr/libexec/java_home" ]; then
61   - export JAVA_HOME="`/usr/libexec/java_home`"
62   - else
63   - export JAVA_HOME="/Library/Java/Home"
64   - fi
65   - fi
66   - ;;
67   -esac
68   -
69   -if [ -z "$JAVA_HOME" ] ; then
70   - if [ -r /etc/gentoo-release ] ; then
71   - JAVA_HOME=`java-config --jre-home`
72   - fi
73   -fi
74   -
75   -if [ -z "$M2_HOME" ] ; then
76   - ## resolve links - $0 may be a link to maven's home
77   - PRG="$0"
78   -
79   - # need this for relative symlinks
80   - while [ -h "$PRG" ] ; do
81   - ls=`ls -ld "$PRG"`
82   - link=`expr "$ls" : '.*-> \(.*\)$'`
83   - if expr "$link" : '/.*' > /dev/null; then
84   - PRG="$link"
85   - else
86   - PRG="`dirname "$PRG"`/$link"
87   - fi
88   - done
89   -
90   - saveddir=`pwd`
91   -
92   - M2_HOME=`dirname "$PRG"`/..
93   -
94   - # make it fully qualified
95   - M2_HOME=`cd "$M2_HOME" && pwd`
96   -
97   - cd "$saveddir"
98   - # echo Using m2 at $M2_HOME
99   -fi
100   -
101   -# For Cygwin, ensure paths are in UNIX format before anything is touched
102   -if $cygwin ; then
103   - [ -n "$M2_HOME" ] &&
104   - M2_HOME=`cygpath --unix "$M2_HOME"`
105   - [ -n "$JAVA_HOME" ] &&
106   - JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
107   - [ -n "$CLASSPATH" ] &&
108   - CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
109   -fi
110   -
111   -# For Mingw, ensure paths are in UNIX format before anything is touched
112   -if $mingw ; then
113   - [ -n "$M2_HOME" ] &&
114   - M2_HOME="`(cd "$M2_HOME"; pwd)`"
115   - [ -n "$JAVA_HOME" ] &&
116   - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117   - # TODO classpath?
118   -fi
119   -
120   -if [ -z "$JAVA_HOME" ]; then
121   - javaExecutable="`which javac`"
122   - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
123   - # readlink(1) is not available as standard on Solaris 10.
124   - readLink=`which readlink`
125   - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
126   - if $darwin ; then
127   - javaHome="`dirname \"$javaExecutable\"`"
128   - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
129   - else
130   - javaExecutable="`readlink -f \"$javaExecutable\"`"
131   - fi
132   - javaHome="`dirname \"$javaExecutable\"`"
133   - javaHome=`expr "$javaHome" : '\(.*\)/bin'`
134   - JAVA_HOME="$javaHome"
135   - export JAVA_HOME
136   - fi
137   - fi
138   -fi
139   -
140   -if [ -z "$JAVACMD" ] ; then
141   - if [ -n "$JAVA_HOME" ] ; then
142   - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
143   - # IBM's JDK on AIX uses strange locations for the executables
144   - JAVACMD="$JAVA_HOME/jre/sh/java"
145   - else
146   - JAVACMD="$JAVA_HOME/bin/java"
147   - fi
148   - else
149   - JAVACMD="`which java`"
150   - fi
151   -fi
152   -
153   -if [ ! -x "$JAVACMD" ] ; then
154   - echo "Error: JAVA_HOME is not defined correctly." >&2
155   - echo " We cannot execute $JAVACMD" >&2
156   - exit 1
157   -fi
158   -
159   -if [ -z "$JAVA_HOME" ] ; then
160   - echo "Warning: JAVA_HOME environment variable is not set."
161   -fi
162   -
163   -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
164   -
165   -# traverses directory structure from process work directory to filesystem root
166   -# first directory with .mvn subdirectory is considered project base directory
167   -find_maven_basedir() {
168   -
169   - if [ -z "$1" ]
170   - then
171   - echo "Path not specified to find_maven_basedir"
172   - return 1
173   - fi
174   -
175   - basedir="$1"
176   - wdir="$1"
177   - while [ "$wdir" != '/' ] ; do
178   - if [ -d "$wdir"/.mvn ] ; then
179   - basedir=$wdir
180   - break
181   - fi
182   - # workaround for JBEAP-8937 (on Solaris 10/Sparc)
183   - if [ -d "${wdir}" ]; then
184   - wdir=`cd "$wdir/.."; pwd`
185   - fi
186   - # end of workaround
187   - done
188   - echo "${basedir}"
189   -}
190   -
191   -# concatenates all lines of a file
192   -concat_lines() {
193   - if [ -f "$1" ]; then
194   - echo "$(tr -s '\n' ' ' < "$1")"
195   - fi
196   -}
197   -
198   -BASE_DIR=`find_maven_basedir "$(pwd)"`
199   -if [ -z "$BASE_DIR" ]; then
200   - exit 1;
201   -fi
202   -
203   -##########################################################################################
204   -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
205   -# This allows using the maven wrapper in projects that prohibit checking in binary data.
206   -##########################################################################################
207   -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
208   - if [ "$MVNW_VERBOSE" = true ]; then
209   - echo "Found .mvn/wrapper/maven-wrapper.jar"
210   - fi
211   -else
212   - if [ "$MVNW_VERBOSE" = true ]; then
213   - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
214   - fi
215   - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
216   - while IFS="=" read key value; do
217   - case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
218   - esac
219   - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
220   - if [ "$MVNW_VERBOSE" = true ]; then
221   - echo "Downloading from: $jarUrl"
222   - fi
223   - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
224   -
225   - if command -v wget > /dev/null; then
226   - if [ "$MVNW_VERBOSE" = true ]; then
227   - echo "Found wget ... using wget"
228   - fi
229   - wget "$jarUrl" -O "$wrapperJarPath"
230   - elif command -v curl > /dev/null; then
231   - if [ "$MVNW_VERBOSE" = true ]; then
232   - echo "Found curl ... using curl"
233   - fi
234   - curl -o "$wrapperJarPath" "$jarUrl"
235   - else
236   - if [ "$MVNW_VERBOSE" = true ]; then
237   - echo "Falling back to using Java to download"
238   - fi
239   - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
240   - if [ -e "$javaClass" ]; then
241   - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
242   - if [ "$MVNW_VERBOSE" = true ]; then
243   - echo " - Compiling MavenWrapperDownloader.java ..."
244   - fi
245   - # Compiling the Java class
246   - ("$JAVA_HOME/bin/javac" "$javaClass")
247   - fi
248   - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
249   - # Running the downloader
250   - if [ "$MVNW_VERBOSE" = true ]; then
251   - echo " - Running MavenWrapperDownloader.java ..."
252   - fi
253   - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
254   - fi
255   - fi
256   - fi
257   -fi
258   -##########################################################################################
259   -# End of extension
260   -##########################################################################################
261   -
262   -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
263   -if [ "$MVNW_VERBOSE" = true ]; then
264   - echo $MAVEN_PROJECTBASEDIR
265   -fi
266   -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
267   -
268   -# For Cygwin, switch paths to Windows format before running java
269   -if $cygwin; then
270   - [ -n "$M2_HOME" ] &&
271   - M2_HOME=`cygpath --path --windows "$M2_HOME"`
272   - [ -n "$JAVA_HOME" ] &&
273   - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
274   - [ -n "$CLASSPATH" ] &&
275   - CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
276   - [ -n "$MAVEN_PROJECTBASEDIR" ] &&
277   - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
278   -fi
279   -
280   -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281   -
282   -exec "$JAVACMD" \
283   - $MAVEN_OPTS \
284   - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
285   - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
286   - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
cloud/service_register/mvnw.cmd
... ... @@ -1,161 +0,0 @@
1   -@REM ----------------------------------------------------------------------------
2   -@REM Licensed to the Apache Software Foundation (ASF) under one
3   -@REM or more contributor license agreements. See the NOTICE file
4   -@REM distributed with this work for additional information
5   -@REM regarding copyright ownership. The ASF licenses this file
6   -@REM to you under the Apache License, Version 2.0 (the
7   -@REM "License"); you may not use this file except in compliance
8   -@REM with the License. You may obtain a copy of the License at
9   -@REM
10   -@REM https://www.apache.org/licenses/LICENSE-2.0
11   -@REM
12   -@REM Unless required by applicable law or agreed to in writing,
13   -@REM software distributed under the License is distributed on an
14   -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   -@REM KIND, either express or implied. See the License for the
16   -@REM specific language governing permissions and limitations
17   -@REM under the License.
18   -@REM ----------------------------------------------------------------------------
19   -
20   -@REM ----------------------------------------------------------------------------
21   -@REM Maven2 Start Up Batch script
22   -@REM
23   -@REM Required ENV vars:
24   -@REM JAVA_HOME - location of a JDK home dir
25   -@REM
26   -@REM Optional ENV vars
27   -@REM M2_HOME - location of maven2's installed home dir
28   -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29   -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30   -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31   -@REM e.g. to debug Maven itself, use
32   -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33   -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34   -@REM ----------------------------------------------------------------------------
35   -
36   -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37   -@echo off
38   -@REM set title of command window
39   -title %0
40   -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
41   -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
42   -
43   -@REM set %HOME% to equivalent of $HOME
44   -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45   -
46   -@REM Execute a user defined script before this one
47   -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48   -@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49   -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50   -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51   -:skipRcPre
52   -
53   -@setlocal
54   -
55   -set ERROR_CODE=0
56   -
57   -@REM To isolate internal variables from possible post scripts, we use another setlocal
58   -@setlocal
59   -
60   -@REM ==== START VALIDATION ====
61   -if not "%JAVA_HOME%" == "" goto OkJHome
62   -
63   -echo.
64   -echo Error: JAVA_HOME not found in your environment. >&2
65   -echo Please set the JAVA_HOME variable in your environment to match the >&2
66   -echo location of your Java installation. >&2
67   -echo.
68   -goto error
69   -
70   -:OkJHome
71   -if exist "%JAVA_HOME%\bin\java.exe" goto init
72   -
73   -echo.
74   -echo Error: JAVA_HOME is set to an invalid directory. >&2
75   -echo JAVA_HOME = "%JAVA_HOME%" >&2
76   -echo Please set the JAVA_HOME variable in your environment to match the >&2
77   -echo location of your Java installation. >&2
78   -echo.
79   -goto error
80   -
81   -@REM ==== END VALIDATION ====
82   -
83   -:init
84   -
85   -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86   -@REM Fallback to current working directory if not found.
87   -
88   -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89   -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90   -
91   -set EXEC_DIR=%CD%
92   -set WDIR=%EXEC_DIR%
93   -:findBaseDir
94   -IF EXIST "%WDIR%"\.mvn goto baseDirFound
95   -cd ..
96   -IF "%WDIR%"=="%CD%" goto baseDirNotFound
97   -set WDIR=%CD%
98   -goto findBaseDir
99   -
100   -:baseDirFound
101   -set MAVEN_PROJECTBASEDIR=%WDIR%
102   -cd "%EXEC_DIR%"
103   -goto endDetectBaseDir
104   -
105   -:baseDirNotFound
106   -set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107   -cd "%EXEC_DIR%"
108   -
109   -:endDetectBaseDir
110   -
111   -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112   -
113   -@setlocal EnableExtensions EnableDelayedExpansion
114   -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115   -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116   -
117   -:endReadAdditionalConfig
118   -
119   -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120   -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121   -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122   -
123   -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
124   -FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
125   - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
126   -)
127   -
128   -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
129   -@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
130   -if exist %WRAPPER_JAR% (
131   - echo Found %WRAPPER_JAR%
132   -) else (
133   - echo Couldn't find %WRAPPER_JAR%, downloading it ...
134   - echo Downloading from: %DOWNLOAD_URL%
135   - powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
136   - echo Finished downloading %WRAPPER_JAR%
137   -)
138   -@REM End of extension
139   -
140   -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
141   -if ERRORLEVEL 1 goto error
142   -goto end
143   -
144   -:error
145   -set ERROR_CODE=1
146   -
147   -:end
148   -@endlocal & set ERROR_CODE=%ERROR_CODE%
149   -
150   -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
151   -@REM check for post script, once with legacy .bat ending and once with .cmd ending
152   -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
153   -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
154   -:skipRcPost
155   -
156   -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
157   -if "%MAVEN_BATCH_PAUSE%" == "on" pause
158   -
159   -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
160   -
161   -exit /B %ERROR_CODE%
cloud/service_register/pom.xml
... ... @@ -1,67 +0,0 @@
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3   - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4   - <modelVersion>4.0.0</modelVersion>
5   - <parent>
6   - <groupId>org.springframework.boot</groupId>
7   - <artifactId>spring-boot-starter-parent</artifactId>
8   - <version>2.1.6.RELEASE</version>
9   - <relativePath/> <!-- lookup parent from repository -->
10   - </parent>
11   - <groupId>com.example</groupId>
12   - <artifactId>service_register</artifactId>
13   - <version>1.0.0</version>
14   - <name>service_register</name>
15   - <description>Demo project for Spring Boot</description>
16   -
17   - <properties>
18   - <java.version>1.8</java.version>
19   - <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
20   - </properties>
21   -
22   - <dependencies>
23   - <dependency>
24   - <groupId>org.springframework.cloud</groupId>
25   - <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
26   - </dependency>
27   -
28   - <dependency>
29   - <groupId>org.springframework.boot</groupId>
30   - <artifactId>spring-boot-starter-test</artifactId>
31   - <scope>test</scope>
32   - </dependency>
33   -
34   - <dependency>
35   - <groupId>org.springframework.boot</groupId>
36   - <artifactId>spring-boot-configuration-processor</artifactId>
37   - <!--<version>2.1.3.RELEASE</version>-->
38   - </dependency>
39   -
40   - <dependency>
41   - <groupId>org.springframework.boot</groupId>
42   - <artifactId>spring-boot-starter-actuator</artifactId>
43   - </dependency>
44   - </dependencies>
45   -
46   - <dependencyManagement>
47   - <dependencies>
48   - <dependency>
49   - <groupId>org.springframework.cloud</groupId>
50   - <artifactId>spring-cloud-dependencies</artifactId>
51   - <version>${spring-cloud.version}</version>
52   - <type>pom</type>
53   - <scope>import</scope>
54   - </dependency>
55   - </dependencies>
56   - </dependencyManagement>
57   -
58   - <build>
59   - <plugins>
60   - <plugin>
61   - <groupId>org.springframework.boot</groupId>
62   - <artifactId>spring-boot-maven-plugin</artifactId>
63   - </plugin>
64   - </plugins>
65   - </build>
66   -
67   -</project>
cloud/service_register/src/main/java/com/example/service_register/ServiceRegisterApplication.java
... ... @@ -1,17 +0,0 @@
1   -package com.example.service_register;
2   -
3   -import org.springframework.boot.SpringApplication;
4   -import org.springframework.boot.autoconfigure.SpringBootApplication;
5   -import org.springframework.boot.context.properties.ConfigurationProperties;
6   -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
7   -
8   -@ConfigurationProperties
9   -@EnableEurekaServer
10   -@SpringBootApplication
11   -public class ServiceRegisterApplication {
12   -
13   - public static void main(String[] args) {
14   - SpringApplication.run(ServiceRegisterApplication.class, args);
15   - }
16   -
17   -}
cloud/service_register/src/main/resources/META-INF/additional-spring-configuration-metadata.json
... ... @@ -1,8 +0,0 @@
1   -{
2   - "properties": [
3   - {
4   - "name": "eureka.client.serviceUrl.defaultZone",
5   - "type": "java.lang.String",
6   - "description": "Description for eureka.client.serviceUrl.defaultZone."
7   - }
8   - ] }
9 0 \ No newline at end of file
cloud/service_register/src/main/resources/application.yaml
... ... @@ -1,27 +0,0 @@
1   -server:
2   - port: 100000
3   -
4   -spring:
5   - application:
6   - name: regist1
7   -
8   -eureka:
9   - instance:
10   - hostname: localhost
11   -# lease-renewal-interval-in-seconds: 30
12   -# lease-expiration-duration-in-seconds: 90
13   -# server:
14   -# enable-self-preservation: true
15   - client:
16   - fetch-registry: true
17   - register-with-eureka: true
18   -# service-url:
19   -# defaultZone: http://localhost:10086/eureka
20   -# healthcheck:
21   -# enabled: true
22   -
23   -
24   -
25   -
26   -
27   -
cloud/service_register/src/test/java/com/example/service_register/ServiceRegisterApplicationTests.java
... ... @@ -1,16 +0,0 @@
1   -package com.example.service_register;
2   -
3   -import org.junit.Test;
4   -import org.junit.runner.RunWith;
5   -import org.springframework.boot.test.context.SpringBootTest;
6   -import org.springframework.test.context.junit4.SpringRunner;
7   -
8   -@RunWith(SpringRunner.class)
9   -@SpringBootTest
10   -public class ServiceRegisterApplicationTests {
11   -
12   - @Test
13   - public void contextLoads() {
14   - }
15   -
16   -}
cloud/src/main/java/com/example/cloud/CloudApplication.java
... ... @@ -1,19 +0,0 @@
1   -package com.example.cloud;
2   -
3   -import org.springframework.boot.SpringApplication;
4   -import org.springframework.boot.autoconfigure.SpringBootApplication;
5   -import org.springframework.boot.builder.SpringApplicationBuilder;
6   -import org.springframework.boot.context.properties.ConfigurationProperties;
7   -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
8   -
9   -@EnableEurekaServer
10   -@SpringBootApplication
11   -@ConfigurationProperties
12   -public class CloudApplication {
13   -
14   - public static void main(String[] args) {
15   - new SpringApplicationBuilder(CloudApplication.class).run(args);
16   -// SpringApplication.run(CloudApplication.class, args);
17   - }
18   -
19   -}
cloud/src/main/resources/META-INF/additional-spring-configuration-metadata.json
... ... @@ -1,8 +0,0 @@
1   -{
2   - "properties": [
3   - {
4   - "name": "eureka.client.serviceUrl.defaultZone",
5   - "type": "java.lang.String",
6   - "description": "Description for eureka.client.serviceUrl.defaultZone."
7   - }
8   - ] }
9 0 \ No newline at end of file
cloud/src/main/resources/application.yaml
... ... @@ -1,25 +0,0 @@
1   -server:
2   - port: 1111
3   -
4   -eureka:
5   - instance:
6   - hostname: localhost
7   - lease-renewal-interval-in-seconds: 30
8   - lease-expiration-duration-in-seconds: 90
9   - client:
10   - fetch-registry: false
11   - register-with-eureka: true
12   - serviceUrl:
13   - defaultZone: http://${eureka.instance.hostname}:1112/eureka
14   - healthcheck:
15   - enabled: true #健康检测开启
16   -
17   - server:
18   - enable-self-preservation: true #保护机制开启
19   -
20   -
21   -spring:
22   - application:
23   - name: regist_server
24   -
25   -
cloud/src/test/java/com/example/cloud/CloudApplicationTests.java
... ... @@ -1,16 +0,0 @@
1   -package com.example.cloud;
2   -
3   -import org.junit.Test;
4   -import org.junit.runner.RunWith;
5   -import org.springframework.boot.test.context.SpringBootTest;
6   -import org.springframework.test.context.junit4.SpringRunner;
7   -
8   -@RunWith(SpringRunner.class)
9   -@SpringBootTest
10   -public class CloudApplicationTests {
11   -
12   - @Test
13   - public void contextLoads() {
14   - }
15   -
16   -}