Commit 7d998aa6f40015ebb53e01a61ca7c374cf6ddfd3
Exists in
master
and in
2 other branches
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 | -} |
@@ -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/ |
@@ -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 | +} |
No preview for this file type
@@ -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 |
@@ -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 "$@" |
@@ -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% |
@@ -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
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 | +} |
@@ -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
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 | -} |
@@ -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/ |
@@ -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 | +} |
No preview for this file type
@@ -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 |
@@ -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 "$@" |
@@ -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% |
@@ -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
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 | +} |
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> |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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.] |
@@ -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
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 | + |
@@ -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 | - |
@@ -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 | - |
@@ -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 | } |
@@ -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.] |
@@ -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.] |
@@ -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
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 |
@@ -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
cloud/server2/src/main/resources/application.properties
@@ -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
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
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 | -} |