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,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,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 +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,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,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,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,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,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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 \ No newline at end of file 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 @@ @@ -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 \ No newline at end of file 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 @@ @@ -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 @@ @@ -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 @@ @@ -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 \ No newline at end of file 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 @@ @@ -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 \ No newline at end of file 134 \ No newline at end of file
cloud/autho/src/main/java/com/sincere/autho/config/OAuth2ServerConfig.java 0 → 100644
@@ -0,0 +1,260 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 \ No newline at end of file 97 \ No newline at end of file
cloud/autho/src/test/java/com/sincere/autho/AuthoApplicationTests.java 0 → 100644
@@ -0,0 +1,16 @@ @@ -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,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,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 +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,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,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,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,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,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,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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 \ No newline at end of file 26 \ No newline at end of file
cloud/common/src/main/java/com/sincere/common/config/DataSourceKey.java 0 → 100644
@@ -0,0 +1,11 @@ @@ -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 \ No newline at end of file 12 \ No newline at end of file
cloud/common/src/main/java/com/sincere/common/constants/CommonConstants.java 0 → 100644
@@ -0,0 +1,21 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 \ No newline at end of file 58 \ No newline at end of file
cloud/common/src/main/java/com/sincere/common/enums/DataStatusEnum.java 0 → 100644
@@ -0,0 +1,30 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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,6 +16,7 @@
16 16
17 <properties> 17 <properties>
18 <java.version>1.8</java.version> 18 <java.version>1.8</java.version>
  19 + <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
19 </properties> 20 </properties>
20 21
21 <dependencies> 22 <dependencies>
@@ -86,8 +87,26 @@ @@ -86,8 +87,26 @@
86 <version>2.0.1</version> 87 <version>2.0.1</version>
87 </dependency> 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 </dependencies> 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 <build> 110 <build>
92 <plugins> 111 <plugins>
93 <plugin> 112 <plugin>
cloud/dahua/sdklog/2019-08-27_14-54-54.log 0 → 100644
@@ -0,0 +1,13 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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,6 +9,7 @@ import org.mybatis.spring.annotation.MapperScan;
9 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.boot.SpringApplication; 10 import org.springframework.boot.SpringApplication;
11 import org.springframework.boot.autoconfigure.SpringBootApplication; 11 import org.springframework.boot.autoconfigure.SpringBootApplication;
  12 +import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
12 import org.springframework.context.annotation.Bean; 13 import org.springframework.context.annotation.Bean;
13 import org.springframework.context.annotation.Configuration; 14 import org.springframework.context.annotation.Configuration;
14 import org.springframework.scheduling.annotation.EnableAsync; 15 import org.springframework.scheduling.annotation.EnableAsync;
@@ -29,6 +30,7 @@ import java.util.concurrent.TimeUnit; @@ -29,6 +30,7 @@ import java.util.concurrent.TimeUnit;
29 30
30 @SpringBootApplication 31 @SpringBootApplication
31 @MapperScan("com.example.dahua.dao") 32 @MapperScan("com.example.dahua.dao")
  33 +@EnableDiscoveryClient
32 public class DahuaApplication { 34 public class DahuaApplication {
33 35
34 public static void main(String[] args) { 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,7 +149,7 @@ public class MyTask implements ApplicationRunner {
149 devMap.put(deviceId, pIp + "," + wPort); 149 devMap.put(deviceId, pIp + "," + wPort);
150 lLongMap.put(deviceId,loginHandleLong); 150 lLongMap.put(deviceId,loginHandleLong);
151 String inTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); 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 DeviceInfoBean deviceInfoBean = new DeviceInfoBean(); 153 DeviceInfoBean deviceInfoBean = new DeviceInfoBean();
154 deviceInfoBean.setDevcieId(deviceId); 154 deviceInfoBean.setDevcieId(deviceId);
155 deviceInfoBean.setDeviceIp(pIp); 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,6 +2,7 @@ package com.example.dahua.async;
2 2
3 import com.example.dahua.MyTask; 3 import com.example.dahua.MyTask;
4 import com.example.dahua.bean.AttendanceBean; 4 import com.example.dahua.bean.AttendanceBean;
  5 +import com.example.dahua.bean.TeacherBean;
5 import com.example.dahua.bean.UserInfoBean; 6 import com.example.dahua.bean.UserInfoBean;
6 import com.example.dahua.common.Res; 7 import com.example.dahua.common.Res;
7 import com.example.dahua.dao.UserDao; 8 import com.example.dahua.dao.UserDao;
@@ -58,6 +59,7 @@ public class SendUserInfoTask { @@ -58,6 +59,7 @@ public class SendUserInfoTask {
58 List<AttendanceBean> attendanceBeans = userDao.getAttendanceBeans(schoolId, clint_type); 59 List<AttendanceBean> attendanceBeans = userDao.getAttendanceBeans(schoolId, clint_type);
59 String filePathStudent = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Student"; 60 String filePathStudent = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Student";
60 String filePathParent = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Parent"; 61 String filePathParent = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Parent";
  62 + String filePathTeacher = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Teacher";
61 // String filePathStudent = "F:\\wwwroot\\SmartCampus\\face17e50\\School" + schoolId + "\\Student"; 63 // String filePathStudent = "F:\\wwwroot\\SmartCampus\\face17e50\\School" + schoolId + "\\Student";
62 // String filePathParent = "F:\\wwwroot\\SmartCampus\\face17e50\\School" + schoolId + "\\Parent"; 64 // String filePathParent = "F:\\wwwroot\\SmartCampus\\face17e50\\School" + schoolId + "\\Parent";
63 // String filePathParent = "C:\\Users\\taohandong\\Desktop\\小视频"; 65 // String filePathParent = "C:\\Users\\taohandong\\Desktop\\小视频";
@@ -71,6 +73,15 @@ public class SendUserInfoTask { @@ -71,6 +73,15 @@ public class SendUserInfoTask {
71 73
72 filePaths = new File(filePathParent); 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 File[] filesStudent = filePaths.listFiles(); 87 File[] filesStudent = filePaths.listFiles();
@@ -85,7 +96,7 @@ public class SendUserInfoTask { @@ -85,7 +96,7 @@ public class SendUserInfoTask {
85 fileList.add(filesStudent[i]); 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 while (fileList.size() > 0) { 101 while (fileList.size() > 0) {
91 File studentFile = fileList.get(0); 102 File studentFile = fileList.get(0);
@@ -105,8 +116,22 @@ public class SendUserInfoTask { @@ -105,8 +116,22 @@ public class SendUserInfoTask {
105 116
106 } else { 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 if (!userIsExit(fileList, studentCode, userInfoBean)) continue; 133 if (!userIsExit(fileList, studentCode, userInfoBean)) continue;
  134 +
110 } 135 }
111 136
112 boolean sendResult = sendUserInfoToDev(studentFile.getAbsolutePath(), attendanceBeans, userInfoBean); 137 boolean sendResult = sendUserInfoToDev(studentFile.getAbsolutePath(), attendanceBeans, userInfoBean);
@@ -191,57 +216,57 @@ public class SendUserInfoTask { @@ -191,57 +216,57 @@ public class SendUserInfoTask {
191 for (AttendanceBean attendanceBean : 216 for (AttendanceBean attendanceBean :
192 attendanceBeans) { 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 String startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); 224 String startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
200 Calendar calendar = Calendar.getInstance(); 225 Calendar calendar = Calendar.getInstance();
201 calendar.add(Calendar.YEAR, 4); 226 calendar.add(Calendar.YEAR, 4);
202 String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()); 227 String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
203 int bCardFlags = -1;//记录集编号 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 NetSDKLib.LLong loginHandleLong = MyTask.lLongMap.get(attendanceBean.getClint_id()); 231 NetSDKLib.LLong loginHandleLong = MyTask.lLongMap.get(attendanceBean.getClint_id());
207 232
208 boolean bFaceFalgs = false; 233 boolean bFaceFalgs = false;
209 234
210 - String cardNum = cardNo(userInfoBean.getStudent_num()); 235 + String cardNum = cardNo(student_num);
211 boolean ifExits = GateModule.findCard(cardNum, loginHandleLong); 236 boolean ifExits = GateModule.findCard(cardNum, loginHandleLong);
212 System.out.println("卡号是否存在:" + ifExits); 237 System.out.println("卡号是否存在:" + ifExits);
213 if (bCardFlags != -1) {//修改卡信息 238 if (bCardFlags != -1) {//修改卡信息
214 GateModule.deleteCard(bCardFlags, loginHandleLong); 239 GateModule.deleteCard(bCardFlags, loginHandleLong);
215 - userDao.deleteRecordNo(userInfoBean.getUser_id(), bCardFlags); 240 + userDao.deleteRecordNo(user_id, bCardFlags);
216 241
217 // boolean update = GateModule.modifyCard(bCardFlags, cardNum, userInfoBean.getUser_id(), userInfoBean.getName(), "123456" 242 // boolean update = GateModule.modifyCard(bCardFlags, cardNum, userInfoBean.getUser_id(), userInfoBean.getName(), "123456"
218 // , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0 243 // , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0
219 // , 1, startTime, endTime, loginHandleLong); 244 // , 1, startTime, endTime, loginHandleLong);
220 // System.out.println("update:" + update); 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 , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0 248 , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0
224 , 1, startTime, endTime, loginHandleLong); 249 , 1, startTime, endTime, loginHandleLong);
225 250
226 if (bCardFlags != -1) { 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 if (!bFaceFalgs) 256 if (!bFaceFalgs)
232 - bFaceFalgs = GateModule.addFaceInfo(userInfoBean.getUser_id(), memory, loginHandleLong); 257 + bFaceFalgs = GateModule.addFaceInfo(user_id, memory, loginHandleLong);
233 258
234 } else {//新增卡信息 259 } else {//新增卡信息
235 - bCardFlags = GateModule.insertCard(cardNum, userInfoBean.getUser_id(), userInfoBean.getName(), "123456" 260 + bCardFlags = GateModule.insertCard(cardNum, user_id, name, "123456"
236 , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0 261 , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0
237 , 1, startTime, endTime, loginHandleLong); 262 , 1, startTime, endTime, loginHandleLong);
238 263
239 if (bCardFlags != -1) { 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 @@ @@ -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,6 +2,7 @@ package com.example.dahua.control;
2 2
3 import com.example.dahua.service.DeviceService; 3 import com.example.dahua.service.DeviceService;
4 import io.swagger.annotations.Api; 4 import io.swagger.annotations.Api;
  5 +import io.swagger.annotations.ApiImplicitParam;
5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.beans.factory.annotation.Autowired;
6 import org.springframework.web.bind.annotation.RequestMapping; 7 import org.springframework.web.bind.annotation.RequestMapping;
7 import org.springframework.web.bind.annotation.RequestMethod; 8 import org.springframework.web.bind.annotation.RequestMethod;
@@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.RestController; @@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.RestController;
10 11
11 @RestController("/device/") 12 @RestController("/device/")
12 @Api(tags = "设备控制") 13 @Api(tags = "设备控制")
  14 +@RequestMapping("/device/*")
13 public class DeviceControl { 15 public class DeviceControl {
14 16
15 @Autowired 17 @Autowired
cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java
@@ -27,6 +27,7 @@ import java.util.UUID; @@ -27,6 +27,7 @@ import java.util.UUID;
27 */ 27 */
28 @RestController("/user/") 28 @RestController("/user/")
29 @Api(tags = "下发用户信息") 29 @Api(tags = "下发用户信息")
  30 +@RequestMapping("/user/")
30 public class UserControl { 31 public class UserControl {
31 32
32 @Autowired 33 @Autowired
@@ -39,12 +40,10 @@ public class UserControl { @@ -39,12 +40,10 @@ public class UserControl {
39 } 40 }
40 41
41 42
42 -  
43 @RequestMapping(value = "imgsSend", method = RequestMethod.GET) 43 @RequestMapping(value = "imgsSend", method = RequestMethod.GET)
44 @ApiOperation(value = "照片下放") 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 return true; 47 return true;
49 } 48 }
50 49
cloud/dahua/src/main/java/com/example/dahua/dao/UserDao.java
1 package com.example.dahua.dao; 1 package com.example.dahua.dao;
2 2
3 import com.example.dahua.bean.AttendanceBean; 3 import com.example.dahua.bean.AttendanceBean;
  4 +import com.example.dahua.bean.TeacherBean;
4 import com.example.dahua.bean.UserInfoBean; 5 import com.example.dahua.bean.UserInfoBean;
5 import org.apache.ibatis.annotations.*; 6 import org.apache.ibatis.annotations.*;
6 import org.springframework.stereotype.Repository; 7 import org.springframework.stereotype.Repository;
@@ -21,6 +22,9 @@ public interface UserDao { @@ -21,6 +22,9 @@ public interface UserDao {
21 @Select(" select * from SZ_V_School_Student where school_id = #{school_id} and studentcode = #{studentcode}") 22 @Select(" select * from SZ_V_School_Student where school_id = #{school_id} and studentcode = #{studentcode}")
22 UserInfoBean getUserInfo(@Param("school_id")String school_id,@Param("studentcode")String studentcode); 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 * @param user_id 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,8 +31,7 @@ public interface NetSDKLib extends Library {
31 public static int size; 31 public static int size;
32 static { 32 static {
33 size = Native.LONG_SIZE; 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 || Utils.getOsPrefix().toLowerCase().equals("win32-amd64")) { 35 || Utils.getOsPrefix().toLowerCase().equals("win32-amd64")) {
37 size = 8; 36 size = 8;
38 } else if (Utils.getOsPrefix().toLowerCase().equals("linux-i386") 37 } else if (Utils.getOsPrefix().toLowerCase().equals("linux-i386")
cloud/dahua/src/main/resources/application.yaml
@@ -7,7 +7,7 @@ spring: @@ -7,7 +7,7 @@ spring:
7 url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus 7 url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus
8 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver 8 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
9 application: 9 application:
10 - name: dahua 10 + name: dahuaserver
11 11
12 #spring: 12 #spring:
13 # datasource: 13 # datasource:
@@ -19,6 +19,17 @@ spring: @@ -19,6 +19,17 @@ spring:
19 # name: dahua 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 mybatis: 33 mybatis:
23 type-aliases-package: com.example.dahua.dao 34 type-aliases-package: com.example.dahua.dao
24 mapper-locations: classpath:mapper/*.xml 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,6 +2,8 @@ package com.example.dahua;
2 2
3 import com.example.dahua.async.SendUserInfoTask; 3 import com.example.dahua.async.SendUserInfoTask;
4 import com.example.dahua.service.UserService; 4 import com.example.dahua.service.UserService;
  5 +import org.apache.http.impl.client.CloseableHttpClient;
  6 +import org.json.JSONObject;
5 import org.junit.Test; 7 import org.junit.Test;
6 import org.junit.runner.RunWith; 8 import org.junit.runner.RunWith;
7 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +21,8 @@ import org.springframework.web.client.RestTemplate; @@ -19,6 +21,8 @@ import org.springframework.web.client.RestTemplate;
19 import org.springframework.web.multipart.MultipartFile; 21 import org.springframework.web.multipart.MultipartFile;
20 22
21 import java.io.File; 23 import java.io.File;
  24 +import java.util.HashMap;
  25 +import java.util.Map;
22 26
23 @RunWith(SpringRunner.class) 27 @RunWith(SpringRunner.class)
24 @SpringBootTest 28 @SpringBootTest
@@ -43,30 +47,27 @@ public class DahuaApplicationTests { @@ -43,30 +47,27 @@ public class DahuaApplicationTests {
43 47
44 @Test 48 @Test
45 public void uploadImg() { 49 public void uploadImg() {
46 -  
47 -// F42B513C  
48 -  
49 - long dec_num = Long.parseLong("F42B513C",16);  
50 -  
51 -/*  
52 String url = "http://60.190.202.57:8023/"; 50 String url = "http://60.190.202.57:8023/";
53 -  
54 RestTemplate restTemplate = new RestTemplate(); 51 RestTemplate restTemplate = new RestTemplate();
55 HttpHeaders headers = new HttpHeaders(); 52 HttpHeaders headers = new HttpHeaders();
56 MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); 53 MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
57 headers.setContentType(type); 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,18 +24,31 @@
24 <groupId>org.springframework.cloud</groupId> 24 <groupId>org.springframework.cloud</groupId>
25 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> 25 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
26 </dependency> 26 </dependency>
  27 +
27 <dependency> 28 <dependency>
28 <groupId>org.springframework.cloud</groupId> 29 <groupId>org.springframework.cloud</groupId>
29 <artifactId>spring-cloud-starter-netflix-zuul</artifactId> 30 <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
30 </dependency> 31 </dependency>
31 32
  33 + <!--<dependency>-->
  34 + <!--<groupId>org.springframework.cloud</groupId>-->
  35 + <!--<artifactId>spring-cloud-starter-gateway</artifactId>-->
  36 + <!--</dependency>-->
  37 +
32 <dependency> 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 </dependency> 42 </dependency>
37 43
38 <dependency> 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 <groupId>org.springframework.boot</groupId> 52 <groupId>org.springframework.boot</groupId>
40 <artifactId>spring-boot-starter-test</artifactId> 53 <artifactId>spring-boot-starter-test</artifactId>
41 <scope>test</scope> 54 <scope>test</scope>
cloud/geteway/src/main/java/com/example/geteway/DocumentationConfig.java 0 → 100644
@@ -0,0 +1,53 @@ @@ -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 package com.example.geteway; 1 package com.example.geteway;
2 2
3 import org.springframework.boot.SpringApplication; 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.SpringCloudApplication; 4 import org.springframework.cloud.client.SpringCloudApplication;
  5 +import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 import org.springframework.cloud.netflix.zuul.EnableZuulProxy; 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 * 通过服务路由的功能,在对外提供服务的时候,只需要通过暴露Zuul中配置的调用地址就可以让调用方统一的来访问我们的服务; 14 * 通过服务路由的功能,在对外提供服务的时候,只需要通过暴露Zuul中配置的调用地址就可以让调用方统一的来访问我们的服务;
12 */ 15 */
13 -@ConfigurationProperties  
14 -@EnableZuulProxy  
15 @SpringCloudApplication 16 @SpringCloudApplication
  17 +@EnableDiscoveryClient
  18 +@EnableZuulProxy
16 public class GetewayApplication { 19 public class GetewayApplication {
17 20
18 public static void main(String[] args) { 21 public static void main(String[] args) {
19 SpringApplication.run(GetewayApplication.class, args); 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 @@ @@ -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,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 \ No newline at end of file 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 server: 1 server:
12 port: 8083 2 port: 8083
13 3
14 -spring:  
15 - application:  
16 - name: geteway  
17 -  
18 eureka: 4 eureka:
19 client: 5 client:
20 fetch-registry: true 6 fetch-registry: true
21 register-with-eureka: true 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 instance: 11 instance:
25 hostname: localhost 12 hostname: localhost
26 lease-expiration-duration-in-seconds: 90 13 lease-expiration-duration-in-seconds: 90
27 lease-renewal-interval-in-seconds: 30 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 @@ @@ -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,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,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,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 @@ @@ -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,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 @@ @@ -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,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,6 +16,7 @@
16 16
17 <properties> 17 <properties>
18 <java.version>1.8</java.version> 18 <java.version>1.8</java.version>
  19 + <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
19 </properties> 20 </properties>
20 21
21 <dependencies> 22 <dependencies>
@@ -35,11 +36,23 @@ @@ -35,11 +36,23 @@
35 <artifactId>spring-boot-starter-web</artifactId> 36 <artifactId>spring-boot-starter-web</artifactId>
36 </dependency> 37 </dependency>
37 38
38 - <!--<dependency> 39 + <dependency>
39 <groupId>org.springframework.cloud</groupId> 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 <dependency> 57 <dependency>
45 <groupId>com.sun.jna</groupId> 58 <groupId>com.sun.jna</groupId>
@@ -76,9 +89,32 @@ @@ -76,9 +89,32 @@
76 <artifactId>spring-boot-starter-jdbc</artifactId> 89 <artifactId>spring-boot-starter-jdbc</artifactId>
77 <version>2.1.6.RELEASE</version> 90 <version>2.1.6.RELEASE</version>
78 </dependency> 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 </dependencies> 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 <build> 118 <build>
83 <plugins> 119 <plugins>
84 <plugin> 120 <plugin>
cloud/haikang/src/main/java/com/sincere/haikang/CMSServer.java
1 package com.sincere.haikang; 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 import com.sincere.haikang.libutils.HCEHomeAlarm; 8 import com.sincere.haikang.libutils.HCEHomeAlarm;
4 import com.sincere.haikang.libutils.HCEHomeCMS; 9 import com.sincere.haikang.libutils.HCEHomeCMS;
5 import com.sincere.haikang.server.AttendanceService; 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 import com.sun.jna.NativeLong; 14 import com.sun.jna.NativeLong;
7 import com.sun.jna.Pointer; 15 import com.sun.jna.Pointer;
8 import org.springframework.beans.factory.annotation.Autowired; 16 import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.beans.factory.annotation.Value;
9 import org.springframework.boot.ApplicationArguments; 18 import org.springframework.boot.ApplicationArguments;
10 import org.springframework.boot.ApplicationRunner; 19 import org.springframework.boot.ApplicationRunner;
11 import org.springframework.stereotype.Component; 20 import org.springframework.stereotype.Component;
  21 +import sun.rmi.runtime.Log;
12 22
13 import java.io.*; 23 import java.io.*;
  24 +import java.math.BigInteger;
  25 +import java.net.InetAddress;
  26 +import java.net.UnknownHostException;
14 import java.text.SimpleDateFormat; 27 import java.text.SimpleDateFormat;
  28 +import java.util.Calendar;
15 import java.util.Date; 29 import java.util.Date;
  30 +import java.util.HashMap;
  31 +import java.util.Map;
16 32
17 @Component 33 @Component
18 public class CMSServer implements ApplicationRunner { 34 public class CMSServer implements ApplicationRunner {
  35 +
19 @Autowired 36 @Autowired
20 AttendanceService attendanceService; 37 AttendanceService attendanceService;
21 38
  39 + @Autowired
  40 + DeviceDao deviceDao;
  41 +
22 //121.40.109.21 42 //121.40.109.21
23 43
24 HCEHomeCMS hCEhomeCMS = HCEHomeCMS.INSTANCE; 44 HCEHomeCMS hCEhomeCMS = HCEHomeCMS.INSTANCE;
@@ -31,9 +51,29 @@ public class CMSServer implements ApplicationRunner { @@ -31,9 +51,29 @@ public class CMSServer implements ApplicationRunner {
31 //注册监听参数 51 //注册监听参数
32 static HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM struCMSListenPara = new HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM(); 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 @Override 78 @Override
39 public void run(ApplicationArguments args) { 79 public void run(ApplicationArguments args) {
@@ -42,7 +82,7 @@ public class CMSServer implements ApplicationRunner { @@ -42,7 +82,7 @@ public class CMSServer implements ApplicationRunner {
42 //CMS注册模块初始化 82 //CMS注册模块初始化
43 boolean binit = hCEhomeCMS.NET_ECMS_Init(); 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 if (fRegisterCallBack == null) { 88 if (fRegisterCallBack == null) {
@@ -93,7 +133,11 @@ public class CMSServer implements ApplicationRunner { @@ -93,7 +133,11 @@ public class CMSServer implements ApplicationRunner {
93 String zIp = new String(strDevRegInfo.struDevAdd.szIP, "utf-8").trim(); 133 String zIp = new String(strDevRegInfo.struDevAdd.szIP, "utf-8").trim();
94 int port = strDevRegInfo.struDevAdd.wPort; 134 int port = strDevRegInfo.struDevAdd.wPort;
95 String time = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()); 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 } catch (UnsupportedEncodingException e) { 141 } catch (UnsupportedEncodingException e) {
98 e.printStackTrace(); 142 e.printStackTrace();
99 } 143 }
@@ -122,11 +166,7 @@ public class CMSServer implements ApplicationRunner { @@ -122,11 +166,7 @@ public class CMSServer implements ApplicationRunner {
122 // pInBuffer.struPictureSever.wPort = 7667; 166 // pInBuffer.struPictureSever.wPort = 7667;
123 pInBuffer.write(); 167 pInBuffer.write();
124 dwInLen = pInBuffer.size(); 168 dwInLen = pInBuffer.size();
125 -  
126 -  
127 - sendCards(lUserID);  
128 // System.out.println("dwInLen:" + dwInLen + " lUserID:" + lUserID + " pUser:" + pUser); 169 // System.out.println("dwInLen:" + dwInLen + " lUserID:" + lUserID + " pUser:" + pUser);
129 -// lLoginID= lUserID;  
130 // jTextFieldDevNo.setText(new String(strDevRegInfo.byDeviceID)); 170 // jTextFieldDevNo.setText(new String(strDevRegInfo.byDeviceID));
131 } 171 }
132 return true; 172 return true;
@@ -179,7 +219,6 @@ public class CMSServer implements ApplicationRunner { @@ -179,7 +219,6 @@ public class CMSServer implements ApplicationRunner {
179 219
180 struAMSAddr.write(); 220 struAMSAddr.write();
181 221
182 -  
183 boolean setAMSAddr = hCEhomeCMS.NET_ECMS_SetSDKLocalCfg(1, struAMSAddr.getPointer()); 222 boolean setAMSAddr = hCEhomeCMS.NET_ECMS_SetSDKLocalCfg(1, struAMSAddr.getPointer());
184 if (!setAMSAddr) { 223 if (!setAMSAddr) {
185 System.out.println("设置回环地址:" + hCEhomeCMS.NET_ECMS_GetLastError()); 224 System.out.println("设置回环地址:" + hCEhomeCMS.NET_ECMS_GetLastError());
@@ -187,64 +226,92 @@ public class CMSServer implements ApplicationRunner { @@ -187,64 +226,92 @@ public class CMSServer implements ApplicationRunner {
187 System.out.println("设置回环地址:" + hCEhomeCMS.NET_ECMS_GetLastError() + " setAMSAddr:" + setAMSAddr); 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 HCEHomeCMS.NET_DVR_STRING_POINTER stringRequestCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); 235 HCEHomeCMS.NET_DVR_STRING_POINTER stringRequestCard = new HCEHomeCMS.NET_DVR_STRING_POINTER();
195 stringRequestCard.read(); 236 stringRequestCard.read();
196 - String strRequestCard = "SetFingerPrintCfg"; 237 + String strRequestCard = "SETDEVICECONFIG";
  238 +
197 stringRequestCard.byString = strRequestCard.getBytes(); 239 stringRequestCard.byString = strRequestCard.getBytes();
198 stringRequestCard.write(); 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 "</Params>"; 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 int iErr = hCEhomeCMS.NET_ECMS_GetLastError(); 307 int iErr = hCEhomeCMS.NET_ECMS_GetLastError();
  308 + FileUtils.getInstance().writeLogs("用户下发失败:" + iErr + " 设备ID:" + clint_id + " 用户:" + name+" 卡号:"+cardNo, FileUtils.sendUserErrTxt);
243 System.out.println("NET_ECMS_XMLConfig失败,错误号:" + iErr); 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,20 +330,25 @@ public class CMSServer implements ApplicationRunner {
263 330
264 String strXML = new String(strXMLData.byXMLData); 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 majirType = majirType.replace("MajorType>", ""); 335 majirType = majirType.replace("MajorType>", "");
268 majirType = majirType.replace("</", ""); 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 cardNo = cardNo.replace("CardNo>", ""); 344 cardNo = cardNo.replace("CardNo>", "");
273 cardNo = cardNo.replace("</", ""); 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 deviceID = deviceID.replace("DeviceID>", ""); 348 deviceID = deviceID.replace("DeviceID>", "");
277 deviceID = deviceID.replace("</", ""); 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 time = time.replace("Time>", ""); 352 time = time.replace("Time>", "");
281 time = time.replace("</", ""); 353 time = time.replace("</", "");
282 354
@@ -285,14 +357,65 @@ public class CMSServer implements ApplicationRunner { @@ -285,14 +357,65 @@ public class CMSServer implements ApplicationRunner {
285 357
286 } else if (majirType.equals("0x2")) {//异常 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 } else if (majirType.equals("0x3")) {//操作 366 } else if (majirType.equals("0x3")) {//操作
289 367
290 } else if (majirType.equals("0x4")) {// 368 } else if (majirType.equals("0x4")) {//
291 369
292 } else if (majirType.equals("0x5")) {//事件 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 // System.out.println(strXML); 421 // System.out.println(strXML);
@@ -326,13 +449,4 @@ public class CMSServer implements ApplicationRunner { @@ -326,13 +449,4 @@ public class CMSServer implements ApplicationRunner {
326 return cardR; 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,9 +6,18 @@ import com.sun.jna.Pointer;
6 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.boot.SpringApplication; 7 import org.springframework.boot.SpringApplication;
8 import org.springframework.boot.autoconfigure.SpringBootApplication; 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 import org.springframework.scheduling.annotation.EnableAsync; 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 @SpringBootApplication 19 @SpringBootApplication
  20 +@EnableDiscoveryClient
12 public class HaikangApplication { 21 public class HaikangApplication {
13 22
14 public static void main(String[] args) { 23 public static void main(String[] args) {
@@ -16,4 +25,22 @@ public class HaikangApplication { @@ -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 package com.sincere.haikang; 1 package com.sincere.haikang;
2 2
  3 +import com.sincere.haikang.async.SendUserAsync;
  4 +import com.sincere.haikang.bean.AttendanceBean;
3 import com.sincere.haikang.bean.StudentBean; 5 import com.sincere.haikang.bean.StudentBean;
  6 +import com.sincere.haikang.dao.DeviceDao;
4 import com.sincere.haikang.dao.UserDao; 7 import com.sincere.haikang.dao.UserDao;
5 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.beans.factory.annotation.Value;
  10 +import org.springframework.scheduling.annotation.Async;
6 import org.springframework.scheduling.annotation.EnableScheduling; 11 import org.springframework.scheduling.annotation.EnableScheduling;
7 import org.springframework.scheduling.annotation.Scheduled; 12 import org.springframework.scheduling.annotation.Scheduled;
8 import org.springframework.stereotype.Component; 13 import org.springframework.stereotype.Component;
9 import org.springframework.util.StringUtils; 14 import org.springframework.util.StringUtils;
10 15
11 import java.io.*; 16 import java.io.*;
  17 +import java.util.ArrayList;
12 import java.util.List; 18 import java.util.List;
13 19
14 @Component 20 @Component
15 @EnableScheduling 21 @EnableScheduling
16 public class SchduleTask { 22 public class SchduleTask {
17 23
18 - CMSServer cmsServer = new CMSServer();  
19 -  
20 File saveFile = new File("C:\\save"); 24 File saveFile = new File("C:\\save");
21 25
22 File savePth = new File("C:\\save\\save.txt"); 26 File savePth = new File("C:\\save\\save.txt");
@@ -24,47 +28,54 @@ public class SchduleTask { @@ -24,47 +28,54 @@ public class SchduleTask {
24 @Autowired 28 @Autowired
25 UserDao userDao; 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 @Scheduled(fixedRate = 5000) 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 FileInputStream fileInputStream = new FileInputStream(savePth); 55 FileInputStream fileInputStream = new FileInputStream(savePth);
45 byte[] readByte = new byte[1024]; 56 byte[] readByte = new byte[1024];
46 fileInputStream.read(readByte); 57 fileInputStream.read(readByte);
47 //存储的数据库下标 58 //存储的数据库下标
48 String index = new String(readByte, 0, readByte.length).trim(); 59 String index = new String(readByte, 0, readByte.length).trim();
49 - System.out.println("index:"+index); 60 + System.out.println("定时任务取得下标:"+index);
50 List<StudentBean> studentBeans = null; 61 List<StudentBean> studentBeans = null;
51 if (StringUtils.isEmpty(index)) {//没记录,取前十条 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 } else { 65 } else {
55 studentBeans = userDao.getAllStudents(Long.parseLong(index)); 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 e.printStackTrace(); 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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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,6 +27,8 @@ public class StudentBean implements Serializable {
27 27
28 private int SchoolId; 28 private int SchoolId;
29 29
  30 + private int school_id;
  31 +
30 private int IsNew; 32 private int IsNew;
31 33
32 private int UpdateType; 34 private int UpdateType;
@@ -39,6 +41,7 @@ public class StudentBean implements Serializable { @@ -39,6 +41,7 @@ public class StudentBean implements Serializable {
39 41
40 private String StudentCode; 42 private String StudentCode;
41 43
  44 + private String student_num;
42 45
43 public String getUserId() { 46 public String getUserId() {
44 return UserId; 47 return UserId;
@@ -108,6 +111,22 @@ public class StudentBean implements Serializable { @@ -108,6 +111,22 @@ public class StudentBean implements Serializable {
108 return Card; 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 public void setCard(String card) { 130 public void setCard(String card) {
112 Card = card; 131 Card = card;
113 } 132 }
@@ -190,12 +209,14 @@ public class StudentBean implements Serializable { @@ -190,12 +209,14 @@ public class StudentBean implements Serializable {
190 ", OldCard='" + OldCard + '\'' + 209 ", OldCard='" + OldCard + '\'' +
191 ", Card='" + Card + '\'' + 210 ", Card='" + Card + '\'' +
192 ", SchoolId=" + SchoolId + 211 ", SchoolId=" + SchoolId +
  212 + ", school_id=" + school_id +
193 ", IsNew=" + IsNew + 213 ", IsNew=" + IsNew +
194 ", UpdateType=" + UpdateType + 214 ", UpdateType=" + UpdateType +
195 ", AddTime=" + AddTime + 215 ", AddTime=" + AddTime +
196 ", Sex=" + Sex + 216 ", Sex=" + Sex +
197 ", Face='" + Face + '\'' + 217 ", Face='" + Face + '\'' +
198 ", StudentCode='" + StudentCode + '\'' + 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 @@ @@ -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 package com.sincere.haikang.dao; 1 package com.sincere.haikang.dao;
2 2
3 import com.sincere.haikang.bean.AttendanceBean; 3 import com.sincere.haikang.bean.AttendanceBean;
  4 +import com.sincere.haikang.bean.PlaceAttendance;
4 import org.apache.ibatis.annotations.*; 5 import org.apache.ibatis.annotations.*;
5 import org.springframework.stereotype.Repository; 6 import org.springframework.stereotype.Repository;
6 7
  8 +import java.util.List;
  9 +
7 10
8 @Repository 11 @Repository
9 @Mapper 12 @Mapper
@@ -20,4 +23,15 @@ public interface DeviceDao { @@ -20,4 +23,15 @@ public interface DeviceDao {
20 int updateDeviceStatu(@Param("isConnection")int isConnection,@Param("ip")String ip,@Param("port")int port,@Param("clint_id")String clint_id); 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,6 +4,7 @@ import com.sincere.haikang.bean.StudentBean;
4 import org.apache.ibatis.annotations.Mapper; 4 import org.apache.ibatis.annotations.Mapper;
5 import org.apache.ibatis.annotations.Param; 5 import org.apache.ibatis.annotations.Param;
6 import org.apache.ibatis.annotations.Select; 6 import org.apache.ibatis.annotations.Select;
  7 +import org.apache.ibatis.annotations.Update;
7 import org.springframework.stereotype.Repository; 8 import org.springframework.stereotype.Repository;
8 9
9 import java.util.List; 10 import java.util.List;
@@ -25,4 +26,12 @@ public interface UserDao { @@ -25,4 +26,12 @@ public interface UserDao {
25 */ 26 */
26 @Select("select * from HS_StudentUpdateCard where ID > #{id} order by AddTime desc") 27 @Select("select * from HS_StudentUpdateCard where ID > #{id} order by AddTime desc")
27 List<StudentBean> getAllStudents(@Param("id")long id); 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 @@ @@ -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 @@ @@ -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,9 +16,29 @@ spring:
16 # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver 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 mybatis: 29 mybatis:
21 type-aliases-package: com.sincere.haikang.dao 30 type-aliases-package: com.sincere.haikang.dao
22 mapper-locations: classpath:mapper/*.xml 31 mapper-locations: classpath:mapper/*.xml
23 config-location: classpath:mybatis-config.xml 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 package com.sincere.haikang; 1 package com.sincere.haikang;
2 2
  3 +import com.sincere.haikang.dao.UserDao;
3 import com.sincere.haikang.server.AttendanceService; 4 import com.sincere.haikang.server.AttendanceService;
4 import org.junit.Test; 5 import org.junit.Test;
5 import org.junit.runner.RunWith; 6 import org.junit.runner.RunWith;
@@ -11,14 +12,19 @@ import org.springframework.test.context.junit4.SpringRunner; @@ -11,14 +12,19 @@ import org.springframework.test.context.junit4.SpringRunner;
11 @SpringBootTest 12 @SpringBootTest
12 public class HaikangApplicationTests { 13 public class HaikangApplicationTests {
13 14
  15 +// @Autowired
  16 +// AttendanceService attendanceService;
  17 +
14 @Autowired 18 @Autowired
15 - AttendanceService attendanceService; 19 + UserDao userDao;
16 20
17 @Test 21 @Test
18 public void contextLoads() { 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,6 +73,10 @@
73 <version>2.0.1</version> 73 <version>2.0.1</version>
74 </dependency> 74 </dependency>
75 75
  76 + <dependency>
  77 + <groupId>org.springframework.cloud</groupId>
  78 + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  79 + </dependency>
76 <!--<dependency>--> 80 <!--<dependency>-->
77 <!--<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>--> 81 <!--<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>-->
78 <!--<artifactId>mybatis-enhance-actable</artifactId>--> 82 <!--<artifactId>mybatis-enhance-actable</artifactId>-->
@@ -80,6 +84,18 @@ @@ -80,6 +84,18 @@
80 <!--</dependency>--> 84 <!--</dependency>-->
81 </dependencies> 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 <build> 99 <build>
84 <plugins> 100 <plugins>
85 <plugin> 101 <plugin>
cloud/mypulsar/src/main/java/com/example/mypulsar/MypulsarApplication.java
@@ -3,11 +3,13 @@ package com.example.mypulsar; @@ -3,11 +3,13 @@ package com.example.mypulsar;
3 import org.mybatis.spring.annotation.MapperScan; 3 import org.mybatis.spring.annotation.MapperScan;
4 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.SpringApplication;
5 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.boot.autoconfigure.SpringBootApplication;
  6 +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 import org.springframework.context.annotation.Bean; 7 import org.springframework.context.annotation.Bean;
7 import org.springframework.jdbc.core.JdbcTemplate; 8 import org.springframework.jdbc.core.JdbcTemplate;
8 9
9 @SpringBootApplication 10 @SpringBootApplication
10 @MapperScan("com.example.mypulsar.dao") 11 @MapperScan("com.example.mypulsar.dao")
  12 +@EnableEurekaServer
11 public class MypulsarApplication { 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,4 +17,15 @@ public class UserServiceImp implements UserService {
17 public List<User> select() { 17 public List<User> select() {
18 return userDao.select(); 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,4 +13,16 @@ spring:
13 mybatis: 13 mybatis:
14 type-aliases-package: com.example.mypulsar.dao 14 type-aliases-package: com.example.mypulsar.dao
15 mapper-locations: classpath:mapper/*.xml 15 mapper-locations: classpath:mapper/*.xml
16 - config-location: classpath:mybatis-config.xml  
17 \ No newline at end of file 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 \ No newline at end of file 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,12 +3,20 @@ package com.example.mypulsar;
3 import org.junit.Test; 3 import org.junit.Test;
4 import org.junit.runner.RunWith; 4 import org.junit.runner.RunWith;
5 import org.springframework.boot.test.context.SpringBootTest; 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 import org.springframework.test.context.junit4.SpringRunner; 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 @RunWith(SpringRunner.class) 14 @RunWith(SpringRunner.class)
9 @SpringBootTest 15 @SpringBootTest
10 public class MypulsarApplicationTests { 16 public class MypulsarApplicationTests {
11 17
  18 +
  19 +
12 @Test 20 @Test
13 public void contextLoads() { 21 public void contextLoads() {
14 } 22 }
cloud/sdklog/2019-09-02_10-13-39.log 0 → 100644
@@ -0,0 +1,13 @@ @@ -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 @@ @@ -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 @@ @@ -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 <?xml version="1.0" encoding="UTF-8"?> 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" 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 <modelVersion>4.0.0</modelVersion> 4 <modelVersion>4.0.0</modelVersion>
5 <parent> 5 <parent>
6 <groupId>org.springframework.boot</groupId> 6 <groupId>org.springframework.boot</groupId>
7 <artifactId>spring-boot-starter-parent</artifactId> 7 <artifactId>spring-boot-starter-parent</artifactId>
8 - <version>2.1.6.RELEASE</version> 8 + <version>2.1.7.RELEASE</version>
9 <relativePath/> <!-- lookup parent from repository --> 9 <relativePath/> <!-- lookup parent from repository -->
10 </parent> 10 </parent>
11 - <groupId>com.example</groupId> 11 + <groupId>com.sincere</groupId>
12 <artifactId>server1</artifactId> 12 <artifactId>server1</artifactId>
13 - <version>1.0.0</version> 13 + <version>0.0.1-SNAPSHOT</version>
14 <name>server1</name> 14 <name>server1</name>
15 <description>Demo project for Spring Boot</description> 15 <description>Demo project for Spring Boot</description>
16 16
17 <properties> 17 <properties>
18 <java.version>1.8</java.version> 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 </properties> 20 </properties>
21 21
22 <dependencies> 22 <dependencies>
23 <dependency> 23 <dependency>
24 - <groupId>org.springframework.boot</groupId>  
25 - <artifactId>spring-boot-starter-web</artifactId>  
26 - </dependency>  
27 - <dependency>  
28 <groupId>org.springframework.cloud</groupId> 24 <groupId>org.springframework.cloud</groupId>
29 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> 25 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
30 </dependency> 26 </dependency>
31 27
32 <dependency> 28 <dependency>
33 <groupId>org.springframework.boot</groupId> 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 <artifactId>spring-boot-starter-test</artifactId> 30 <artifactId>spring-boot-starter-test</artifactId>
41 <scope>test</scope> 31 <scope>test</scope>
42 </dependency> 32 </dependency>
43 -  
44 </dependencies> 33 </dependencies>
45 34
46 <dependencyManagement> 35 <dependencyManagement>
cloud/server1/src/main/java/com/example/server1/Server1Application.java
@@ -1,17 +0,0 @@ @@ -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,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 @@ @@ -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,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 \ No newline at end of file 0 \ No newline at end of file
cloud/server1/src/main/resources/application.properties
@@ -1,8 +0,0 @@ @@ -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 @@ @@ -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 \ No newline at end of file 31 \ No newline at end of file
cloud/server1/src/test/java/com/example/server1/Server1ApplicationTests.java
@@ -1,16 +0,0 @@ @@ -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 @@ @@ -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 <?xml version="1.0" encoding="UTF-8"?> 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" 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 <modelVersion>4.0.0</modelVersion> 4 <modelVersion>4.0.0</modelVersion>
5 <parent> 5 <parent>
6 <groupId>org.springframework.boot</groupId> 6 <groupId>org.springframework.boot</groupId>
7 <artifactId>spring-boot-starter-parent</artifactId> 7 <artifactId>spring-boot-starter-parent</artifactId>
8 - <version>2.1.6.RELEASE</version> 8 + <version>2.1.7.RELEASE</version>
9 <relativePath/> <!-- lookup parent from repository --> 9 <relativePath/> <!-- lookup parent from repository -->
10 </parent> 10 </parent>
11 - <groupId>com.example</groupId> 11 + <groupId>com.sincere</groupId>
12 <artifactId>server2</artifactId> 12 <artifactId>server2</artifactId>
13 - <version>1.0.0</version> 13 + <version>0.0.1-SNAPSHOT</version>
14 <name>server2</name> 14 <name>server2</name>
15 <description>Demo project for Spring Boot</description> 15 <description>Demo project for Spring Boot</description>
16 16
17 <properties> 17 <properties>
18 <java.version>1.8</java.version> 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 </properties> 20 </properties>
21 21
22 <dependencies> 22 <dependencies>
@@ -30,13 +30,6 @@ @@ -30,13 +30,6 @@
30 <artifactId>spring-boot-starter-test</artifactId> 30 <artifactId>spring-boot-starter-test</artifactId>
31 <scope>test</scope> 31 <scope>test</scope>
32 </dependency> 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 </dependencies> 33 </dependencies>
41 34
42 <dependencyManagement> 35 <dependencyManagement>
cloud/server2/src/main/java/com/example/server2/Server2Application.java
@@ -1,20 +0,0 @@ @@ -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,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 @@ @@ -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,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 \ No newline at end of file 0 \ No newline at end of file
cloud/server2/src/main/resources/application.properties
@@ -1,4 +0,0 @@ @@ -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 @@ @@ -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 \ No newline at end of file 30 \ No newline at end of file
cloud/server2/src/test/java/com/example/server2/Server2ApplicationTests.java
@@ -1,16 +0,0 @@ @@ -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 @@ @@ -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,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,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 +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,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,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,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,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,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 \ No newline at end of file 0 \ No newline at end of file
cloud/service_register/src/main/resources/application.yaml
@@ -1,27 +0,0 @@ @@ -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,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,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,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 \ No newline at end of file 0 \ No newline at end of file
cloud/src/main/resources/application.yaml
@@ -1,25 +0,0 @@ @@ -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,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 -}