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 | -HELP.md | |
| 2 | -target/ | |
| 3 | -!.mvn/wrapper/maven-wrapper.jar | |
| 4 | -!**/src/main/** | |
| 5 | -!**/src/test/** | |
| 6 | - | |
| 7 | -### STS ### | |
| 8 | -.apt_generated | |
| 9 | -.classpath | |
| 10 | -.factorypath | |
| 11 | -.project | |
| 12 | -.settings | |
| 13 | -.springBeans | |
| 14 | -.sts4-cache | |
| 15 | - | |
| 16 | -### IntelliJ IDEA ### | |
| 17 | -.idea | |
| 18 | -*.iws | |
| 19 | -*.iml | |
| 20 | -*.ipr | |
| 21 | - | |
| 22 | -### NetBeans ### | |
| 23 | -/nbproject/private/ | |
| 24 | -/nbbuild/ | |
| 25 | -/dist/ | |
| 26 | -/nbdist/ | |
| 27 | -/.nb-gradle/ | |
| 28 | -build/ | |
| 29 | - | |
| 30 | -### VS Code ### | |
| 31 | -.vscode/ |
cloud/ailive/.mvn/wrapper/MavenWrapperDownloader.java
| ... | ... | @@ -1,114 +0,0 @@ |
| 1 | -/* | |
| 2 | -Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | -or more contributor license agreements. See the NOTICE file | |
| 4 | -distributed with this work for additional information | |
| 5 | -regarding copyright ownership. The ASF licenses this file | |
| 6 | -to you under the Apache License, Version 2.0 (the | |
| 7 | -"License"); you may not use this file except in compliance | |
| 8 | -with the License. You may obtain a copy of the License at | |
| 9 | - | |
| 10 | - https://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | - | |
| 12 | -Unless required by applicable law or agreed to in writing, | |
| 13 | -software distributed under the License is distributed on an | |
| 14 | -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | -KIND, either express or implied. See the License for the | |
| 16 | -specific language governing permissions and limitations | |
| 17 | -under the License. | |
| 18 | -*/ | |
| 19 | - | |
| 20 | -import java.io.File; | |
| 21 | -import java.io.FileInputStream; | |
| 22 | -import java.io.FileOutputStream; | |
| 23 | -import java.io.IOException; | |
| 24 | -import java.net.URL; | |
| 25 | -import java.nio.channels.Channels; | |
| 26 | -import java.nio.channels.ReadableByteChannel; | |
| 27 | -import java.util.Properties; | |
| 28 | - | |
| 29 | -public class MavenWrapperDownloader { | |
| 30 | - | |
| 31 | - /** | |
| 32 | - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. | |
| 33 | - */ | |
| 34 | - private static final String DEFAULT_DOWNLOAD_URL = | |
| 35 | - "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; | |
| 36 | - | |
| 37 | - /** | |
| 38 | - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to | |
| 39 | - * use instead of the default one. | |
| 40 | - */ | |
| 41 | - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = | |
| 42 | - ".mvn/wrapper/maven-wrapper.properties"; | |
| 43 | - | |
| 44 | - /** | |
| 45 | - * Path where the maven-wrapper.jar will be saved to. | |
| 46 | - */ | |
| 47 | - private static final String MAVEN_WRAPPER_JAR_PATH = | |
| 48 | - ".mvn/wrapper/maven-wrapper.jar"; | |
| 49 | - | |
| 50 | - /** | |
| 51 | - * Name of the property which should be used to override the default download url for the wrapper. | |
| 52 | - */ | |
| 53 | - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; | |
| 54 | - | |
| 55 | - public static void main(String args[]) { | |
| 56 | - System.out.println("- Downloader started"); | |
| 57 | - File baseDirectory = new File(args[0]); | |
| 58 | - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); | |
| 59 | - | |
| 60 | - // If the maven-wrapper.properties exists, read it and check if it contains a custom | |
| 61 | - // wrapperUrl parameter. | |
| 62 | - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); | |
| 63 | - String url = DEFAULT_DOWNLOAD_URL; | |
| 64 | - if (mavenWrapperPropertyFile.exists()) { | |
| 65 | - FileInputStream mavenWrapperPropertyFileInputStream = null; | |
| 66 | - try { | |
| 67 | - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); | |
| 68 | - Properties mavenWrapperProperties = new Properties(); | |
| 69 | - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); | |
| 70 | - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); | |
| 71 | - } catch (IOException e) { | |
| 72 | - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); | |
| 73 | - } finally { | |
| 74 | - try { | |
| 75 | - if (mavenWrapperPropertyFileInputStream != null) { | |
| 76 | - mavenWrapperPropertyFileInputStream.close(); | |
| 77 | - } | |
| 78 | - } catch (IOException e) { | |
| 79 | - // Ignore ... | |
| 80 | - } | |
| 81 | - } | |
| 82 | - } | |
| 83 | - System.out.println("- Downloading from: : " + url); | |
| 84 | - | |
| 85 | - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); | |
| 86 | - if (!outputFile.getParentFile().exists()) { | |
| 87 | - if (!outputFile.getParentFile().mkdirs()) { | |
| 88 | - System.out.println( | |
| 89 | - "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); | |
| 90 | - } | |
| 91 | - } | |
| 92 | - System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); | |
| 93 | - try { | |
| 94 | - downloadFileFromURL(url, outputFile); | |
| 95 | - System.out.println("Done"); | |
| 96 | - System.exit(0); | |
| 97 | - } catch (Throwable e) { | |
| 98 | - System.out.println("- Error downloading"); | |
| 99 | - e.printStackTrace(); | |
| 100 | - System.exit(1); | |
| 101 | - } | |
| 102 | - } | |
| 103 | - | |
| 104 | - private static void downloadFileFromURL(String urlString, File destination) throws Exception { | |
| 105 | - URL website = new URL(urlString); | |
| 106 | - ReadableByteChannel rbc; | |
| 107 | - rbc = Channels.newChannel(website.openStream()); | |
| 108 | - FileOutputStream fos = new FileOutputStream(destination); | |
| 109 | - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); | |
| 110 | - fos.close(); | |
| 111 | - rbc.close(); | |
| 112 | - } | |
| 113 | - | |
| 114 | -} |
cloud/ailive/.mvn/wrapper/maven-wrapper.jar
No preview for this file type
cloud/ailive/.mvn/wrapper/maven-wrapper.properties
| ... | ... | @@ -1 +0,0 @@ |
| 1 | -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip |
cloud/ailive/mvnw
| ... | ... | @@ -1,286 +0,0 @@ |
| 1 | -#!/bin/sh | |
| 2 | -# ---------------------------------------------------------------------------- | |
| 3 | -# Licensed to the Apache Software Foundation (ASF) under one | |
| 4 | -# or more contributor license agreements. See the NOTICE file | |
| 5 | -# distributed with this work for additional information | |
| 6 | -# regarding copyright ownership. The ASF licenses this file | |
| 7 | -# to you under the Apache License, Version 2.0 (the | |
| 8 | -# "License"); you may not use this file except in compliance | |
| 9 | -# with the License. You may obtain a copy of the License at | |
| 10 | -# | |
| 11 | -# https://www.apache.org/licenses/LICENSE-2.0 | |
| 12 | -# | |
| 13 | -# Unless required by applicable law or agreed to in writing, | |
| 14 | -# software distributed under the License is distributed on an | |
| 15 | -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 16 | -# KIND, either express or implied. See the License for the | |
| 17 | -# specific language governing permissions and limitations | |
| 18 | -# under the License. | |
| 19 | -# ---------------------------------------------------------------------------- | |
| 20 | - | |
| 21 | -# ---------------------------------------------------------------------------- | |
| 22 | -# Maven2 Start Up Batch script | |
| 23 | -# | |
| 24 | -# Required ENV vars: | |
| 25 | -# ------------------ | |
| 26 | -# JAVA_HOME - location of a JDK home dir | |
| 27 | -# | |
| 28 | -# Optional ENV vars | |
| 29 | -# ----------------- | |
| 30 | -# M2_HOME - location of maven2's installed home dir | |
| 31 | -# MAVEN_OPTS - parameters passed to the Java VM when running Maven | |
| 32 | -# e.g. to debug Maven itself, use | |
| 33 | -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | |
| 34 | -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files | |
| 35 | -# ---------------------------------------------------------------------------- | |
| 36 | - | |
| 37 | -if [ -z "$MAVEN_SKIP_RC" ] ; then | |
| 38 | - | |
| 39 | - if [ -f /etc/mavenrc ] ; then | |
| 40 | - . /etc/mavenrc | |
| 41 | - fi | |
| 42 | - | |
| 43 | - if [ -f "$HOME/.mavenrc" ] ; then | |
| 44 | - . "$HOME/.mavenrc" | |
| 45 | - fi | |
| 46 | - | |
| 47 | -fi | |
| 48 | - | |
| 49 | -# OS specific support. $var _must_ be set to either true or false. | |
| 50 | -cygwin=false; | |
| 51 | -darwin=false; | |
| 52 | -mingw=false | |
| 53 | -case "`uname`" in | |
| 54 | - CYGWIN*) cygwin=true ;; | |
| 55 | - MINGW*) mingw=true;; | |
| 56 | - Darwin*) darwin=true | |
| 57 | - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home | |
| 58 | - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html | |
| 59 | - if [ -z "$JAVA_HOME" ]; then | |
| 60 | - if [ -x "/usr/libexec/java_home" ]; then | |
| 61 | - export JAVA_HOME="`/usr/libexec/java_home`" | |
| 62 | - else | |
| 63 | - export JAVA_HOME="/Library/Java/Home" | |
| 64 | - fi | |
| 65 | - fi | |
| 66 | - ;; | |
| 67 | -esac | |
| 68 | - | |
| 69 | -if [ -z "$JAVA_HOME" ] ; then | |
| 70 | - if [ -r /etc/gentoo-release ] ; then | |
| 71 | - JAVA_HOME=`java-config --jre-home` | |
| 72 | - fi | |
| 73 | -fi | |
| 74 | - | |
| 75 | -if [ -z "$M2_HOME" ] ; then | |
| 76 | - ## resolve links - $0 may be a link to maven's home | |
| 77 | - PRG="$0" | |
| 78 | - | |
| 79 | - # need this for relative symlinks | |
| 80 | - while [ -h "$PRG" ] ; do | |
| 81 | - ls=`ls -ld "$PRG"` | |
| 82 | - link=`expr "$ls" : '.*-> \(.*\)$'` | |
| 83 | - if expr "$link" : '/.*' > /dev/null; then | |
| 84 | - PRG="$link" | |
| 85 | - else | |
| 86 | - PRG="`dirname "$PRG"`/$link" | |
| 87 | - fi | |
| 88 | - done | |
| 89 | - | |
| 90 | - saveddir=`pwd` | |
| 91 | - | |
| 92 | - M2_HOME=`dirname "$PRG"`/.. | |
| 93 | - | |
| 94 | - # make it fully qualified | |
| 95 | - M2_HOME=`cd "$M2_HOME" && pwd` | |
| 96 | - | |
| 97 | - cd "$saveddir" | |
| 98 | - # echo Using m2 at $M2_HOME | |
| 99 | -fi | |
| 100 | - | |
| 101 | -# For Cygwin, ensure paths are in UNIX format before anything is touched | |
| 102 | -if $cygwin ; then | |
| 103 | - [ -n "$M2_HOME" ] && | |
| 104 | - M2_HOME=`cygpath --unix "$M2_HOME"` | |
| 105 | - [ -n "$JAVA_HOME" ] && | |
| 106 | - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | |
| 107 | - [ -n "$CLASSPATH" ] && | |
| 108 | - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` | |
| 109 | -fi | |
| 110 | - | |
| 111 | -# For Mingw, ensure paths are in UNIX format before anything is touched | |
| 112 | -if $mingw ; then | |
| 113 | - [ -n "$M2_HOME" ] && | |
| 114 | - M2_HOME="`(cd "$M2_HOME"; pwd)`" | |
| 115 | - [ -n "$JAVA_HOME" ] && | |
| 116 | - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" | |
| 117 | - # TODO classpath? | |
| 118 | -fi | |
| 119 | - | |
| 120 | -if [ -z "$JAVA_HOME" ]; then | |
| 121 | - javaExecutable="`which javac`" | |
| 122 | - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then | |
| 123 | - # readlink(1) is not available as standard on Solaris 10. | |
| 124 | - readLink=`which readlink` | |
| 125 | - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then | |
| 126 | - if $darwin ; then | |
| 127 | - javaHome="`dirname \"$javaExecutable\"`" | |
| 128 | - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" | |
| 129 | - else | |
| 130 | - javaExecutable="`readlink -f \"$javaExecutable\"`" | |
| 131 | - fi | |
| 132 | - javaHome="`dirname \"$javaExecutable\"`" | |
| 133 | - javaHome=`expr "$javaHome" : '\(.*\)/bin'` | |
| 134 | - JAVA_HOME="$javaHome" | |
| 135 | - export JAVA_HOME | |
| 136 | - fi | |
| 137 | - fi | |
| 138 | -fi | |
| 139 | - | |
| 140 | -if [ -z "$JAVACMD" ] ; then | |
| 141 | - if [ -n "$JAVA_HOME" ] ; then | |
| 142 | - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |
| 143 | - # IBM's JDK on AIX uses strange locations for the executables | |
| 144 | - JAVACMD="$JAVA_HOME/jre/sh/java" | |
| 145 | - else | |
| 146 | - JAVACMD="$JAVA_HOME/bin/java" | |
| 147 | - fi | |
| 148 | - else | |
| 149 | - JAVACMD="`which java`" | |
| 150 | - fi | |
| 151 | -fi | |
| 152 | - | |
| 153 | -if [ ! -x "$JAVACMD" ] ; then | |
| 154 | - echo "Error: JAVA_HOME is not defined correctly." >&2 | |
| 155 | - echo " We cannot execute $JAVACMD" >&2 | |
| 156 | - exit 1 | |
| 157 | -fi | |
| 158 | - | |
| 159 | -if [ -z "$JAVA_HOME" ] ; then | |
| 160 | - echo "Warning: JAVA_HOME environment variable is not set." | |
| 161 | -fi | |
| 162 | - | |
| 163 | -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher | |
| 164 | - | |
| 165 | -# traverses directory structure from process work directory to filesystem root | |
| 166 | -# first directory with .mvn subdirectory is considered project base directory | |
| 167 | -find_maven_basedir() { | |
| 168 | - | |
| 169 | - if [ -z "$1" ] | |
| 170 | - then | |
| 171 | - echo "Path not specified to find_maven_basedir" | |
| 172 | - return 1 | |
| 173 | - fi | |
| 174 | - | |
| 175 | - basedir="$1" | |
| 176 | - wdir="$1" | |
| 177 | - while [ "$wdir" != '/' ] ; do | |
| 178 | - if [ -d "$wdir"/.mvn ] ; then | |
| 179 | - basedir=$wdir | |
| 180 | - break | |
| 181 | - fi | |
| 182 | - # workaround for JBEAP-8937 (on Solaris 10/Sparc) | |
| 183 | - if [ -d "${wdir}" ]; then | |
| 184 | - wdir=`cd "$wdir/.."; pwd` | |
| 185 | - fi | |
| 186 | - # end of workaround | |
| 187 | - done | |
| 188 | - echo "${basedir}" | |
| 189 | -} | |
| 190 | - | |
| 191 | -# concatenates all lines of a file | |
| 192 | -concat_lines() { | |
| 193 | - if [ -f "$1" ]; then | |
| 194 | - echo "$(tr -s '\n' ' ' < "$1")" | |
| 195 | - fi | |
| 196 | -} | |
| 197 | - | |
| 198 | -BASE_DIR=`find_maven_basedir "$(pwd)"` | |
| 199 | -if [ -z "$BASE_DIR" ]; then | |
| 200 | - exit 1; | |
| 201 | -fi | |
| 202 | - | |
| 203 | -########################################################################################## | |
| 204 | -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | |
| 205 | -# This allows using the maven wrapper in projects that prohibit checking in binary data. | |
| 206 | -########################################################################################## | |
| 207 | -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then | |
| 208 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 209 | - echo "Found .mvn/wrapper/maven-wrapper.jar" | |
| 210 | - fi | |
| 211 | -else | |
| 212 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 213 | - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." | |
| 214 | - fi | |
| 215 | - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" | |
| 216 | - while IFS="=" read key value; do | |
| 217 | - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; | |
| 218 | - esac | |
| 219 | - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" | |
| 220 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 221 | - echo "Downloading from: $jarUrl" | |
| 222 | - fi | |
| 223 | - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" | |
| 224 | - | |
| 225 | - if command -v wget > /dev/null; then | |
| 226 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 227 | - echo "Found wget ... using wget" | |
| 228 | - fi | |
| 229 | - wget "$jarUrl" -O "$wrapperJarPath" | |
| 230 | - elif command -v curl > /dev/null; then | |
| 231 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 232 | - echo "Found curl ... using curl" | |
| 233 | - fi | |
| 234 | - curl -o "$wrapperJarPath" "$jarUrl" | |
| 235 | - else | |
| 236 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 237 | - echo "Falling back to using Java to download" | |
| 238 | - fi | |
| 239 | - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" | |
| 240 | - if [ -e "$javaClass" ]; then | |
| 241 | - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | |
| 242 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 243 | - echo " - Compiling MavenWrapperDownloader.java ..." | |
| 244 | - fi | |
| 245 | - # Compiling the Java class | |
| 246 | - ("$JAVA_HOME/bin/javac" "$javaClass") | |
| 247 | - fi | |
| 248 | - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | |
| 249 | - # Running the downloader | |
| 250 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 251 | - echo " - Running MavenWrapperDownloader.java ..." | |
| 252 | - fi | |
| 253 | - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") | |
| 254 | - fi | |
| 255 | - fi | |
| 256 | - fi | |
| 257 | -fi | |
| 258 | -########################################################################################## | |
| 259 | -# End of extension | |
| 260 | -########################################################################################## | |
| 261 | - | |
| 262 | -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} | |
| 263 | -if [ "$MVNW_VERBOSE" = true ]; then | |
| 264 | - echo $MAVEN_PROJECTBASEDIR | |
| 265 | -fi | |
| 266 | -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" | |
| 267 | - | |
| 268 | -# For Cygwin, switch paths to Windows format before running java | |
| 269 | -if $cygwin; then | |
| 270 | - [ -n "$M2_HOME" ] && | |
| 271 | - M2_HOME=`cygpath --path --windows "$M2_HOME"` | |
| 272 | - [ -n "$JAVA_HOME" ] && | |
| 273 | - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` | |
| 274 | - [ -n "$CLASSPATH" ] && | |
| 275 | - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` | |
| 276 | - [ -n "$MAVEN_PROJECTBASEDIR" ] && | |
| 277 | - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` | |
| 278 | -fi | |
| 279 | - | |
| 280 | -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | |
| 281 | - | |
| 282 | -exec "$JAVACMD" \ | |
| 283 | - $MAVEN_OPTS \ | |
| 284 | - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ | |
| 285 | - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ | |
| 286 | - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" |
cloud/ailive/mvnw.cmd
| ... | ... | @@ -1,161 +0,0 @@ |
| 1 | -@REM ---------------------------------------------------------------------------- | |
| 2 | -@REM Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | -@REM or more contributor license agreements. See the NOTICE file | |
| 4 | -@REM distributed with this work for additional information | |
| 5 | -@REM regarding copyright ownership. The ASF licenses this file | |
| 6 | -@REM to you under the Apache License, Version 2.0 (the | |
| 7 | -@REM "License"); you may not use this file except in compliance | |
| 8 | -@REM with the License. You may obtain a copy of the License at | |
| 9 | -@REM | |
| 10 | -@REM https://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | -@REM | |
| 12 | -@REM Unless required by applicable law or agreed to in writing, | |
| 13 | -@REM software distributed under the License is distributed on an | |
| 14 | -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | -@REM KIND, either express or implied. See the License for the | |
| 16 | -@REM specific language governing permissions and limitations | |
| 17 | -@REM under the License. | |
| 18 | -@REM ---------------------------------------------------------------------------- | |
| 19 | - | |
| 20 | -@REM ---------------------------------------------------------------------------- | |
| 21 | -@REM Maven2 Start Up Batch script | |
| 22 | -@REM | |
| 23 | -@REM Required ENV vars: | |
| 24 | -@REM JAVA_HOME - location of a JDK home dir | |
| 25 | -@REM | |
| 26 | -@REM Optional ENV vars | |
| 27 | -@REM M2_HOME - location of maven2's installed home dir | |
| 28 | -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands | |
| 29 | -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending | |
| 30 | -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven | |
| 31 | -@REM e.g. to debug Maven itself, use | |
| 32 | -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | |
| 33 | -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files | |
| 34 | -@REM ---------------------------------------------------------------------------- | |
| 35 | - | |
| 36 | -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' | |
| 37 | -@echo off | |
| 38 | -@REM set title of command window | |
| 39 | -title %0 | |
| 40 | -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' | |
| 41 | -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% | |
| 42 | - | |
| 43 | -@REM set %HOME% to equivalent of $HOME | |
| 44 | -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") | |
| 45 | - | |
| 46 | -@REM Execute a user defined script before this one | |
| 47 | -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre | |
| 48 | -@REM check for pre script, once with legacy .bat ending and once with .cmd ending | |
| 49 | -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" | |
| 50 | -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" | |
| 51 | -:skipRcPre | |
| 52 | - | |
| 53 | -@setlocal | |
| 54 | - | |
| 55 | -set ERROR_CODE=0 | |
| 56 | - | |
| 57 | -@REM To isolate internal variables from possible post scripts, we use another setlocal | |
| 58 | -@setlocal | |
| 59 | - | |
| 60 | -@REM ==== START VALIDATION ==== | |
| 61 | -if not "%JAVA_HOME%" == "" goto OkJHome | |
| 62 | - | |
| 63 | -echo. | |
| 64 | -echo Error: JAVA_HOME not found in your environment. >&2 | |
| 65 | -echo Please set the JAVA_HOME variable in your environment to match the >&2 | |
| 66 | -echo location of your Java installation. >&2 | |
| 67 | -echo. | |
| 68 | -goto error | |
| 69 | - | |
| 70 | -:OkJHome | |
| 71 | -if exist "%JAVA_HOME%\bin\java.exe" goto init | |
| 72 | - | |
| 73 | -echo. | |
| 74 | -echo Error: JAVA_HOME is set to an invalid directory. >&2 | |
| 75 | -echo JAVA_HOME = "%JAVA_HOME%" >&2 | |
| 76 | -echo Please set the JAVA_HOME variable in your environment to match the >&2 | |
| 77 | -echo location of your Java installation. >&2 | |
| 78 | -echo. | |
| 79 | -goto error | |
| 80 | - | |
| 81 | -@REM ==== END VALIDATION ==== | |
| 82 | - | |
| 83 | -:init | |
| 84 | - | |
| 85 | -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". | |
| 86 | -@REM Fallback to current working directory if not found. | |
| 87 | - | |
| 88 | -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% | |
| 89 | -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir | |
| 90 | - | |
| 91 | -set EXEC_DIR=%CD% | |
| 92 | -set WDIR=%EXEC_DIR% | |
| 93 | -:findBaseDir | |
| 94 | -IF EXIST "%WDIR%"\.mvn goto baseDirFound | |
| 95 | -cd .. | |
| 96 | -IF "%WDIR%"=="%CD%" goto baseDirNotFound | |
| 97 | -set WDIR=%CD% | |
| 98 | -goto findBaseDir | |
| 99 | - | |
| 100 | -:baseDirFound | |
| 101 | -set MAVEN_PROJECTBASEDIR=%WDIR% | |
| 102 | -cd "%EXEC_DIR%" | |
| 103 | -goto endDetectBaseDir | |
| 104 | - | |
| 105 | -:baseDirNotFound | |
| 106 | -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% | |
| 107 | -cd "%EXEC_DIR%" | |
| 108 | - | |
| 109 | -:endDetectBaseDir | |
| 110 | - | |
| 111 | -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig | |
| 112 | - | |
| 113 | -@setlocal EnableExtensions EnableDelayedExpansion | |
| 114 | -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a | |
| 115 | -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% | |
| 116 | - | |
| 117 | -:endReadAdditionalConfig | |
| 118 | - | |
| 119 | -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" | |
| 120 | -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" | |
| 121 | -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | |
| 122 | - | |
| 123 | -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" | |
| 124 | -FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( | |
| 125 | - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B | |
| 126 | -) | |
| 127 | - | |
| 128 | -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | |
| 129 | -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. | |
| 130 | -if exist %WRAPPER_JAR% ( | |
| 131 | - echo Found %WRAPPER_JAR% | |
| 132 | -) else ( | |
| 133 | - echo Couldn't find %WRAPPER_JAR%, downloading it ... | |
| 134 | - echo Downloading from: %DOWNLOAD_URL% | |
| 135 | - powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" | |
| 136 | - echo Finished downloading %WRAPPER_JAR% | |
| 137 | -) | |
| 138 | -@REM End of extension | |
| 139 | - | |
| 140 | -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* | |
| 141 | -if ERRORLEVEL 1 goto error | |
| 142 | -goto end | |
| 143 | - | |
| 144 | -:error | |
| 145 | -set ERROR_CODE=1 | |
| 146 | - | |
| 147 | -:end | |
| 148 | -@endlocal & set ERROR_CODE=%ERROR_CODE% | |
| 149 | - | |
| 150 | -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost | |
| 151 | -@REM check for post script, once with legacy .bat ending and once with .cmd ending | |
| 152 | -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" | |
| 153 | -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" | |
| 154 | -:skipRcPost | |
| 155 | - | |
| 156 | -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' | |
| 157 | -if "%MAVEN_BATCH_PAUSE%" == "on" pause | |
| 158 | - | |
| 159 | -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% | |
| 160 | - | |
| 161 | -exit /B %ERROR_CODE% |
cloud/ailive/pom.xml
| ... | ... | @@ -1,53 +0,0 @@ |
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 4 | - <modelVersion>4.0.0</modelVersion> | |
| 5 | - <parent> | |
| 6 | - <groupId>org.springframework.boot</groupId> | |
| 7 | - <artifactId>spring-boot-starter-parent</artifactId> | |
| 8 | - <version>2.1.6.RELEASE</version> | |
| 9 | - <relativePath/> <!-- lookup parent from repository --> | |
| 10 | - </parent> | |
| 11 | - <groupId>com.ali.live</groupId> | |
| 12 | - <artifactId>alilive</artifactId> | |
| 13 | - <version>0.0.1-SNAPSHOT</version> | |
| 14 | - <name>alilive</name> | |
| 15 | - <description>Demo project for Spring Boot</description> | |
| 16 | - | |
| 17 | - <properties> | |
| 18 | - <java.version>1.8</java.version> | |
| 19 | - </properties> | |
| 20 | - | |
| 21 | - <dependencies> | |
| 22 | - <dependency> | |
| 23 | - <groupId>org.springframework.boot</groupId> | |
| 24 | - <artifactId>spring-boot-starter-quartz</artifactId> | |
| 25 | - </dependency> | |
| 26 | - <dependency> | |
| 27 | - <groupId>org.springframework.boot</groupId> | |
| 28 | - <artifactId>spring-boot-starter-web</artifactId> | |
| 29 | - </dependency> | |
| 30 | - | |
| 31 | - <dependency> | |
| 32 | - <groupId>org.springframework.boot</groupId> | |
| 33 | - <artifactId>spring-boot-starter-test</artifactId> | |
| 34 | - <scope>test</scope> | |
| 35 | - </dependency> | |
| 36 | - | |
| 37 | - <dependency> | |
| 38 | - <groupId>com.aliyun</groupId> | |
| 39 | - <artifactId>aliyun-java-sdk-live</artifactId> | |
| 40 | - <version>3.7.5</version> | |
| 41 | - </dependency> | |
| 42 | - </dependencies> | |
| 43 | - | |
| 44 | - <build> | |
| 45 | - <plugins> | |
| 46 | - <plugin> | |
| 47 | - <groupId>org.springframework.boot</groupId> | |
| 48 | - <artifactId>spring-boot-maven-plugin</artifactId> | |
| 49 | - </plugin> | |
| 50 | - </plugins> | |
| 51 | - </build> | |
| 52 | - | |
| 53 | -</project> |
cloud/ailive/src/main/java/com/ali/live/alilive/AliliveApplication.java
| ... | ... | @@ -1,13 +0,0 @@ |
| 1 | -package com.ali.live.alilive; | |
| 2 | - | |
| 3 | -import org.springframework.boot.SpringApplication; | |
| 4 | -import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | - | |
| 6 | -@SpringBootApplication | |
| 7 | -public class AliliveApplication { | |
| 8 | - | |
| 9 | - public static void main(String[] args) { | |
| 10 | - SpringApplication.run(AliliveApplication.class, args); | |
| 11 | - } | |
| 12 | - | |
| 13 | -} |
cloud/ailive/src/main/resources/application.properties
No preview for this file type
cloud/ailive/src/test/java/com/ali/live/alilive/AliliveApplicationTests.java
| ... | ... | @@ -1,16 +0,0 @@ |
| 1 | -package com.ali.live.alilive; | |
| 2 | - | |
| 3 | -import org.junit.Test; | |
| 4 | -import org.junit.runner.RunWith; | |
| 5 | -import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | -import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | - | |
| 8 | -@RunWith(SpringRunner.class) | |
| 9 | -@SpringBootTest | |
| 10 | -public class AliliveApplicationTests { | |
| 11 | - | |
| 12 | - @Test | |
| 13 | - public void contextLoads() { | |
| 14 | - } | |
| 15 | - | |
| 16 | -} |
| ... | ... | @@ -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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 4 | + <modelVersion>4.0.0</modelVersion> | |
| 5 | + <parent> | |
| 6 | + <groupId>org.springframework.boot</groupId> | |
| 7 | + <artifactId>spring-boot-starter-parent</artifactId> | |
| 8 | + <version>2.1.7.RELEASE</version> | |
| 9 | + <relativePath/> <!-- lookup parent from repository --> | |
| 10 | + </parent> | |
| 11 | + <groupId>com.sincere</groupId> | |
| 12 | + <artifactId>autho</artifactId> | |
| 13 | + <version>0.0.1</version> | |
| 14 | + <name>autho</name> | |
| 15 | + <description>Demo project for Spring Boot</description> | |
| 16 | + | |
| 17 | + <properties> | |
| 18 | + <java.version>1.8</java.version> | |
| 19 | + <spring-cloud.version>Greenwich.SR2</spring-cloud.version> | |
| 20 | + </properties> | |
| 21 | + | |
| 22 | + <dependencies> | |
| 23 | + <dependency> | |
| 24 | + <groupId>com.sincere</groupId> | |
| 25 | + <artifactId>common</artifactId> | |
| 26 | + <version>0.0.1-SNAPSHOT</version> | |
| 27 | + </dependency> | |
| 28 | + <dependency> | |
| 29 | + <groupId>org.springframework.cloud</groupId> | |
| 30 | + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | |
| 31 | + </dependency> | |
| 32 | + <dependency> | |
| 33 | + <groupId>org.springframework.cloud</groupId> | |
| 34 | + <artifactId>spring-cloud-starter-oauth2</artifactId> | |
| 35 | + </dependency> | |
| 36 | + | |
| 37 | + <dependency> | |
| 38 | + <groupId>org.springframework.cloud</groupId> | |
| 39 | + <artifactId>spring-cloud-starter-security</artifactId> | |
| 40 | + <version>2.1.3.RELEASE</version> | |
| 41 | + </dependency> | |
| 42 | + | |
| 43 | + <dependency> | |
| 44 | + <groupId>org.springframework.boot</groupId> | |
| 45 | + <artifactId>spring-boot-starter-test</artifactId> | |
| 46 | + <scope>test</scope> | |
| 47 | + </dependency> | |
| 48 | + | |
| 49 | + <dependency> | |
| 50 | + <groupId>org.springframework.cloud</groupId> | |
| 51 | + <artifactId>spring-cloud-starter-openfeign</artifactId> | |
| 52 | + </dependency> | |
| 53 | + | |
| 54 | + <dependency> | |
| 55 | + <groupId>org.springframework.boot</groupId> | |
| 56 | + <artifactId>spring-boot-starter-data-redis</artifactId> | |
| 57 | + </dependency> | |
| 58 | + <dependency> | |
| 59 | + <groupId>com.alibaba</groupId> | |
| 60 | + <artifactId>fastjson</artifactId> | |
| 61 | + <version>1.2.58</version> | |
| 62 | + <scope>compile</scope> | |
| 63 | + </dependency> | |
| 64 | + | |
| 65 | + <dependency> | |
| 66 | + <groupId>io.grpc</groupId> | |
| 67 | + <artifactId>grpc-core</artifactId> | |
| 68 | + <version>1.18.0</version> | |
| 69 | + </dependency> | |
| 70 | + | |
| 71 | + <dependency> | |
| 72 | + <groupId>io.springfox</groupId> | |
| 73 | + <artifactId>springfox-swagger2</artifactId> | |
| 74 | + <version>2.9.2</version> | |
| 75 | + </dependency> | |
| 76 | + | |
| 77 | + <dependency> | |
| 78 | + <groupId>io.springfox</groupId> | |
| 79 | + <artifactId>springfox-swagger-ui</artifactId> | |
| 80 | + <version>2.9.2</version> | |
| 81 | + </dependency> | |
| 82 | + | |
| 83 | + </dependencies> | |
| 84 | + | |
| 85 | + <dependencyManagement> | |
| 86 | + <dependencies> | |
| 87 | + <dependency> | |
| 88 | + <groupId>org.springframework.cloud</groupId> | |
| 89 | + <artifactId>spring-cloud-dependencies</artifactId> | |
| 90 | + <version>${spring-cloud.version}</version> | |
| 91 | + <type>pom</type> | |
| 92 | + <scope>import</scope> | |
| 93 | + </dependency> | |
| 94 | + </dependencies> | |
| 95 | + </dependencyManagement> | |
| 96 | + | |
| 97 | + <build> | |
| 98 | + <plugins> | |
| 99 | + <plugin> | |
| 100 | + <groupId>org.springframework.boot</groupId> | |
| 101 | + <artifactId>spring-boot-maven-plugin</artifactId> | |
| 102 | + </plugin> | |
| 103 | + </plugins> | |
| 104 | + </build> | |
| 105 | + | |
| 106 | +</project> | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/AuthoApplication.java
0 → 100644
| ... | ... | @@ -0,0 +1,15 @@ |
| 1 | +package com.sincere.autho; | |
| 2 | + | |
| 3 | +import org.springframework.boot.SpringApplication; | |
| 4 | +import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; | |
| 6 | + | |
| 7 | +@EnableDiscoveryClient | |
| 8 | +@SpringBootApplication | |
| 9 | +public class AuthoApplication { | |
| 10 | + | |
| 11 | + public static void main(String[] args) { | |
| 12 | + SpringApplication.run(AuthoApplication.class, args); | |
| 13 | + } | |
| 14 | + | |
| 15 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/annotation/EnableLogging.java
0 → 100644
| ... | ... | @@ -0,0 +1,22 @@ |
| 1 | +package com.sincere.autho.annotation; | |
| 2 | + | |
| 3 | +import com.sincere.autho.autoconfigure.LoggingConfigurationSelector; | |
| 4 | +import org.springframework.context.annotation.Import; | |
| 5 | + | |
| 6 | +import java.lang.annotation.*; | |
| 7 | + | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * 启动日志框架支持 | |
| 11 | + * @author owen | |
| 12 | + * @create 2017年7月2日 | |
| 13 | + */ | |
| 14 | + | |
| 15 | +@Target(ElementType.TYPE) | |
| 16 | +@Retention(RetentionPolicy.RUNTIME) | |
| 17 | +@Documented | |
| 18 | +//自动装配starter | |
| 19 | +@Import(LoggingConfigurationSelector.class) | |
| 20 | +public @interface EnableLogging{ | |
| 21 | +// String name() ; | |
| 22 | +} | |
| 0 | 23 | \ No newline at end of file | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/annotation/datasource/DataSource.java
0 → 100644
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +package com.sincere.autho.annotation.datasource; | |
| 2 | + | |
| 3 | +import java.lang.annotation.*; | |
| 4 | + | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * 数据源选择 | |
| 8 | + * @author owen | |
| 9 | + * @create 2017年7月2日 | |
| 10 | + */ | |
| 11 | +@Target({ElementType.METHOD, ElementType.TYPE}) | |
| 12 | +@Retention(RetentionPolicy.RUNTIME) | |
| 13 | +@Documented | |
| 14 | +public @interface DataSource { | |
| 15 | + String name(); | |
| 16 | +} | |
| 0 | 17 | \ No newline at end of file | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/annotation/log/LogAnnotation.java
0 → 100644
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +package com.sincere.autho.annotation.log; | |
| 2 | + | |
| 3 | +import java.lang.annotation.*; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 日志注解 | |
| 7 | + * @author owen | |
| 8 | + * @create 2017年7月2日 | |
| 9 | + */ | |
| 10 | +@Target({ElementType.METHOD, ElementType.TYPE}) | |
| 11 | +@Retention(RetentionPolicy.RUNTIME) | |
| 12 | +@Documented | |
| 13 | +public @interface LogAnnotation { | |
| 14 | + | |
| 15 | + /** | |
| 16 | + * 模块 | |
| 17 | + * @return | |
| 18 | + */ | |
| 19 | + String module(); | |
| 20 | + | |
| 21 | + /** | |
| 22 | + * 记录执行参数 | |
| 23 | + * @return | |
| 24 | + */ | |
| 25 | + boolean recordRequestParam() default true; | |
| 26 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/autoconfigure/LoggingConfigurationSelector.java
0 → 100644
| ... | ... | @@ -0,0 +1,23 @@ |
| 1 | +package com.sincere.autho.autoconfigure; | |
| 2 | + | |
| 3 | +import org.springframework.context.annotation.ImportSelector; | |
| 4 | +import org.springframework.core.type.AnnotationMetadata; | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * @author owen | |
| 8 | + * @create 2017年7月2日 | |
| 9 | + * 装配bean | |
| 10 | + */ | |
| 11 | +public class LoggingConfigurationSelector implements ImportSelector { | |
| 12 | + | |
| 13 | + @Override | |
| 14 | + public String[] selectImports(AnnotationMetadata importingClassMetadata) { | |
| 15 | + // TODO Auto-generated method stub | |
| 16 | +// importingClassMetadata.getAllAnnotationAttributes(EnableEcho.class.getName()); | |
| 17 | + return new String[] { | |
| 18 | + "com.sincere.autho.autoconfigure.datasource.DataSourceAspect", | |
| 19 | + "com.sincere.autho.autoconfigure.log.LogAnnotationAspect" | |
| 20 | + }; | |
| 21 | + } | |
| 22 | + | |
| 23 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/autoconfigure/datasource/DataSourceAspect.java
0 → 100644
| ... | ... | @@ -0,0 +1,42 @@ |
| 1 | +package com.sincere.autho.autoconfigure.datasource; | |
| 2 | + | |
| 3 | +import com.sincere.autho.annotation.datasource.DataSource; | |
| 4 | +import com.sincere.common.config.DataSourceHolder; | |
| 5 | +import com.sincere.common.config.DataSourceKey; | |
| 6 | +import org.aspectj.lang.JoinPoint; | |
| 7 | +import org.aspectj.lang.annotation.After; | |
| 8 | +import org.aspectj.lang.annotation.Aspect; | |
| 9 | +import org.aspectj.lang.annotation.Before; | |
| 10 | +import org.slf4j.Logger; | |
| 11 | +import org.slf4j.LoggerFactory; | |
| 12 | +import org.springframework.core.annotation.Order; | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * 切换数据源Advice | |
| 16 | + */ | |
| 17 | +@Aspect | |
| 18 | +@Order(-1) // 保证该AOP在@Transactional之前执行 | |
| 19 | +public class DataSourceAspect { | |
| 20 | + | |
| 21 | + private static final Logger logger = LoggerFactory.getLogger(DataSourceAspect.class); | |
| 22 | + | |
| 23 | + @Before("@annotation(ds)") | |
| 24 | + public void changeDataSource(JoinPoint point, DataSource ds) throws Throwable { | |
| 25 | + String dsId = ds.name(); | |
| 26 | + try { | |
| 27 | + DataSourceKey dataSourceKey = DataSourceKey.valueOf(dsId); | |
| 28 | + DataSourceHolder.setDataSourceKey(dataSourceKey); | |
| 29 | + } catch (Exception e) { | |
| 30 | + logger.error("数据源[{}]不存在,使用默认数据源 > {}", ds.name(), point.getSignature()); | |
| 31 | + } | |
| 32 | + | |
| 33 | + | |
| 34 | + } | |
| 35 | + | |
| 36 | + @After("@annotation(ds)") | |
| 37 | + public void restoreDataSource(JoinPoint point, DataSource ds) { | |
| 38 | + logger.debug("Revert DataSource : {transIdo} > {}", ds.name(), point.getSignature()); | |
| 39 | + DataSourceHolder.clearDataSourceKey(); | |
| 40 | + } | |
| 41 | + | |
| 42 | +} | |
| 0 | 43 | \ No newline at end of file | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/autoconfigure/log/LogAnnotationAspect.java
0 → 100644
| ... | ... | @@ -0,0 +1,133 @@ |
| 1 | +package com.sincere.autho.autoconfigure.log; | |
| 2 | + | |
| 3 | +import com.alibaba.fastjson.JSON; | |
| 4 | +import com.alibaba.fastjson.JSONObject; | |
| 5 | +import com.sincere.autho.annotation.log.LogAnnotation; | |
| 6 | +import com.sincere.autho.log.service.LogService; | |
| 7 | +import com.sincere.autho.log.service.impl.LogServiceImpl; | |
| 8 | +import com.sincere.autho.utils.SysUserUtil; | |
| 9 | +import com.sincere.common.model.log.SysLog; | |
| 10 | +import com.sincere.common.model.system.LoginAppUser; | |
| 11 | +import com.sincere.common.util.SpringUtils; | |
| 12 | +import org.aspectj.lang.ProceedingJoinPoint; | |
| 13 | +import org.aspectj.lang.annotation.Around; | |
| 14 | +import org.aspectj.lang.annotation.Aspect; | |
| 15 | +import org.aspectj.lang.reflect.MethodSignature; | |
| 16 | +import org.slf4j.Logger; | |
| 17 | +import org.slf4j.LoggerFactory; | |
| 18 | +import org.springframework.core.annotation.Order; | |
| 19 | + | |
| 20 | +import javax.servlet.http.HttpServletRequest; | |
| 21 | +import javax.servlet.http.HttpServletResponse; | |
| 22 | +import java.util.ArrayList; | |
| 23 | +import java.util.Date; | |
| 24 | +import java.util.List; | |
| 25 | +import java.util.concurrent.CompletableFuture; | |
| 26 | +import java.util.concurrent.ThreadLocalRandom; | |
| 27 | + | |
| 28 | +/** | |
| 29 | + * 保存日志 | |
| 30 | + * | |
| 31 | + * @author owen | |
| 32 | + * @create 2017年7月2日 | |
| 33 | + */ | |
| 34 | +@Aspect | |
| 35 | +@Order(-1) // 保证该AOP在@Transactional之前执行 | |
| 36 | +public class LogAnnotationAspect { | |
| 37 | + | |
| 38 | + private static final Logger logger = LoggerFactory.getLogger(LogAnnotationAspect.class); | |
| 39 | + | |
| 40 | + @Around("@annotation(ds)") | |
| 41 | + public Object logSave(ProceedingJoinPoint joinPoint, LogAnnotation ds) throws Throwable { | |
| 42 | + | |
| 43 | + // 请求流水号 | |
| 44 | + String transid = getRandom(); | |
| 45 | + // 记录开始时间 | |
| 46 | + long start = System.currentTimeMillis(); | |
| 47 | + // 获取方法参数 | |
| 48 | + String url = null; | |
| 49 | + String httpMethod = null; | |
| 50 | + Object result = null; | |
| 51 | + List<Object> httpReqArgs = new ArrayList<Object>(); | |
| 52 | + SysLog log = new SysLog(); | |
| 53 | + log.setCreateTime(new Date()); | |
| 54 | + LoginAppUser loginAppUser = SysUserUtil.getLoginAppUser(); | |
| 55 | + if (loginAppUser != null) { | |
| 56 | + log.setUsername(loginAppUser.getUsername()); | |
| 57 | + } | |
| 58 | + | |
| 59 | + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); | |
| 60 | + | |
| 61 | + LogAnnotation logAnnotation = methodSignature.getMethod().getDeclaredAnnotation(LogAnnotation.class); | |
| 62 | + log.setModule(logAnnotation.module() + ":" + methodSignature.getDeclaringTypeName() + "/" | |
| 63 | + + methodSignature.getName()); | |
| 64 | + | |
| 65 | + Object[] args = joinPoint.getArgs();// 参数值 | |
| 66 | + url = methodSignature.getDeclaringTypeName() + "/"+ methodSignature.getName(); | |
| 67 | + for (Object object : args) { | |
| 68 | + if (object instanceof HttpServletRequest) { | |
| 69 | + HttpServletRequest request = (HttpServletRequest) object; | |
| 70 | + url = request.getRequestURI(); | |
| 71 | + httpMethod = request.getMethod(); | |
| 72 | + } else if (object instanceof HttpServletResponse) { | |
| 73 | + } else { | |
| 74 | + | |
| 75 | + httpReqArgs.add(object); | |
| 76 | + } | |
| 77 | + } | |
| 78 | + | |
| 79 | + try { | |
| 80 | + String params = JSONObject.toJSONString(httpReqArgs); | |
| 81 | + log.setParams(params); | |
| 82 | + // 打印请求参数参数 | |
| 83 | + logger.info("开始请求,transid={}, url={} , httpMethod={}, reqData={} ", transid, url, httpMethod, params); | |
| 84 | + } catch (Exception e) { | |
| 85 | + logger.error("记录参数失败:{}", e.getMessage()); | |
| 86 | + } | |
| 87 | + | |
| 88 | + try { | |
| 89 | + // 调用原来的方法 | |
| 90 | + result = joinPoint.proceed(); | |
| 91 | + log.setFlag(Boolean.TRUE); | |
| 92 | + } catch (Exception e) { | |
| 93 | + log.setFlag(Boolean.FALSE); | |
| 94 | + log.setRemark(e.getMessage()); | |
| 95 | + | |
| 96 | + throw e; | |
| 97 | + } finally { | |
| 98 | + | |
| 99 | + CompletableFuture.runAsync(() -> { | |
| 100 | + try { | |
| 101 | + if (logAnnotation.recordRequestParam()) { | |
| 102 | + LogService logService = SpringUtils.getBean(LogServiceImpl.class); | |
| 103 | + logService.save(log); | |
| 104 | + } | |
| 105 | + } catch (Exception e) { | |
| 106 | + logger.error("记录参数失败:{}", e.getMessage()); | |
| 107 | + } | |
| 108 | + | |
| 109 | + }); | |
| 110 | + // 获取回执报文及耗时 | |
| 111 | + logger.info("请求完成, transid={}, 耗时={}, resp={}:", transid, (System.currentTimeMillis() - start), | |
| 112 | + result == null ? null : JSON.toJSONString(result)); | |
| 113 | + | |
| 114 | + } | |
| 115 | + return result; | |
| 116 | + } | |
| 117 | + | |
| 118 | + /** | |
| 119 | + * 生成日志随机数 | |
| 120 | + * | |
| 121 | + * @return | |
| 122 | + */ | |
| 123 | + public String getRandom() { | |
| 124 | + int i = 0; | |
| 125 | + StringBuilder st = new StringBuilder(); | |
| 126 | + while (i < 5) { | |
| 127 | + i++; | |
| 128 | + st.append(ThreadLocalRandom.current().nextInt(10)); | |
| 129 | + } | |
| 130 | + return st.toString() + System.currentTimeMillis(); | |
| 131 | + } | |
| 132 | + | |
| 133 | +} | |
| 0 | 134 | \ No newline at end of file | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/config/OAuth2ServerConfig.java
0 → 100644
| ... | ... | @@ -0,0 +1,260 @@ |
| 1 | + | |
| 2 | +package com.sincere.autho.config; | |
| 3 | + | |
| 4 | +import com.sincere.autho.service.RedisAuthorizationCodeServices; | |
| 5 | +import com.sincere.autho.service.RedisClientDetailsService; | |
| 6 | +import com.sincere.autho.token.RedisTemplateTokenStore; | |
| 7 | +import com.sincere.common.props.PermitUrlProperties; | |
| 8 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 9 | +import org.springframework.boot.autoconfigure.AutoConfigureAfter; | |
| 10 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 11 | +import org.springframework.context.annotation.Bean; | |
| 12 | +import org.springframework.context.annotation.Configuration; | |
| 13 | +import org.springframework.data.redis.core.RedisTemplate; | |
| 14 | +import org.springframework.security.authentication.AuthenticationManager; | |
| 15 | +import org.springframework.security.config.annotation.web.builders.HttpSecurity; | |
| 16 | +import org.springframework.security.config.annotation.web.builders.WebSecurity; | |
| 17 | +import org.springframework.security.core.userdetails.UserDetailsService; | |
| 18 | +import org.springframework.security.oauth2.common.OAuth2AccessToken; | |
| 19 | +import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; | |
| 20 | +import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; | |
| 21 | +import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer; | |
| 22 | +import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; | |
| 23 | +import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter; | |
| 24 | +import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer; | |
| 25 | +import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer; | |
| 26 | +import org.springframework.security.oauth2.provider.code.RandomValueAuthorizationCodeServices; | |
| 27 | +import org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator; | |
| 28 | +import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter; | |
| 29 | +import org.springframework.security.oauth2.provider.token.store.JwtTokenStore; | |
| 30 | +import org.springframework.security.web.util.matcher.RequestMatcher; | |
| 31 | +import org.springframework.stereotype.Component; | |
| 32 | +import org.springframework.util.AntPathMatcher; | |
| 33 | + | |
| 34 | +import javax.annotation.Resource; | |
| 35 | +import javax.servlet.http.HttpServletRequest; | |
| 36 | +import javax.sql.DataSource; | |
| 37 | + | |
| 38 | +/** | |
| 39 | + * @author owen 624191343@qq.com | |
| 40 | + * @version 创建时间:2017年11月12日 上午22:57:51 | |
| 41 | + */ | |
| 42 | +@Configuration | |
| 43 | +public class OAuth2ServerConfig { | |
| 44 | + | |
| 45 | + @Resource | |
| 46 | + private DataSource dataSource; | |
| 47 | + @Resource | |
| 48 | + private RedisTemplate<String, Object> redisTemplate; | |
| 49 | + | |
| 50 | + /** | |
| 51 | + * 声明 ClientDetails实现 | |
| 52 | + */ | |
| 53 | + @Bean | |
| 54 | + public RedisClientDetailsService redisClientDetailsService() { | |
| 55 | + RedisClientDetailsService clientDetailsService = new RedisClientDetailsService(dataSource); | |
| 56 | + clientDetailsService.setRedisTemplate(redisTemplate); | |
| 57 | + return clientDetailsService; | |
| 58 | + } | |
| 59 | + | |
| 60 | + | |
| 61 | + @Bean | |
| 62 | + public RandomValueAuthorizationCodeServices authorizationCodeServices() { | |
| 63 | + RedisAuthorizationCodeServices redisAuthorizationCodeServices = new RedisAuthorizationCodeServices(); | |
| 64 | + redisAuthorizationCodeServices.setRedisTemplate(redisTemplate); | |
| 65 | + return redisAuthorizationCodeServices; | |
| 66 | + } | |
| 67 | + | |
| 68 | + /** | |
| 69 | + * @author owen 624191343@qq.com | |
| 70 | + * @version 创建时间:2017年11月12日 上午22:57:51 默认token存储在内存中 | |
| 71 | + * DefaultTokenServices默认处理 | |
| 72 | + */ | |
| 73 | + @Component | |
| 74 | + @Configuration | |
| 75 | + @EnableAuthorizationServer | |
| 76 | + @AutoConfigureAfter(AuthorizationServerEndpointsConfigurer.class) | |
| 77 | + public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter { | |
| 78 | + /** | |
| 79 | + * 注入authenticationManager 来支持 password grant type | |
| 80 | + */ | |
| 81 | + @Autowired | |
| 82 | + private AuthenticationManager authenticationManager; | |
| 83 | + | |
| 84 | + @Autowired | |
| 85 | + private UserDetailsService userDetailsService; | |
| 86 | + | |
| 87 | + @Autowired(required = false) | |
| 88 | + private RedisTemplateTokenStore redisTokenStore; | |
| 89 | + | |
| 90 | + @Autowired(required = false) | |
| 91 | + private JwtTokenStore jwtTokenStore; | |
| 92 | + @Autowired(required = false) | |
| 93 | + private JwtAccessTokenConverter jwtAccessTokenConverter; | |
| 94 | + | |
| 95 | + @Autowired | |
| 96 | + private WebResponseExceptionTranslator webResponseExceptionTranslator; | |
| 97 | + | |
| 98 | + @Autowired | |
| 99 | + private RedisClientDetailsService redisClientDetailsService; | |
| 100 | + | |
| 101 | + @Autowired(required = false) | |
| 102 | + private RandomValueAuthorizationCodeServices authorizationCodeServices; | |
| 103 | + | |
| 104 | + /** | |
| 105 | + * 配置身份认证器,配置认证方式,TokenStore,TokenGranter,OAuth2RequestFactory | |
| 106 | + */ | |
| 107 | + public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { | |
| 108 | + | |
| 109 | + if (jwtTokenStore != null) { | |
| 110 | + endpoints.tokenStore(jwtTokenStore).authenticationManager(authenticationManager) | |
| 111 | + // 支持 | |
| 112 | + .userDetailsService(userDetailsService); | |
| 113 | + // password | |
| 114 | + // grant | |
| 115 | + // type; | |
| 116 | + } else if (redisTokenStore != null) { | |
| 117 | + endpoints.tokenStore(redisTokenStore).authenticationManager(authenticationManager) | |
| 118 | + // 支持 | |
| 119 | + .userDetailsService(userDetailsService); | |
| 120 | + // password | |
| 121 | + // grant | |
| 122 | + // type; | |
| 123 | + } | |
| 124 | + | |
| 125 | + if (jwtAccessTokenConverter != null) { | |
| 126 | + endpoints.accessTokenConverter(jwtAccessTokenConverter); | |
| 127 | + } | |
| 128 | + | |
| 129 | + endpoints.authorizationCodeServices(authorizationCodeServices); | |
| 130 | + | |
| 131 | + endpoints.exceptionTranslator(webResponseExceptionTranslator); | |
| 132 | + | |
| 133 | + } | |
| 134 | + | |
| 135 | + /** | |
| 136 | + * 配置应用名称 应用id | |
| 137 | + * 配置OAuth2的客户端相关信息 | |
| 138 | + */ | |
| 139 | + @Override | |
| 140 | + public void configure(ClientDetailsServiceConfigurer clients) throws Exception { | |
| 141 | + | |
| 142 | + // if(clientDetailsService!=null){ | |
| 143 | + // clients.withClientDetails(clientDetailsService); | |
| 144 | + // }else{ | |
| 145 | + // clients.inMemory().withClient("neusoft1").secret("neusoft1") | |
| 146 | + // .authorizedGrantTypes("authorization_code", "password", | |
| 147 | + // "refresh_token").scopes("all") | |
| 148 | + // .resourceIds(SERVER_RESOURCE_ID).accessTokenValiditySeconds(1200) | |
| 149 | + // .refreshTokenValiditySeconds(50000) | |
| 150 | + // .and().withClient("neusoft2").secret("neusoft2") | |
| 151 | + // .authorizedGrantTypes("authorization_code", "password", | |
| 152 | + // "refresh_token").scopes("all") | |
| 153 | + // .resourceIds(SERVER_RESOURCE_ID).accessTokenValiditySeconds(1200) | |
| 154 | + // .refreshTokenValiditySeconds(50000) | |
| 155 | + // ; | |
| 156 | + // } | |
| 157 | + clients.withClientDetails(redisClientDetailsService); | |
| 158 | + redisClientDetailsService.loadAllClientToCache(); | |
| 159 | + } | |
| 160 | + | |
| 161 | + /** | |
| 162 | + * 对应于配置AuthorizationServer安全认证的相关信息,创建ClientCredentialsTokenEndpointFilter核心过滤器 | |
| 163 | + */ | |
| 164 | + @Override | |
| 165 | + public void configure(AuthorizationServerSecurityConfigurer security) throws Exception { | |
| 166 | + // url:/oauth/token_key,exposes | |
| 167 | + security.tokenKeyAccess("permitAll()") | |
| 168 | + /// public key for token | |
| 169 | + /// verification if using | |
| 170 | + /// JWT tokens | |
| 171 | + // url:/oauth/check_token | |
| 172 | + .checkTokenAccess("isAuthenticated()") | |
| 173 | + // allow check token | |
| 174 | + .allowFormAuthenticationForClients(); | |
| 175 | + | |
| 176 | + // security.allowFormAuthenticationForClients(); | |
| 177 | + //// security.tokenKeyAccess("permitAll()"); | |
| 178 | + // security.tokenKeyAccess("isAuthenticated()"); | |
| 179 | + } | |
| 180 | + | |
| 181 | + } | |
| 182 | + | |
| 183 | + /** | |
| 184 | + * 资源服务 | |
| 185 | + */ | |
| 186 | + @Configuration | |
| 187 | + @EnableResourceServer | |
| 188 | + @EnableConfigurationProperties(PermitUrlProperties.class) | |
| 189 | + public class ResourceServerConfig extends ResourceServerConfigurerAdapter { | |
| 190 | + | |
| 191 | + @Autowired | |
| 192 | + private PermitUrlProperties permitUrlProperties; | |
| 193 | + | |
| 194 | + public void configure(WebSecurity web) throws Exception { | |
| 195 | + web.ignoring().antMatchers("/health"); | |
| 196 | + web.ignoring().antMatchers("/oauth/user/token"); | |
| 197 | + web.ignoring().antMatchers("/oauth/client/token"); | |
| 198 | + } | |
| 199 | + | |
| 200 | + @Override | |
| 201 | + public void configure(HttpSecurity http) throws Exception { | |
| 202 | + http.requestMatcher( | |
| 203 | + /** | |
| 204 | + * 判断来源请求是否包含oauth2授权信息 | |
| 205 | + */ | |
| 206 | + new RequestMatcher() { | |
| 207 | + private AntPathMatcher antPathMatcher = new AntPathMatcher(); | |
| 208 | + | |
| 209 | + @Override | |
| 210 | + public boolean matches(HttpServletRequest request) { | |
| 211 | + // 请求参数中包含access_token参数 | |
| 212 | + if (request.getParameter(OAuth2AccessToken.ACCESS_TOKEN) != null) { | |
| 213 | + return true; | |
| 214 | + } | |
| 215 | + | |
| 216 | + // 头部的Authorization值以Bearer开头 | |
| 217 | + String auth = request.getHeader("Authorization"); | |
| 218 | + if (auth != null) { | |
| 219 | + if (auth.startsWith(OAuth2AccessToken.BEARER_TYPE)) { | |
| 220 | + return true; | |
| 221 | + } | |
| 222 | + } | |
| 223 | + if (antPathMatcher.match(request.getRequestURI(), "/oauth/userinfo")) { | |
| 224 | + return true; | |
| 225 | + } | |
| 226 | + if (antPathMatcher.match(request.getRequestURI(), "/oauth/remove/token")) { | |
| 227 | + return true; | |
| 228 | + } | |
| 229 | + if (antPathMatcher.match(request.getRequestURI(), "/oauth/get/token")) { | |
| 230 | + return true; | |
| 231 | + } | |
| 232 | + if (antPathMatcher.match(request.getRequestURI(), "/oauth/refresh/token")) { | |
| 233 | + return true; | |
| 234 | + } | |
| 235 | + | |
| 236 | + if (antPathMatcher.match(request.getRequestURI(), "/oauth/token/list")) { | |
| 237 | + return true; | |
| 238 | + } | |
| 239 | + | |
| 240 | + if (antPathMatcher.match("/clients/**", request.getRequestURI())) { | |
| 241 | + return true; | |
| 242 | + } | |
| 243 | + | |
| 244 | + if (antPathMatcher.match("/services/**", request.getRequestURI())) { | |
| 245 | + return true; | |
| 246 | + } | |
| 247 | + if (antPathMatcher.match("/redis/**", request.getRequestURI())) { | |
| 248 | + return true; | |
| 249 | + } | |
| 250 | + return false; | |
| 251 | + } | |
| 252 | + } | |
| 253 | + | |
| 254 | + ).authorizeRequests().antMatchers(permitUrlProperties.getIgnored()).permitAll().anyRequest() | |
| 255 | + .authenticated(); | |
| 256 | + } | |
| 257 | + | |
| 258 | + } | |
| 259 | + | |
| 260 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/config/SecurityConfig.java
0 → 100644
| ... | ... | @@ -0,0 +1,129 @@ |
| 1 | +package com.sincere.autho.config; | |
| 2 | + | |
| 3 | +import com.sincere.autho.handler.OauthLogoutHandler; | |
| 4 | +import com.sincere.common.props.PermitUrlProperties; | |
| 5 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 6 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 7 | +import org.springframework.context.annotation.Bean; | |
| 8 | +import org.springframework.context.annotation.Configuration; | |
| 9 | +import org.springframework.security.authentication.AuthenticationManager; | |
| 10 | +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; | |
| 11 | +import org.springframework.security.config.annotation.web.builders.HttpSecurity; | |
| 12 | +import org.springframework.security.config.annotation.web.builders.WebSecurity; | |
| 13 | +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; | |
| 14 | +import org.springframework.security.config.http.SessionCreationPolicy; | |
| 15 | +import org.springframework.security.core.userdetails.UserDetailsService; | |
| 16 | +import org.springframework.security.crypto.password.PasswordEncoder; | |
| 17 | +import org.springframework.security.web.AuthenticationEntryPoint; | |
| 18 | +import org.springframework.security.web.authentication.AuthenticationFailureHandler; | |
| 19 | +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; | |
| 20 | +import org.springframework.security.web.authentication.logout.HttpStatusReturningLogoutSuccessHandler; | |
| 21 | + | |
| 22 | +/** | |
| 23 | + * spring security配置 | |
| 24 | + * 在WebSecurityConfigurerAdapter不拦截oauth要开放的资源 | |
| 25 | + */ | |
| 26 | +@Configuration | |
| 27 | +//@EnableWebSecurity | |
| 28 | +//@EnableGlobalMethodSecurity(prePostEnabled = true) | |
| 29 | +@EnableConfigurationProperties(PermitUrlProperties.class) | |
| 30 | +public class SecurityConfig extends WebSecurityConfigurerAdapter { | |
| 31 | + | |
| 32 | + @Autowired | |
| 33 | + private AuthenticationSuccessHandler authenticationSuccessHandler; | |
| 34 | + @Autowired | |
| 35 | + private AuthenticationFailureHandler authenticationFailureHandler; | |
| 36 | + // @Autowired | |
| 37 | + // private LogoutSuccessHandler logoutSuccessHandler; | |
| 38 | + @Autowired(required = false) | |
| 39 | + private AuthenticationEntryPoint authenticationEntryPoint; | |
| 40 | + @Autowired | |
| 41 | + private UserDetailsService userDetailsService; | |
| 42 | + | |
| 43 | + @Autowired | |
| 44 | + private PasswordEncoder passwordEncoder; | |
| 45 | + | |
| 46 | + @Autowired | |
| 47 | + private OauthLogoutHandler oauthLogoutHandler; | |
| 48 | + @Autowired | |
| 49 | + private PermitUrlProperties permitUrlProperties ; | |
| 50 | + | |
| 51 | + @Autowired | |
| 52 | + private ValidateCodeSecurityConfig validateCodeSecurityConfig ; | |
| 53 | + | |
| 54 | + @Override | |
| 55 | + public void configure(WebSecurity web) throws Exception { | |
| 56 | + web.ignoring().antMatchers("/v2/api-docs", "/configuration/ui", "/swagger-resources", "/configuration/security", | |
| 57 | + "/swagger-ui.html", "/webjars/**", "/doc.html", "/login.html"); | |
| 58 | + web.ignoring().antMatchers("/js/**"); | |
| 59 | + web.ignoring().antMatchers("/css/**"); | |
| 60 | + web.ignoring().antMatchers("/health"); | |
| 61 | + // 忽略登录界面 | |
| 62 | + web.ignoring().antMatchers("/login.html"); | |
| 63 | + web.ignoring().antMatchers("/index.html"); | |
| 64 | + web.ignoring().antMatchers("/oauth/user/token"); | |
| 65 | + web.ignoring().antMatchers("/oauth/client/token"); | |
| 66 | + web.ignoring().antMatchers("/validata/code/**"); | |
| 67 | + web.ignoring().antMatchers(permitUrlProperties.getIgnored()); | |
| 68 | + | |
| 69 | + } | |
| 70 | + /** | |
| 71 | + * 认证管理 | |
| 72 | + * | |
| 73 | + * @return 认证管理对象 | |
| 74 | + * @throws Exception | |
| 75 | + * 认证异常信息 | |
| 76 | + */ | |
| 77 | + @Override | |
| 78 | + @Bean | |
| 79 | + public AuthenticationManager authenticationManagerBean() throws Exception { | |
| 80 | + return super.authenticationManagerBean(); | |
| 81 | + } | |
| 82 | + | |
| 83 | + @Override | |
| 84 | + protected void configure(HttpSecurity http) throws Exception { | |
| 85 | + http.csrf().disable(); | |
| 86 | + | |
| 87 | + http.authorizeRequests() | |
| 88 | + .anyRequest().authenticated(); | |
| 89 | + http.formLogin().loginPage("/login.html").loginProcessingUrl("/user/login") | |
| 90 | + .successHandler(authenticationSuccessHandler).failureHandler(authenticationFailureHandler); | |
| 91 | + | |
| 92 | + // 基于密码 等模式可以无session,不支持授权码模式 | |
| 93 | + if (authenticationEntryPoint != null) { | |
| 94 | + http.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint); | |
| 95 | + http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); | |
| 96 | + | |
| 97 | + } else { | |
| 98 | + // 授权码模式单独处理,需要session的支持,此模式可以支持所有oauth2的认证 | |
| 99 | + http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED); | |
| 100 | + } | |
| 101 | + | |
| 102 | + http.logout().logoutSuccessUrl("/login.html") | |
| 103 | + .logoutSuccessHandler(new HttpStatusReturningLogoutSuccessHandler()) | |
| 104 | + .addLogoutHandler(oauthLogoutHandler).clearAuthentication(true); | |
| 105 | + | |
| 106 | + //增加验证码处理 | |
| 107 | + http.apply(validateCodeSecurityConfig) ; | |
| 108 | + // http.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler); | |
| 109 | + // 解决不允许显示在iframe的问题 | |
| 110 | + http.headers().frameOptions().disable(); | |
| 111 | + http.headers().cacheControl(); | |
| 112 | + | |
| 113 | + } | |
| 114 | + | |
| 115 | + /** | |
| 116 | + * 全局用户信息 | |
| 117 | + * | |
| 118 | + * @param auth | |
| 119 | + * 认证管理 | |
| 120 | + * @throws Exception | |
| 121 | + * 用户认证异常信息 | |
| 122 | + */ | |
| 123 | + @Autowired | |
| 124 | + public void globalUserDetails(AuthenticationManagerBuilder auth) throws Exception { | |
| 125 | + auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder); | |
| 126 | + } | |
| 127 | + | |
| 128 | + | |
| 129 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/config/ValidateCodeSecurityConfig.java
0 → 100644
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +/** | |
| 2 | + * | |
| 3 | + */ | |
| 4 | +package com.sincere.autho.config; | |
| 5 | + | |
| 6 | +import org.springframework.security.config.annotation.SecurityConfigurerAdapter; | |
| 7 | +import org.springframework.security.config.annotation.web.builders.HttpSecurity; | |
| 8 | +import org.springframework.security.web.DefaultSecurityFilterChain; | |
| 9 | +import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter; | |
| 10 | +import org.springframework.stereotype.Component; | |
| 11 | + | |
| 12 | +import javax.annotation.Resource; | |
| 13 | +import javax.servlet.Filter; | |
| 14 | + | |
| 15 | +/** | |
| 16 | + * 校验码相关安全配置 | |
| 17 | + * | |
| 18 | + * @author zlt | |
| 19 | + */ | |
| 20 | +@Component("validateCodeSecurityConfig") | |
| 21 | +public class ValidateCodeSecurityConfig extends SecurityConfigurerAdapter<DefaultSecurityFilterChain, HttpSecurity> { | |
| 22 | + @Resource | |
| 23 | + private Filter validateCodeFilter; | |
| 24 | + | |
| 25 | + @Override | |
| 26 | + public void configure(HttpSecurity http) { | |
| 27 | + http.addFilterBefore(validateCodeFilter, AbstractPreAuthenticatedProcessingFilter.class); | |
| 28 | + } | |
| 29 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/control/OAuth2Controller.java
0 → 100644
| ... | ... | @@ -0,0 +1,482 @@ |
| 1 | +package com.sincere.autho.control; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.core.JsonProcessingException; | |
| 4 | +import com.fasterxml.jackson.databind.ObjectMapper; | |
| 5 | +import com.sincere.autho.annotation.log.LogAnnotation; | |
| 6 | +import com.sincere.autho.service.RedisClientDetailsService; | |
| 7 | +import com.sincere.autho.utils.SpringUtil; | |
| 8 | +import com.sincere.common.commons.PageResult; | |
| 9 | +import com.sincere.common.model.system.LoginAppUser; | |
| 10 | +import com.sincere.common.model.system.SysPermission; | |
| 11 | +import io.swagger.annotations.Api; | |
| 12 | +import io.swagger.annotations.ApiOperation; | |
| 13 | +import io.swagger.annotations.ApiParam; | |
| 14 | +import org.apache.commons.collections.MapUtils; | |
| 15 | +import org.slf4j.Logger; | |
| 16 | +import org.slf4j.LoggerFactory; | |
| 17 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 18 | +import org.springframework.dao.DataAccessException; | |
| 19 | +import org.springframework.data.redis.connection.RedisConnection; | |
| 20 | +import org.springframework.data.redis.core.Cursor; | |
| 21 | +import org.springframework.data.redis.core.RedisCallback; | |
| 22 | +import org.springframework.data.redis.core.RedisTemplate; | |
| 23 | +import org.springframework.data.redis.core.ScanOptions; | |
| 24 | +import org.springframework.http.HttpStatus; | |
| 25 | +import org.springframework.security.authentication.AuthenticationManager; | |
| 26 | +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; | |
| 27 | +import org.springframework.security.core.Authentication; | |
| 28 | +import org.springframework.security.core.context.SecurityContextHolder; | |
| 29 | +import org.springframework.security.crypto.password.PasswordEncoder; | |
| 30 | +import org.springframework.security.oauth2.common.OAuth2AccessToken; | |
| 31 | +import org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException; | |
| 32 | +import org.springframework.security.oauth2.provider.*; | |
| 33 | +import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails; | |
| 34 | +import org.springframework.security.oauth2.provider.client.ClientCredentialsTokenGranter; | |
| 35 | +import org.springframework.security.oauth2.provider.refresh.RefreshTokenGranter; | |
| 36 | +import org.springframework.security.oauth2.provider.request.DefaultOAuth2RequestFactory; | |
| 37 | +import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices; | |
| 38 | +import org.springframework.security.oauth2.provider.token.TokenStore; | |
| 39 | +import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken; | |
| 40 | +import org.springframework.web.bind.annotation.PostMapping; | |
| 41 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 42 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 43 | +import org.springframework.web.bind.annotation.RestController; | |
| 44 | + | |
| 45 | +import javax.annotation.Resource; | |
| 46 | +import javax.servlet.http.HttpServletRequest; | |
| 47 | +import javax.servlet.http.HttpServletResponse; | |
| 48 | +import java.io.IOException; | |
| 49 | +import java.util.*; | |
| 50 | + | |
| 51 | +/** | |
| 52 | + * @author 作者 owen E-mail: 624191343@qq.com | |
| 53 | + * @version 创建时间:2018年4月28日 下午2:18:54 类说明 | |
| 54 | + */ | |
| 55 | + | |
| 56 | +@Api(tags = "OAuth2相关操作") | |
| 57 | +@RestController | |
| 58 | +public class OAuth2Controller { | |
| 59 | + | |
| 60 | + private static final Logger logger = LoggerFactory.getLogger(OAuth2Controller.class); | |
| 61 | + @Resource | |
| 62 | + private ObjectMapper objectMapper; // springmvc启动时自动装配json处理类 | |
| 63 | + @Autowired | |
| 64 | + private PasswordEncoder passwordEncoder; | |
| 65 | + | |
| 66 | + @Autowired | |
| 67 | + private TokenStore tokenStore; | |
| 68 | + | |
| 69 | + @Autowired | |
| 70 | + private RedisTemplate<String, Object> redisTemplate; | |
| 71 | + | |
| 72 | + @ApiOperation(value = "用户名密码获取token") | |
| 73 | + @PostMapping("/oauth/user/token") | |
| 74 | + public void getUserTokenInfo( | |
| 75 | + @ApiParam(required = true, name = "username", value = "账号") @RequestParam(value = "username") String username, | |
| 76 | + @ApiParam(required = true, name = "password", value = "密码") @RequestParam(value = "password") String password, | |
| 77 | + HttpServletRequest request, HttpServletResponse response) { | |
| 78 | + String clientId = request.getHeader("client_id"); | |
| 79 | + String clientSecret = request.getHeader("client_secret"); | |
| 80 | + | |
| 81 | + try { | |
| 82 | + | |
| 83 | + if (clientId == null || "".equals(clientId)) { | |
| 84 | + throw new UnapprovedClientAuthenticationException("请求头中无client_id信息"); | |
| 85 | + } | |
| 86 | + | |
| 87 | + if (clientSecret == null || "".equals(clientSecret)) { | |
| 88 | + throw new UnapprovedClientAuthenticationException("请求头中无client_secret信息"); | |
| 89 | + } | |
| 90 | + | |
| 91 | + RedisClientDetailsService clientDetailsService = SpringUtil.getBean(RedisClientDetailsService.class); | |
| 92 | + | |
| 93 | + ClientDetails clientDetails = clientDetailsService.loadClientByClientId(clientId); | |
| 94 | + | |
| 95 | + if (clientDetails == null) { | |
| 96 | + throw new UnapprovedClientAuthenticationException("clientId对应的信息不存在"); | |
| 97 | + } else if (!passwordEncoder.matches(clientSecret, clientDetails.getClientSecret())) { | |
| 98 | + throw new UnapprovedClientAuthenticationException("clientSecret不匹配"); | |
| 99 | + } | |
| 100 | + | |
| 101 | + TokenRequest tokenRequest = new TokenRequest(MapUtils.EMPTY_MAP, clientId, clientDetails.getScope(), | |
| 102 | + "customer"); | |
| 103 | + | |
| 104 | + OAuth2Request oAuth2Request = tokenRequest.createOAuth2Request(clientDetails); | |
| 105 | + | |
| 106 | + UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password); | |
| 107 | + | |
| 108 | + AuthenticationManager authenticationManager = SpringUtil.getBean(AuthenticationManager.class); | |
| 109 | + | |
| 110 | + Authentication authentication = authenticationManager.authenticate(token); | |
| 111 | + SecurityContextHolder.getContext().setAuthentication(authentication); | |
| 112 | + | |
| 113 | + OAuth2Authentication oAuth2Authentication = new OAuth2Authentication(oAuth2Request, authentication); | |
| 114 | + | |
| 115 | + AuthorizationServerTokenServices authorizationServerTokenServices = SpringUtil | |
| 116 | + .getBean("defaultAuthorizationServerTokenServices", AuthorizationServerTokenServices.class); | |
| 117 | + | |
| 118 | + OAuth2AccessToken oAuth2AccessToken = authorizationServerTokenServices | |
| 119 | + .createAccessToken(oAuth2Authentication); | |
| 120 | + | |
| 121 | + oAuth2Authentication.setAuthenticated(true); | |
| 122 | + | |
| 123 | + response.setContentType("application/json;charset=UTF-8"); | |
| 124 | + response.getWriter().write(objectMapper.writeValueAsString(oAuth2AccessToken)); | |
| 125 | + response.getWriter().flush(); | |
| 126 | + response.getWriter().close(); | |
| 127 | + | |
| 128 | + } catch (Exception e) { | |
| 129 | + | |
| 130 | + response.setStatus(HttpStatus.UNAUTHORIZED.value()); | |
| 131 | + | |
| 132 | + response.setContentType("application/json;charset=UTF-8"); | |
| 133 | + | |
| 134 | + Map<String, String> rsp = new HashMap<>(); | |
| 135 | + rsp.put("resp_code", HttpStatus.UNAUTHORIZED.value() + ""); | |
| 136 | + rsp.put("rsp_msg", e.getMessage()); | |
| 137 | + | |
| 138 | + try { | |
| 139 | + response.getWriter().write(objectMapper.writeValueAsString(rsp)); | |
| 140 | + response.getWriter().flush(); | |
| 141 | + response.getWriter().close(); | |
| 142 | + } catch (JsonProcessingException e1) { | |
| 143 | + // TODO Auto-generated catch block | |
| 144 | + e1.printStackTrace(); | |
| 145 | + } catch (IOException e1) { | |
| 146 | + // TODO Auto-generated catch block | |
| 147 | + e1.printStackTrace(); | |
| 148 | + } | |
| 149 | + | |
| 150 | + } | |
| 151 | + } | |
| 152 | + | |
| 153 | + | |
| 154 | + @ApiOperation(value = "clientId获取token") | |
| 155 | + @PostMapping("/oauth/client/token") | |
| 156 | + @LogAnnotation(module = "autho", recordRequestParam = false) | |
| 157 | + public void getClientTokenInfo(HttpServletRequest request, HttpServletResponse response) { | |
| 158 | + | |
| 159 | + String clientId = request.getHeader("client_id"); | |
| 160 | + String clientSecret = request.getHeader("client_secret"); | |
| 161 | + try { | |
| 162 | + | |
| 163 | + if (clientId == null || "".equals(clientId)) { | |
| 164 | + throw new UnapprovedClientAuthenticationException("请求参数中无clientId信息"); | |
| 165 | + } | |
| 166 | + | |
| 167 | + if (clientSecret == null || "".equals(clientSecret)) { | |
| 168 | + throw new UnapprovedClientAuthenticationException("请求参数中无clientSecret信息"); | |
| 169 | + } | |
| 170 | + | |
| 171 | + RedisClientDetailsService clientDetailsService = SpringUtil.getBean(RedisClientDetailsService.class); | |
| 172 | + | |
| 173 | + ClientDetails clientDetails = clientDetailsService.loadClientByClientId(clientId); | |
| 174 | + | |
| 175 | + if (clientDetails == null) { | |
| 176 | + throw new UnapprovedClientAuthenticationException("clientId对应的信息不存在"); | |
| 177 | + } else if (!passwordEncoder.matches(clientSecret, clientDetails.getClientSecret())) { | |
| 178 | + throw new UnapprovedClientAuthenticationException("clientSecret不匹配"); | |
| 179 | + } | |
| 180 | + | |
| 181 | + Map<String, String> map = new HashMap<>(); | |
| 182 | + map.put("client_secret", clientSecret); | |
| 183 | + map.put("client_id", clientId); | |
| 184 | + map.put("grant_type", "client_credentials"); | |
| 185 | + TokenRequest tokenRequest = new TokenRequest(map, clientId, clientDetails.getScope(), "client_credentials"); | |
| 186 | + | |
| 187 | + OAuth2Request oAuth2Request = tokenRequest.createOAuth2Request(clientDetails); | |
| 188 | + | |
| 189 | + AuthorizationServerTokenServices authorizationServerTokenServices = SpringUtil | |
| 190 | + .getBean("defaultAuthorizationServerTokenServices", AuthorizationServerTokenServices.class); | |
| 191 | + OAuth2RequestFactory requestFactory = new DefaultOAuth2RequestFactory(clientDetailsService); | |
| 192 | + ClientCredentialsTokenGranter clientCredentialsTokenGranter = new ClientCredentialsTokenGranter( | |
| 193 | + authorizationServerTokenServices, clientDetailsService, requestFactory); | |
| 194 | + | |
| 195 | + clientCredentialsTokenGranter.setAllowRefresh(true); | |
| 196 | + OAuth2AccessToken oAuth2AccessToken = clientCredentialsTokenGranter.grant("client_credentials", | |
| 197 | + tokenRequest); | |
| 198 | + | |
| 199 | + response.setContentType("application/json;charset=UTF-8"); | |
| 200 | + response.getWriter().write(objectMapper.writeValueAsString(oAuth2AccessToken)); | |
| 201 | + response.getWriter().flush(); | |
| 202 | + response.getWriter().close(); | |
| 203 | + | |
| 204 | + } catch (Exception e) { | |
| 205 | + | |
| 206 | + response.setStatus(HttpStatus.UNAUTHORIZED.value()); | |
| 207 | + response.setContentType("application/json;charset=UTF-8"); | |
| 208 | + Map<String, String> rsp = new HashMap<>(); | |
| 209 | + rsp.put("resp_code", HttpStatus.UNAUTHORIZED.value() + ""); | |
| 210 | + rsp.put("rsp_msg", e.getMessage()); | |
| 211 | + | |
| 212 | + try { | |
| 213 | + response.getWriter().write(objectMapper.writeValueAsString(rsp)); | |
| 214 | + response.getWriter().flush(); | |
| 215 | + response.getWriter().close(); | |
| 216 | + } catch (JsonProcessingException e1) { | |
| 217 | + // TODO Auto-generated catch block | |
| 218 | + e1.printStackTrace(); | |
| 219 | + } catch (IOException e1) { | |
| 220 | + // TODO Auto-generated catch block | |
| 221 | + e1.printStackTrace(); | |
| 222 | + } | |
| 223 | + | |
| 224 | + } | |
| 225 | + } | |
| 226 | + | |
| 227 | + @ApiOperation(value = "access_token刷新token") | |
| 228 | + @PostMapping(value = "/oauth/refresh/token", params = "access_token") | |
| 229 | + public void refreshTokenInfo(String access_token, HttpServletRequest request, HttpServletResponse response) { | |
| 230 | + | |
| 231 | + // 拿到当前用户信息 | |
| 232 | + try { | |
| 233 | + Authentication user = SecurityContextHolder.getContext().getAuthentication(); | |
| 234 | + | |
| 235 | + if (user != null) { | |
| 236 | + if (user instanceof OAuth2Authentication) { | |
| 237 | + Authentication athentication = (Authentication) user; | |
| 238 | + OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) athentication.getDetails(); | |
| 239 | + } | |
| 240 | + | |
| 241 | + } | |
| 242 | + OAuth2AccessToken accessToken = tokenStore.readAccessToken(access_token); | |
| 243 | + OAuth2Authentication auth = (OAuth2Authentication) user; | |
| 244 | + RedisClientDetailsService clientDetailsService = SpringUtil.getBean(RedisClientDetailsService.class); | |
| 245 | + | |
| 246 | + ClientDetails clientDetails = clientDetailsService | |
| 247 | + .loadClientByClientId(auth.getOAuth2Request().getClientId()); | |
| 248 | + | |
| 249 | + AuthorizationServerTokenServices authorizationServerTokenServices = SpringUtil | |
| 250 | + .getBean("defaultAuthorizationServerTokenServices", AuthorizationServerTokenServices.class); | |
| 251 | + OAuth2RequestFactory requestFactory = new DefaultOAuth2RequestFactory(clientDetailsService); | |
| 252 | + | |
| 253 | + RefreshTokenGranter refreshTokenGranter = new RefreshTokenGranter(authorizationServerTokenServices, | |
| 254 | + clientDetailsService, requestFactory); | |
| 255 | + | |
| 256 | + Map<String, String> map = new HashMap<>(); | |
| 257 | + map.put("grant_type", "refresh_token"); | |
| 258 | + map.put("refresh_token", accessToken.getRefreshToken().getValue()); | |
| 259 | + TokenRequest tokenRequest = new TokenRequest(map, auth.getOAuth2Request().getClientId(), | |
| 260 | + auth.getOAuth2Request().getScope(), "refresh_token"); | |
| 261 | + | |
| 262 | + OAuth2AccessToken oAuth2AccessToken = refreshTokenGranter.grant("refresh_token", tokenRequest); | |
| 263 | + | |
| 264 | + tokenStore.removeAccessToken(accessToken); | |
| 265 | + | |
| 266 | + response.setContentType("application/json;charset=UTF-8"); | |
| 267 | + response.getWriter().write(objectMapper.writeValueAsString(oAuth2AccessToken)); | |
| 268 | + response.getWriter().flush(); | |
| 269 | + response.getWriter().close(); | |
| 270 | + } catch (Exception e) { | |
| 271 | + response.setStatus(HttpStatus.UNAUTHORIZED.value()); | |
| 272 | + response.setContentType("application/json;charset=UTF-8"); | |
| 273 | + Map<String, String> rsp = new HashMap<>(); | |
| 274 | + rsp.put("resp_code", HttpStatus.UNAUTHORIZED.value() + ""); | |
| 275 | + rsp.put("rsp_msg", e.getMessage()); | |
| 276 | + | |
| 277 | + try { | |
| 278 | + response.getWriter().write(objectMapper.writeValueAsString(rsp)); | |
| 279 | + response.getWriter().flush(); | |
| 280 | + response.getWriter().close(); | |
| 281 | + } catch (JsonProcessingException e1) { | |
| 282 | + // TODO Auto-generated catch block | |
| 283 | + e1.printStackTrace(); | |
| 284 | + } catch (IOException e1) { | |
| 285 | + // TODO Auto-generated catch block | |
| 286 | + e1.printStackTrace(); | |
| 287 | + } | |
| 288 | + } | |
| 289 | + | |
| 290 | + } | |
| 291 | + | |
| 292 | + /** | |
| 293 | + * 移除access_token和refresh_token | |
| 294 | + * | |
| 295 | + * @param access_token | |
| 296 | + */ | |
| 297 | + @ApiOperation(value = "移除token") | |
| 298 | + @PostMapping(value = "/oauth/remove/token", params = "access_token") | |
| 299 | + public void removeToken(String access_token) { | |
| 300 | + | |
| 301 | + // 拿到当前用户信息 | |
| 302 | + Authentication user = SecurityContextHolder.getContext().getAuthentication(); | |
| 303 | + | |
| 304 | + if (user != null) { | |
| 305 | + if (user instanceof OAuth2Authentication) { | |
| 306 | + Authentication athentication = (Authentication) user; | |
| 307 | + OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) athentication.getDetails(); | |
| 308 | + } | |
| 309 | + | |
| 310 | + } | |
| 311 | + OAuth2AccessToken accessToken = tokenStore.readAccessToken(access_token); | |
| 312 | + if (accessToken != null) { | |
| 313 | + // 移除access_token | |
| 314 | + tokenStore.removeAccessToken(accessToken); | |
| 315 | + | |
| 316 | + // 移除refresh_token | |
| 317 | + if (accessToken.getRefreshToken() != null) { | |
| 318 | + tokenStore.removeRefreshToken(accessToken.getRefreshToken()); | |
| 319 | + } | |
| 320 | + | |
| 321 | + } | |
| 322 | + } | |
| 323 | + | |
| 324 | + @ApiOperation(value = "获取token信息") | |
| 325 | + @PostMapping(value = "/oauth/get/token", params = "access_token") | |
| 326 | + public OAuth2AccessToken getTokenInfo(String access_token) { | |
| 327 | + | |
| 328 | + // 拿到当前用户信息 | |
| 329 | + Authentication user = SecurityContextHolder.getContext().getAuthentication(); | |
| 330 | + | |
| 331 | + if (user != null) { | |
| 332 | + if (user instanceof OAuth2Authentication) { | |
| 333 | + Authentication athentication = (Authentication) user; | |
| 334 | + OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) athentication.getDetails(); | |
| 335 | + } | |
| 336 | + | |
| 337 | + } | |
| 338 | + OAuth2AccessToken accessToken = tokenStore.readAccessToken(access_token); | |
| 339 | + | |
| 340 | + return accessToken; | |
| 341 | + | |
| 342 | + } | |
| 343 | + | |
| 344 | + /** | |
| 345 | + * 当前登陆用户信息 | |
| 346 | + * security获取当前登录用户的方法是SecurityContextHolder.getContext().getAuthentication() | |
| 347 | + * 这里的实现类是org.springframework.security.oauth2.provider.OAuth2Authentication | |
| 348 | + * | |
| 349 | + * @return | |
| 350 | + */ | |
| 351 | + @ApiOperation(value = "当前登陆用户信息") | |
| 352 | + @RequestMapping(value = { "/oauth/userinfo" }, produces = "application/json") // 获取用户信息。/auth/user | |
| 353 | + public Map<String, Object> getCurrentUserDetail() { | |
| 354 | + Map<String, Object> userInfo = new HashMap<>(); | |
| 355 | + userInfo.put("user", SecurityContextHolder.getContext().getAuthentication().getPrincipal()); | |
| 356 | + logger.debug("认证详细信息:" + SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString()); | |
| 357 | + | |
| 358 | + List<SysPermission> permissions = new ArrayList<>(); | |
| 359 | + | |
| 360 | + new ArrayList(SecurityContextHolder.getContext().getAuthentication().getAuthorities()).forEach(o -> { | |
| 361 | + SysPermission sysPermission = new SysPermission(); | |
| 362 | + sysPermission.setPermission(o.toString()); | |
| 363 | + permissions.add(sysPermission); | |
| 364 | + }); | |
| 365 | + // userInfo.put("authorities", | |
| 366 | + // AuthorityUtils.authorityListToSet(SecurityContextHolder.getContext().getAuthentication().getAuthorities()) | |
| 367 | + // ); | |
| 368 | + userInfo.put("permissions", permissions); | |
| 369 | + | |
| 370 | + userInfo.put("resp_code", "200"); | |
| 371 | + | |
| 372 | + logger.info("返回信息:{}", userInfo); | |
| 373 | + | |
| 374 | + return userInfo; | |
| 375 | + } | |
| 376 | + | |
| 377 | + @ApiOperation(value = "token列表") | |
| 378 | + @PostMapping("/oauth/token/list") | |
| 379 | + public PageResult<HashMap<String, String>> getUserTokenInfo(@RequestParam Map<String, Object> params) | |
| 380 | + throws Exception { | |
| 381 | + List<HashMap<String, String>> list = new ArrayList<>(); | |
| 382 | + | |
| 383 | + Set<String> keys = redisTemplate.keys("access:" + "*") ; | |
| 384 | +// Object key1 = keys.toArray()[0]; | |
| 385 | +// Object token1 = redisTemplate.opsForValue().get(key1); | |
| 386 | + //根据分页参数获取对应数据 | |
| 387 | + // List<String> pages = findKeysForPage("access:" + "*", MapUtils.getInteger(params, "page"),MapUtils.getInteger(params, "limit")); | |
| 388 | + | |
| 389 | + for (Object key: keys.toArray()) { | |
| 390 | +// String key = page; | |
| 391 | +// String accessToken = StringUtils.substringAfter(key, "access:"); | |
| 392 | +// OAuth2AccessToken token = tokenStore.readAccessToken(accessToken); | |
| 393 | + OAuth2AccessToken token = (OAuth2AccessToken)redisTemplate.opsForValue().get(key); | |
| 394 | + HashMap<String, String> map = new HashMap<String, String>(); | |
| 395 | + | |
| 396 | + try { | |
| 397 | + map.put("token_type", token.getTokenType()); | |
| 398 | + map.put("token_value", token.getValue()); | |
| 399 | + map.put("expires_in", token.getExpiresIn()+""); | |
| 400 | + } catch (Exception e) { | |
| 401 | + | |
| 402 | + } | |
| 403 | + | |
| 404 | + | |
| 405 | + OAuth2Authentication oAuth2Auth = tokenStore.readAuthentication(token); | |
| 406 | + Authentication authentication = oAuth2Auth.getUserAuthentication(); | |
| 407 | + | |
| 408 | + map.put("client_id", oAuth2Auth.getOAuth2Request().getClientId()); | |
| 409 | + map.put("grant_type", oAuth2Auth.getOAuth2Request().getGrantType()); | |
| 410 | + | |
| 411 | + if (authentication instanceof UsernamePasswordAuthenticationToken) { | |
| 412 | + UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) authentication; | |
| 413 | + | |
| 414 | + if(authenticationToken.getPrincipal() instanceof LoginAppUser ){ | |
| 415 | + LoginAppUser user = (LoginAppUser) authenticationToken.getPrincipal(); | |
| 416 | + map.put("user_id", user.getId()+""); | |
| 417 | + map.put("user_name", user.getUsername()+""); | |
| 418 | + map.put("user_head_imgurl", user.getHeadImgUrl()+""); | |
| 419 | + } | |
| 420 | + | |
| 421 | + | |
| 422 | + }else if (authentication instanceof PreAuthenticatedAuthenticationToken){ | |
| 423 | + //刷新token方式 | |
| 424 | + PreAuthenticatedAuthenticationToken authenticationToken = (PreAuthenticatedAuthenticationToken) authentication; | |
| 425 | + if(authenticationToken.getPrincipal() instanceof LoginAppUser ){ | |
| 426 | + LoginAppUser user = (LoginAppUser) authenticationToken.getPrincipal(); | |
| 427 | + map.put("user_id", user.getId()+""); | |
| 428 | + map.put("user_name", user.getUsername()+""); | |
| 429 | + map.put("user_head_imgurl", user.getHeadImgUrl()+""); | |
| 430 | + } | |
| 431 | + | |
| 432 | + } | |
| 433 | + list.add(map); | |
| 434 | + | |
| 435 | + } | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + return PageResult.<HashMap<String, String>>builder().data(list).code(0).count((long) keys.size()).build(); | |
| 440 | + | |
| 441 | + } | |
| 442 | + | |
| 443 | + public List<String> findKeysForPage(String patternKey, int pageNum, int pageSize) { | |
| 444 | + | |
| 445 | + Set<String> execute = redisTemplate.execute(new RedisCallback<Set<String>>() { | |
| 446 | + | |
| 447 | + @Override | |
| 448 | + public Set<String> doInRedis(RedisConnection connection) throws DataAccessException { | |
| 449 | + | |
| 450 | + Set<String> binaryKeys = new HashSet<>(); | |
| 451 | + | |
| 452 | + Cursor<byte[]> cursor = connection | |
| 453 | + .scan(new ScanOptions.ScanOptionsBuilder().match(patternKey).count(1000).build()); | |
| 454 | + int tmpIndex = 0; | |
| 455 | + int startIndex = (pageNum - 1) * pageSize; | |
| 456 | + int end = pageNum * pageSize; | |
| 457 | + while (cursor.hasNext()) { | |
| 458 | + if (tmpIndex >= startIndex && tmpIndex < end) { | |
| 459 | + binaryKeys.add(new String(cursor.next())); | |
| 460 | + tmpIndex++; | |
| 461 | + continue; | |
| 462 | + } | |
| 463 | + | |
| 464 | + // 获取到满足条件的数据后,就可以退出了 | |
| 465 | + if (tmpIndex >= end) { | |
| 466 | + break; | |
| 467 | + } | |
| 468 | + | |
| 469 | + tmpIndex++; | |
| 470 | + cursor.next(); | |
| 471 | + } | |
| 472 | + connection.close(); | |
| 473 | + return binaryKeys; | |
| 474 | + } | |
| 475 | + }); | |
| 476 | + | |
| 477 | + List<String> result = new ArrayList<String>(pageSize); | |
| 478 | + result.addAll(execute); | |
| 479 | + return result; | |
| 480 | + } | |
| 481 | + | |
| 482 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/control/UserController.java
0 → 100644
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +package com.sincere.autho.control; | |
| 2 | + | |
| 3 | +import org.springframework.web.bind.annotation.GetMapping; | |
| 4 | +import org.springframework.web.bind.annotation.RestController; | |
| 5 | + | |
| 6 | +import java.security.Principal; | |
| 7 | + | |
| 8 | +@RestController | |
| 9 | +public class UserController { | |
| 10 | + | |
| 11 | + @GetMapping("/user") | |
| 12 | + public Principal user(Principal user){ | |
| 13 | + return user; | |
| 14 | + } | |
| 15 | + | |
| 16 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/handler/ExceptionHandlerAdvice.java
0 → 100644
| ... | ... | @@ -0,0 +1,63 @@ |
| 1 | +package com.sincere.autho.handler; | |
| 2 | + | |
| 3 | +import io.grpc.StatusRuntimeException; | |
| 4 | +import org.springframework.http.HttpStatus; | |
| 5 | +import org.springframework.security.access.AccessDeniedException; | |
| 6 | +import org.springframework.web.bind.annotation.ExceptionHandler; | |
| 7 | +import org.springframework.web.bind.annotation.ResponseStatus; | |
| 8 | +import org.springframework.web.bind.annotation.RestControllerAdvice; | |
| 9 | + | |
| 10 | +import java.util.HashMap; | |
| 11 | +import java.util.Map; | |
| 12 | + | |
| 13 | + | |
| 14 | +/** | |
| 15 | + * @author 作者 owen E-mail: 624191343@qq.com | |
| 16 | + * @version 创建时间:2017年11月12日 上午22:57:51 | |
| 17 | + * 异常通用处理 | |
| 18 | +*/ | |
| 19 | +@RestControllerAdvice | |
| 20 | +public class ExceptionHandlerAdvice { | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * IllegalArgumentException异常处理返回json | |
| 24 | + * 状态码:400 | |
| 25 | + * @param exception | |
| 26 | + * @return | |
| 27 | + */ | |
| 28 | + @ExceptionHandler({ IllegalArgumentException.class }) | |
| 29 | + @ResponseStatus(HttpStatus.BAD_REQUEST) | |
| 30 | + public Map<String, Object> badRequestException(IllegalArgumentException exception) { | |
| 31 | + Map<String, Object> data = new HashMap<>(); | |
| 32 | + data.put("resp_code", HttpStatus.BAD_REQUEST.value()); | |
| 33 | + data.put("resp_msg", exception.getMessage()); | |
| 34 | + | |
| 35 | + return data; | |
| 36 | + } | |
| 37 | + /** | |
| 38 | + * AccessDeniedException异常处理返回json | |
| 39 | + * 状态码:403 | |
| 40 | + * @param exception | |
| 41 | + * @return | |
| 42 | + */ | |
| 43 | + @ExceptionHandler({ AccessDeniedException.class }) | |
| 44 | + @ResponseStatus(HttpStatus.FORBIDDEN) | |
| 45 | + public Map<String, Object> badMethodExpressException(AccessDeniedException exception) { | |
| 46 | + Map<String, Object> data = new HashMap<>(); | |
| 47 | + data.put("resp_code", HttpStatus.FORBIDDEN.value()); | |
| 48 | + data.put("resp_msg", exception.getMessage()); | |
| 49 | + | |
| 50 | + return data; | |
| 51 | + } | |
| 52 | + @ExceptionHandler({ StatusRuntimeException.class }) | |
| 53 | + @ResponseStatus(HttpStatus.BAD_REQUEST) | |
| 54 | + public Map<String, Object> badRequestException(StatusRuntimeException exception) { | |
| 55 | + Map<String, Object> data = new HashMap<>(); | |
| 56 | + data.put("resp_code", HttpStatus.INTERNAL_SERVER_ERROR.value()); | |
| 57 | + data.put("resp_msg", exception.getMessage()); | |
| 58 | + | |
| 59 | + return data; | |
| 60 | + } | |
| 61 | + | |
| 62 | + | |
| 63 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/handler/OauthLogoutHandler.java
0 → 100644
| ... | ... | @@ -0,0 +1,90 @@ |
| 1 | +package com.sincere.autho.handler; | |
| 2 | + | |
| 3 | +import org.slf4j.Logger; | |
| 4 | +import org.slf4j.LoggerFactory; | |
| 5 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 6 | +import org.springframework.security.core.Authentication; | |
| 7 | +import org.springframework.security.oauth2.common.OAuth2AccessToken; | |
| 8 | +import org.springframework.security.oauth2.common.OAuth2RefreshToken; | |
| 9 | +import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails; | |
| 10 | +import org.springframework.security.oauth2.provider.token.TokenStore; | |
| 11 | +import org.springframework.security.web.authentication.logout.LogoutHandler; | |
| 12 | +import org.springframework.util.Assert; | |
| 13 | + | |
| 14 | +import javax.servlet.http.HttpServletRequest; | |
| 15 | +import javax.servlet.http.HttpServletResponse; | |
| 16 | +import java.util.Enumeration; | |
| 17 | + | |
| 18 | +/** | |
| 19 | + * @author keets | |
| 20 | + * @date 2017/10/17 | |
| 21 | + */ | |
| 22 | +public class OauthLogoutHandler implements LogoutHandler { | |
| 23 | + | |
| 24 | + private static final Logger logger = LoggerFactory.getLogger(OauthLogoutHandler.class); | |
| 25 | + | |
| 26 | + @Autowired | |
| 27 | + private TokenStore tokenStore; | |
| 28 | + | |
| 29 | + @Override | |
| 30 | + public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { | |
| 31 | + Assert.notNull(tokenStore, "tokenStore must be set"); | |
| 32 | + String token = extractToken(request); | |
| 33 | + if(token!=null || !"".equals(token)){ | |
| 34 | + OAuth2AccessToken existingAccessToken = tokenStore.readAccessToken(token); | |
| 35 | + OAuth2RefreshToken refreshToken; | |
| 36 | + if (existingAccessToken != null) { | |
| 37 | + if (existingAccessToken.getRefreshToken() != null) { | |
| 38 | + logger.info("remove refreshToken!", existingAccessToken.getRefreshToken()); | |
| 39 | + refreshToken = existingAccessToken.getRefreshToken(); | |
| 40 | + tokenStore.removeRefreshToken(refreshToken); | |
| 41 | + } | |
| 42 | + logger.info("remove existingAccessToken!", existingAccessToken); | |
| 43 | + tokenStore.removeAccessToken(existingAccessToken); | |
| 44 | + } | |
| 45 | + return; | |
| 46 | + } | |
| 47 | + | |
| 48 | + } | |
| 49 | + | |
| 50 | + protected String extractToken(HttpServletRequest request) { | |
| 51 | + // first check the header... | |
| 52 | + String token = extractHeaderToken(request); | |
| 53 | + | |
| 54 | + // bearer type allows a request parameter as well | |
| 55 | + if (token == null) { | |
| 56 | + logger.debug("Token not found in headers. Trying request parameters."); | |
| 57 | + token = request.getParameter(OAuth2AccessToken.ACCESS_TOKEN); | |
| 58 | + if (token == null) { | |
| 59 | + logger.debug("Token not found in request parameters. Not an OAuth2 request."); | |
| 60 | + } else { | |
| 61 | + request.setAttribute(OAuth2AuthenticationDetails.ACCESS_TOKEN_TYPE, OAuth2AccessToken.BEARER_TYPE); | |
| 62 | + } | |
| 63 | + } | |
| 64 | + | |
| 65 | + return token; | |
| 66 | + } | |
| 67 | + | |
| 68 | + protected String extractHeaderToken(HttpServletRequest request) { | |
| 69 | + Enumeration<String> headers = request.getHeaders("Authorization"); | |
| 70 | + while (headers.hasMoreElements()) { // typically there is only one (most | |
| 71 | + // servers enforce that) | |
| 72 | + String value = headers.nextElement(); | |
| 73 | + if ((value.toLowerCase().startsWith(OAuth2AccessToken.BEARER_TYPE.toLowerCase()))) { | |
| 74 | + String authHeaderValue = value.substring(OAuth2AccessToken.BEARER_TYPE.length()).trim(); | |
| 75 | + // Add this here for the auth details later. Would be better to | |
| 76 | + // change the signature of this method. | |
| 77 | + request.setAttribute(OAuth2AuthenticationDetails.ACCESS_TOKEN_TYPE, | |
| 78 | + value.substring(0, OAuth2AccessToken.BEARER_TYPE.length()).trim()); | |
| 79 | + int commaIndex = authHeaderValue.indexOf(','); | |
| 80 | + if (commaIndex > 0) { | |
| 81 | + authHeaderValue = authHeaderValue.substring(0, commaIndex); | |
| 82 | + } | |
| 83 | + return authHeaderValue; | |
| 84 | + } | |
| 85 | + } | |
| 86 | + | |
| 87 | + return null; | |
| 88 | + } | |
| 89 | + | |
| 90 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/log/dao/LogDao.java
0 → 100644
| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | +package com.sincere.autho.log.dao; | |
| 2 | + | |
| 3 | +import com.sincere.common.model.log.SysLog; | |
| 4 | +import org.apache.ibatis.annotations.Insert; | |
| 5 | +import org.apache.ibatis.annotations.Mapper; | |
| 6 | + | |
| 7 | +@Mapper | |
| 8 | +public interface LogDao { | |
| 9 | + | |
| 10 | + @Insert("insert into sys_log(username, module, params, remark, flag, createTime) values(#{username}, #{module}, #{params}, #{remark}, #{flag}, #{createTime})") | |
| 11 | + int save(SysLog log); | |
| 12 | + | |
| 13 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/log/service/LogService.java
0 → 100644
cloud/autho/src/main/java/com/sincere/autho/log/service/impl/LogServiceImpl.java
0 → 100644
| ... | ... | @@ -0,0 +1,34 @@ |
| 1 | +package com.sincere.autho.log.service.impl; | |
| 2 | + | |
| 3 | +import com.sincere.autho.annotation.datasource.DataSource; | |
| 4 | +import com.sincere.autho.log.dao.LogDao; | |
| 5 | +import com.sincere.autho.log.service.LogService; | |
| 6 | +import com.sincere.common.model.log.SysLog; | |
| 7 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | +import org.springframework.scheduling.annotation.Async; | |
| 9 | +import org.springframework.stereotype.Service; | |
| 10 | + | |
| 11 | +import java.util.Date; | |
| 12 | + | |
| 13 | +@Service | |
| 14 | +public class LogServiceImpl implements LogService { | |
| 15 | + | |
| 16 | + @Autowired | |
| 17 | + private LogDao logDao; | |
| 18 | + | |
| 19 | + @Async | |
| 20 | + @Override | |
| 21 | + @DataSource(name="log") | |
| 22 | + public void save(SysLog log) { | |
| 23 | + if (log.getCreateTime() == null) { | |
| 24 | + log.setCreateTime(new Date()); | |
| 25 | + } | |
| 26 | + if (log.getFlag() == null) { | |
| 27 | + log.setFlag(Boolean.TRUE); | |
| 28 | + } | |
| 29 | + | |
| 30 | + logDao.save(log); | |
| 31 | + } | |
| 32 | + | |
| 33 | + | |
| 34 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/service/RedisAuthorizationCodeServices.java
0 → 100644
| ... | ... | @@ -0,0 +1,58 @@ |
| 1 | +package com.sincere.autho.service; | |
| 2 | + | |
| 3 | +import org.springframework.data.redis.core.RedisTemplate; | |
| 4 | +import org.springframework.security.oauth2.provider.OAuth2Authentication; | |
| 5 | +import org.springframework.security.oauth2.provider.code.RandomValueAuthorizationCodeServices; | |
| 6 | + | |
| 7 | +import java.util.concurrent.TimeUnit; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * JdbcAuthorizationCodeServices替换 | |
| 11 | + */ | |
| 12 | +public class RedisAuthorizationCodeServices extends RandomValueAuthorizationCodeServices { | |
| 13 | + | |
| 14 | + private RedisTemplate<String,Object> redisTemplate ; | |
| 15 | + | |
| 16 | + | |
| 17 | + public RedisTemplate<String, Object> getRedisTemplate() { | |
| 18 | + return redisTemplate; | |
| 19 | + } | |
| 20 | + | |
| 21 | + public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) { | |
| 22 | + this.redisTemplate = redisTemplate; | |
| 23 | + } | |
| 24 | + | |
| 25 | + /** | |
| 26 | + * 替换JdbcAuthorizationCodeServices的存储策略 | |
| 27 | + * 将存储code到redis,并设置过期时间,10分钟<br> | |
| 28 | + */ | |
| 29 | + @Override | |
| 30 | + protected void store(String code, OAuth2Authentication authentication) { | |
| 31 | + | |
| 32 | + redisTemplate.opsForValue().set(redisKey(code), authentication, 10, TimeUnit.MINUTES); | |
| 33 | + | |
| 34 | + | |
| 35 | + } | |
| 36 | + | |
| 37 | + @Override | |
| 38 | + protected OAuth2Authentication remove(final String code) { | |
| 39 | + | |
| 40 | + String codeKey =redisKey(code) ; | |
| 41 | + | |
| 42 | + OAuth2Authentication token = (OAuth2Authentication) redisTemplate.opsForValue().get(codeKey) ; | |
| 43 | + | |
| 44 | + this.redisTemplate.delete(codeKey); | |
| 45 | + | |
| 46 | + return token; | |
| 47 | + } | |
| 48 | + | |
| 49 | + /** | |
| 50 | + * redis中 code key的前缀 | |
| 51 | + * | |
| 52 | + * @param code | |
| 53 | + * @return | |
| 54 | + */ | |
| 55 | + private String redisKey(String code) { | |
| 56 | + return "oauth:code:" + code; | |
| 57 | + } | |
| 58 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/service/RedisClientDetailsService.java
0 → 100644
| ... | ... | @@ -0,0 +1,153 @@ |
| 1 | +package com.sincere.autho.service; | |
| 2 | + | |
| 3 | +import com.alibaba.fastjson.JSONObject; | |
| 4 | +import org.apache.commons.lang.StringUtils; | |
| 5 | +import org.slf4j.Logger; | |
| 6 | +import org.slf4j.LoggerFactory; | |
| 7 | +import org.springframework.data.redis.core.RedisTemplate; | |
| 8 | +import org.springframework.security.oauth2.common.exceptions.InvalidClientException; | |
| 9 | +import org.springframework.security.oauth2.provider.ClientDetails; | |
| 10 | +import org.springframework.security.oauth2.provider.NoSuchClientException; | |
| 11 | +import org.springframework.security.oauth2.provider.client.BaseClientDetails; | |
| 12 | +import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService; | |
| 13 | +import org.springframework.util.CollectionUtils; | |
| 14 | + | |
| 15 | +import javax.sql.DataSource; | |
| 16 | +import java.util.List; | |
| 17 | + | |
| 18 | + | |
| 19 | +/** | |
| 20 | + * @author owen 624191343@qq.com | |
| 21 | + * @version 创建时间:2017年11月12日 上午22:57:51 | |
| 22 | + * 类说明 | |
| 23 | + * 将oauth_client_details表数据缓存到redis,这里做个缓存优化 | |
| 24 | + * layui模块中有对oauth_client_details的crud, 注意同步redis的数据 | |
| 25 | + * 注意对oauth_client_details清楚redis db部分数据的清空 | |
| 26 | + */ | |
| 27 | + | |
| 28 | +public class RedisClientDetailsService extends JdbcClientDetailsService { | |
| 29 | + | |
| 30 | + | |
| 31 | + // 扩展 默认的 ClientDetailsService, 增加逻辑删除判断( status = 1) | |
| 32 | + private static final String SELECT_CLIENT_DETAILS_SQL = "select client_id, client_secret, resource_ids, scope, authorized_grant_types, " + | |
| 33 | + "web_server_redirect_uri, authorities, access_token_validity, refresh_token_validity, additional_information, autoapprove " + | |
| 34 | + "from oauth_client_details where client_id = ? and `status` = 1 "; | |
| 35 | + | |
| 36 | + | |
| 37 | + private static final String SELECT_FIND_STATEMENT = "select client_id, client_secret,resource_ids, scope, " | |
| 38 | + + "authorized_grant_types, web_server_redirect_uri, authorities, access_token_validity, " | |
| 39 | + + "refresh_token_validity, additional_information, autoapprove from oauth_client_details where `status` = 1 order by client_id " ; | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * 缓存client的redis key,这里是hash结构存储 | |
| 43 | + */ | |
| 44 | + private static final String CACHE_CLIENT_KEY = "oauth_client_details"; | |
| 45 | + | |
| 46 | + private Logger logger = LoggerFactory.getLogger(RedisClientDetailsService.class) ; | |
| 47 | + | |
| 48 | + private RedisTemplate<String,Object> redisTemplate ; | |
| 49 | + | |
| 50 | + public RedisTemplate<String, Object> getRedisTemplate() { | |
| 51 | + return redisTemplate; | |
| 52 | + } | |
| 53 | + | |
| 54 | + public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) { | |
| 55 | + this.redisTemplate = redisTemplate; | |
| 56 | + } | |
| 57 | + | |
| 58 | + public RedisClientDetailsService(DataSource dataSource) { | |
| 59 | + super(dataSource); | |
| 60 | + setSelectClientDetailsSql(SELECT_CLIENT_DETAILS_SQL) ; | |
| 61 | + setFindClientDetailsSql(SELECT_FIND_STATEMENT) ; | |
| 62 | + } | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + @Override | |
| 67 | + public ClientDetails loadClientByClientId(String clientId) throws InvalidClientException { | |
| 68 | + ClientDetails clientDetails = null; | |
| 69 | + | |
| 70 | + // 先从redis获取 | |
| 71 | + String value = (String) redisTemplate.boundHashOps(CACHE_CLIENT_KEY).get(clientId); | |
| 72 | + if (StringUtils.isBlank(value)) { | |
| 73 | + clientDetails = cacheAndGetClient(clientId); | |
| 74 | + } else { | |
| 75 | + clientDetails = JSONObject.parseObject(value, BaseClientDetails.class); | |
| 76 | + } | |
| 77 | + | |
| 78 | + return clientDetails; | |
| 79 | + } | |
| 80 | + | |
| 81 | + /** | |
| 82 | + * 缓存client并返回client | |
| 83 | + * | |
| 84 | + * @param clientId | |
| 85 | + * @return | |
| 86 | + */ | |
| 87 | + private ClientDetails cacheAndGetClient(String clientId) { | |
| 88 | + // 从数据库读取 | |
| 89 | + ClientDetails clientDetails = null ; | |
| 90 | + try { | |
| 91 | + clientDetails = super.loadClientByClientId(clientId); | |
| 92 | + if (clientDetails != null) { | |
| 93 | + // 写入redis缓存 | |
| 94 | + redisTemplate.boundHashOps(CACHE_CLIENT_KEY).put(clientId, JSONObject.toJSONString(clientDetails)); | |
| 95 | + logger.info("缓存clientId:{},{}", clientId, clientDetails); | |
| 96 | + } | |
| 97 | + }catch (NoSuchClientException e){ | |
| 98 | + logger.info("clientId:{},{}", clientId, clientId ); | |
| 99 | + }catch (InvalidClientException e) { | |
| 100 | + // TODO Auto-generated catch block | |
| 101 | + e.printStackTrace(); | |
| 102 | + } | |
| 103 | + | |
| 104 | + return clientDetails; | |
| 105 | + } | |
| 106 | + | |
| 107 | + @Override | |
| 108 | + public void updateClientDetails(ClientDetails clientDetails) throws NoSuchClientException { | |
| 109 | + super.updateClientDetails(clientDetails); | |
| 110 | + cacheAndGetClient(clientDetails.getClientId()); | |
| 111 | + } | |
| 112 | + | |
| 113 | + @Override | |
| 114 | + public void updateClientSecret(String clientId, String secret) throws NoSuchClientException { | |
| 115 | + super.updateClientSecret(clientId, secret); | |
| 116 | + cacheAndGetClient(clientId); | |
| 117 | + } | |
| 118 | + | |
| 119 | + @Override | |
| 120 | + public void removeClientDetails(String clientId) throws NoSuchClientException { | |
| 121 | + super.removeClientDetails(clientId); | |
| 122 | + removeRedisCache(clientId); | |
| 123 | + } | |
| 124 | + | |
| 125 | + /** | |
| 126 | + * 删除redis缓存 | |
| 127 | + * | |
| 128 | + * @param clientId | |
| 129 | + */ | |
| 130 | + private void removeRedisCache(String clientId) { | |
| 131 | + redisTemplate.boundHashOps(CACHE_CLIENT_KEY).delete(clientId); | |
| 132 | + } | |
| 133 | + | |
| 134 | + /** | |
| 135 | + * 将oauth_client_details全表刷入redis | |
| 136 | + */ | |
| 137 | + public void loadAllClientToCache() { | |
| 138 | + if (redisTemplate.hasKey(CACHE_CLIENT_KEY)) { | |
| 139 | + return; | |
| 140 | + } | |
| 141 | + logger.info("将oauth_client_details全表刷入redis"); | |
| 142 | + | |
| 143 | + List<ClientDetails> list = super.listClientDetails(); | |
| 144 | + if (CollectionUtils.isEmpty(list)) { | |
| 145 | + logger.error("oauth_client_details表数据为空,请检查"); | |
| 146 | + return; | |
| 147 | + } | |
| 148 | + | |
| 149 | + list.parallelStream().forEach(client -> { | |
| 150 | + redisTemplate.boundHashOps(CACHE_CLIENT_KEY).put(client.getClientId(), JSONObject.toJSONString(client)); | |
| 151 | + }); | |
| 152 | + } | |
| 153 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/token/RedisTemplateTokenStore.java
0 → 100644
| ... | ... | @@ -0,0 +1,331 @@ |
| 1 | +package com.sincere.autho.token; | |
| 2 | + | |
| 3 | +import com.sincere.common.model.system.LoginAppUser; | |
| 4 | +import org.springframework.data.redis.core.RedisTemplate; | |
| 5 | +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; | |
| 6 | +import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken; | |
| 7 | +import org.springframework.security.oauth2.common.ExpiringOAuth2RefreshToken; | |
| 8 | +import org.springframework.security.oauth2.common.OAuth2AccessToken; | |
| 9 | +import org.springframework.security.oauth2.common.OAuth2RefreshToken; | |
| 10 | +import org.springframework.security.oauth2.provider.OAuth2Authentication; | |
| 11 | +import org.springframework.security.oauth2.provider.token.AuthenticationKeyGenerator; | |
| 12 | +import org.springframework.security.oauth2.provider.token.DefaultAuthenticationKeyGenerator; | |
| 13 | +import org.springframework.security.oauth2.provider.token.TokenStore; | |
| 14 | + | |
| 15 | +import java.time.Instant; | |
| 16 | +import java.time.LocalDateTime; | |
| 17 | +import java.time.ZoneId; | |
| 18 | +import java.util.*; | |
| 19 | +import java.util.concurrent.TimeUnit; | |
| 20 | + | |
| 21 | +/** | |
| 22 | + * @version redis集群存储token | |
| 23 | + */ | |
| 24 | + | |
| 25 | +public class RedisTemplateTokenStore implements TokenStore { | |
| 26 | + | |
| 27 | + private static final String ACCESS = "access:"; | |
| 28 | + private static final String AUTH_TO_ACCESS = "auth_to_access:"; | |
| 29 | + private static final String AUTH = "auth:"; | |
| 30 | + private static final String REFRESH_AUTH = "refresh_auth:"; | |
| 31 | + private static final String ACCESS_TO_REFRESH = "access_to_refresh:"; | |
| 32 | + private static final String REFRESH = "refresh:"; | |
| 33 | + private static final String REFRESH_TO_ACCESS = "refresh_to_access:"; | |
| 34 | + private static final String CLIENT_ID_TO_ACCESS = "client_id_to_access:"; | |
| 35 | + private static final String UNAME_TO_ACCESS = "uname_to_access:"; | |
| 36 | + private static final String TOKEN = "token:"; | |
| 37 | + | |
| 38 | + private RedisTemplate<String, Object> redisTemplate; | |
| 39 | + | |
| 40 | + public RedisTemplate<String, Object> getRedisTemplate() { | |
| 41 | + return redisTemplate; | |
| 42 | + } | |
| 43 | + | |
| 44 | + public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) { | |
| 45 | + this.redisTemplate = redisTemplate; | |
| 46 | + } | |
| 47 | + | |
| 48 | + private AuthenticationKeyGenerator authenticationKeyGenerator = new DefaultAuthenticationKeyGenerator(); | |
| 49 | + | |
| 50 | + public void setAuthenticationKeyGenerator(AuthenticationKeyGenerator authenticationKeyGenerator) { | |
| 51 | + this.authenticationKeyGenerator = authenticationKeyGenerator; | |
| 52 | + } | |
| 53 | + | |
| 54 | + public OAuth2AccessToken getAccessToken(OAuth2Authentication authentication) { | |
| 55 | + String key = authenticationKeyGenerator.extractKey(authentication); | |
| 56 | + OAuth2AccessToken accessToken = (OAuth2AccessToken) redisTemplate.opsForValue().get(AUTH_TO_ACCESS + key); | |
| 57 | + if (accessToken != null | |
| 58 | + && !key.equals(authenticationKeyGenerator.extractKey(readAuthentication(accessToken.getValue())))) { | |
| 59 | + // Keep the stores consistent (maybe the same user is represented by | |
| 60 | + // this authentication but the details | |
| 61 | + // have changed) | |
| 62 | + storeAccessToken(accessToken, authentication); | |
| 63 | + } | |
| 64 | + return accessToken; | |
| 65 | + } | |
| 66 | + | |
| 67 | + public OAuth2Authentication readAuthentication(OAuth2AccessToken token) { | |
| 68 | + return readAuthentication(token.getValue()); | |
| 69 | + } | |
| 70 | + | |
| 71 | + public OAuth2Authentication readAuthentication(String token) { | |
| 72 | + return (OAuth2Authentication) this.redisTemplate.opsForValue().get(AUTH + token); | |
| 73 | + } | |
| 74 | + | |
| 75 | + public OAuth2Authentication readAuthenticationForRefreshToken(OAuth2RefreshToken token) { | |
| 76 | + return readAuthenticationForRefreshToken(token.getValue()); | |
| 77 | + } | |
| 78 | + | |
| 79 | + public OAuth2Authentication readAuthenticationForRefreshToken(String token) { | |
| 80 | + return (OAuth2Authentication) this.redisTemplate.opsForValue().get(REFRESH_AUTH + token); | |
| 81 | + } | |
| 82 | + | |
| 83 | + public void storeAccessToken(OAuth2AccessToken token, OAuth2Authentication authentication) { | |
| 84 | + | |
| 85 | + OAuth2AccessToken existingAccessToken = this.getAccessToken(authentication); | |
| 86 | + | |
| 87 | + this.redisTemplate.opsForValue().set(ACCESS + token.getValue(), token); | |
| 88 | + this.redisTemplate.opsForValue().set(AUTH + token.getValue(), authentication); | |
| 89 | + this.redisTemplate.opsForValue().set(AUTH_TO_ACCESS + authenticationKeyGenerator.extractKey(authentication), | |
| 90 | + token); | |
| 91 | + | |
| 92 | + Map<String, Object> params = new HashMap<>(); | |
| 93 | + | |
| 94 | + params.put("clientId", authentication.getOAuth2Request().getClientId()); | |
| 95 | + | |
| 96 | + if (authentication.getUserAuthentication() instanceof UsernamePasswordAuthenticationToken) { | |
| 97 | + UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) authentication | |
| 98 | + .getUserAuthentication(); | |
| 99 | + LoginAppUser appUser = (LoginAppUser) authenticationToken.getPrincipal(); | |
| 100 | + params.put("username", appUser.getUsername()); | |
| 101 | + params.put("authorities", appUser.getAuthorities()); | |
| 102 | + } | |
| 103 | + | |
| 104 | + if (!params.isEmpty()) { | |
| 105 | + this.redisTemplate.opsForValue().set(TOKEN + token.getValue(), params); | |
| 106 | + } | |
| 107 | + | |
| 108 | + if (!authentication.isClientOnly()) { | |
| 109 | + if (existingAccessToken != null) { | |
| 110 | + if (!existingAccessToken.isExpired()) { | |
| 111 | + int seconds = token.getExpiresIn(); | |
| 112 | + redisTemplate.expire(UNAME_TO_ACCESS + authentication.getOAuth2Request().getClientId(), seconds, | |
| 113 | + TimeUnit.SECONDS); | |
| 114 | + } else { | |
| 115 | + redisTemplate.opsForList().rightPush(UNAME_TO_ACCESS + getApprovalKey(authentication), token); | |
| 116 | + } | |
| 117 | + } else { | |
| 118 | + redisTemplate.opsForList().rightPush(UNAME_TO_ACCESS + getApprovalKey(authentication), token); | |
| 119 | + } | |
| 120 | + | |
| 121 | + } | |
| 122 | + | |
| 123 | + if (existingAccessToken != null) { | |
| 124 | + if (!existingAccessToken.isExpired()) { | |
| 125 | + int seconds = token.getExpiresIn(); | |
| 126 | + redisTemplate.expire(CLIENT_ID_TO_ACCESS + authentication.getOAuth2Request().getClientId(), seconds, | |
| 127 | + TimeUnit.SECONDS); | |
| 128 | + | |
| 129 | + } else { | |
| 130 | + redisTemplate.opsForList() | |
| 131 | + .rightPush(CLIENT_ID_TO_ACCESS + authentication.getOAuth2Request().getClientId(), token); | |
| 132 | + } | |
| 133 | + } else { | |
| 134 | + redisTemplate.opsForList().rightPush(CLIENT_ID_TO_ACCESS + authentication.getOAuth2Request().getClientId(), | |
| 135 | + token); | |
| 136 | + } | |
| 137 | + | |
| 138 | + if (token.getExpiration() != null) { | |
| 139 | + | |
| 140 | + int seconds = token.getExpiresIn(); | |
| 141 | + redisTemplate.expire(ACCESS + token.getValue(), seconds, TimeUnit.SECONDS); | |
| 142 | + redisTemplate.expire(AUTH + token.getValue(), seconds, TimeUnit.SECONDS); | |
| 143 | + redisTemplate.expire(TOKEN + token.getValue(), seconds, TimeUnit.SECONDS); | |
| 144 | + redisTemplate.expire(AUTH_TO_ACCESS + authenticationKeyGenerator.extractKey(authentication), seconds, | |
| 145 | + TimeUnit.SECONDS); | |
| 146 | + redisTemplate.expire(CLIENT_ID_TO_ACCESS + authentication.getOAuth2Request().getClientId(), seconds, | |
| 147 | + TimeUnit.SECONDS); | |
| 148 | + redisTemplate.expire(UNAME_TO_ACCESS + getApprovalKey(authentication), seconds, TimeUnit.SECONDS); | |
| 149 | + } | |
| 150 | + | |
| 151 | + OAuth2RefreshToken refreshToken = token.getRefreshToken(); | |
| 152 | + | |
| 153 | + if (token.getRefreshToken() != null && token.getRefreshToken().getValue() != null) { | |
| 154 | + this.redisTemplate.opsForValue().set(REFRESH_TO_ACCESS + token.getRefreshToken().getValue(), | |
| 155 | + token.getValue()); | |
| 156 | + this.redisTemplate.opsForValue().set(ACCESS_TO_REFRESH + token.getValue(), | |
| 157 | + token.getRefreshToken().getValue()); | |
| 158 | + | |
| 159 | + if (refreshToken instanceof ExpiringOAuth2RefreshToken) { | |
| 160 | + ExpiringOAuth2RefreshToken expiringRefreshToken = (ExpiringOAuth2RefreshToken) refreshToken; | |
| 161 | + Date expiration = expiringRefreshToken.getExpiration(); | |
| 162 | + if (expiration != null) { | |
| 163 | + int seconds = Long.valueOf((expiration.getTime() - System.currentTimeMillis()) / 1000L).intValue(); | |
| 164 | + | |
| 165 | + redisTemplate.expire(REFRESH_TO_ACCESS + token.getRefreshToken().getValue(), seconds, | |
| 166 | + TimeUnit.SECONDS); | |
| 167 | + redisTemplate.expire(ACCESS_TO_REFRESH + token.getValue(), seconds, TimeUnit.SECONDS); | |
| 168 | + | |
| 169 | + } | |
| 170 | + } | |
| 171 | + | |
| 172 | + } | |
| 173 | + } | |
| 174 | + | |
| 175 | + private String getApprovalKey(OAuth2Authentication authentication) { | |
| 176 | + String userName = authentication.getUserAuthentication() == null ? "" | |
| 177 | + : authentication.getUserAuthentication().getName(); | |
| 178 | + return getApprovalKey(authentication.getOAuth2Request().getClientId(), userName); | |
| 179 | + } | |
| 180 | + | |
| 181 | + private String getApprovalKey(String clientId, String userName) { | |
| 182 | + return clientId + (userName == null ? "" : ":" + userName); | |
| 183 | + } | |
| 184 | + | |
| 185 | + public void removeAccessToken(OAuth2AccessToken accessToken) { | |
| 186 | + removeAccessToken(accessToken.getValue()); | |
| 187 | + } | |
| 188 | + | |
| 189 | + public OAuth2AccessToken readAccessToken(String tokenValue) { | |
| 190 | + | |
| 191 | + OAuth2Authentication oauth2Authentication = (OAuth2Authentication) this.redisTemplate.opsForValue() | |
| 192 | + .get(AUTH + tokenValue); | |
| 193 | + OAuth2AccessToken oauth2AccessToken = (OAuth2AccessToken) this.redisTemplate.opsForValue() | |
| 194 | + .get(ACCESS + tokenValue); | |
| 195 | + if (oauth2Authentication != null) { | |
| 196 | + String auth_to_access = authenticationKeyGenerator.extractKey(oauth2Authentication); | |
| 197 | + if (oauth2AccessToken != null) { | |
| 198 | + if (oauth2AccessToken.getExpiresIn() < 180) { | |
| 199 | + | |
| 200 | + if (oauth2AccessToken instanceof DefaultOAuth2AccessToken) { | |
| 201 | + DefaultOAuth2AccessToken token = (DefaultOAuth2AccessToken) oauth2AccessToken; | |
| 202 | +// Calendar cal = Calendar.getInstance(); | |
| 203 | +// cal.add(Calendar.DATE, 30); | |
| 204 | +// Date date = cal.getTime(); | |
| 205 | + /** | |
| 206 | + * 自动续费 30分钟 | |
| 207 | + */ | |
| 208 | + LocalDateTime t1 = LocalDateTime.now().plusMinutes(30); | |
| 209 | + ZoneId zone = ZoneId.systemDefault(); | |
| 210 | + Instant instant = t1.atZone(zone).toInstant(); | |
| 211 | + Date date = Date.from(instant); | |
| 212 | + | |
| 213 | + token.setExpiration(date); | |
| 214 | + | |
| 215 | + int seconds = token.getExpiresIn(); | |
| 216 | + | |
| 217 | + this.redisTemplate.opsForValue().set(AUTH_TO_ACCESS + auth_to_access, token, seconds, | |
| 218 | + TimeUnit.SECONDS); | |
| 219 | + this.redisTemplate.opsForValue().set(ACCESS + token.getValue(), token, seconds, | |
| 220 | + TimeUnit.SECONDS); | |
| 221 | + | |
| 222 | + redisTemplate.expire(AUTH + token.getValue(), seconds, TimeUnit.SECONDS); | |
| 223 | + redisTemplate.expire(TOKEN + token.getValue(), seconds, TimeUnit.SECONDS); | |
| 224 | + | |
| 225 | + redisTemplate.expire( | |
| 226 | + CLIENT_ID_TO_ACCESS + oauth2Authentication.getOAuth2Request().getClientId(), seconds, | |
| 227 | + TimeUnit.SECONDS); | |
| 228 | + redisTemplate.expire(UNAME_TO_ACCESS + getApprovalKey(oauth2Authentication), seconds, | |
| 229 | + TimeUnit.SECONDS); | |
| 230 | + | |
| 231 | + } | |
| 232 | + | |
| 233 | + } | |
| 234 | + } | |
| 235 | + } | |
| 236 | + | |
| 237 | + return oauth2AccessToken; | |
| 238 | + } | |
| 239 | + | |
| 240 | + public void removeAccessToken(String tokenValue) { | |
| 241 | + OAuth2AccessToken removed = (OAuth2AccessToken) redisTemplate.opsForValue().get(ACCESS + tokenValue); | |
| 242 | + // Don't remove the refresh token - it's up to the caller to do that | |
| 243 | + OAuth2Authentication authentication = (OAuth2Authentication) this.redisTemplate.opsForValue() | |
| 244 | + .get(AUTH + tokenValue); | |
| 245 | + | |
| 246 | + this.redisTemplate.delete(AUTH + tokenValue); | |
| 247 | + redisTemplate.delete(ACCESS + tokenValue); | |
| 248 | + redisTemplate.delete(TOKEN + tokenValue); | |
| 249 | + this.redisTemplate.delete(ACCESS_TO_REFRESH + tokenValue); | |
| 250 | + | |
| 251 | + if (authentication != null) { | |
| 252 | + this.redisTemplate.delete(AUTH_TO_ACCESS + authenticationKeyGenerator.extractKey(authentication)); | |
| 253 | + | |
| 254 | + String clientId = authentication.getOAuth2Request().getClientId(); | |
| 255 | + | |
| 256 | + // redisTemplate.opsForList().rightPush("UNAME_TO_ACCESS:"+getApprovalKey(authentication), | |
| 257 | + // token) ; | |
| 258 | + redisTemplate.opsForList().leftPop(UNAME_TO_ACCESS + getApprovalKey(clientId, authentication.getName())); | |
| 259 | + | |
| 260 | + redisTemplate.opsForList().leftPop(CLIENT_ID_TO_ACCESS + clientId); | |
| 261 | + | |
| 262 | + this.redisTemplate.delete(AUTH_TO_ACCESS + authenticationKeyGenerator.extractKey(authentication)); | |
| 263 | + } | |
| 264 | + } | |
| 265 | + | |
| 266 | + public void storeRefreshToken(OAuth2RefreshToken refreshToken, OAuth2Authentication authentication) { | |
| 267 | + this.redisTemplate.opsForValue().set(REFRESH + refreshToken.getValue(), refreshToken); | |
| 268 | + this.redisTemplate.opsForValue().set(REFRESH_AUTH + refreshToken.getValue(), authentication); | |
| 269 | + } | |
| 270 | + | |
| 271 | + public OAuth2RefreshToken readRefreshToken(String tokenValue) { | |
| 272 | + return (OAuth2RefreshToken) this.redisTemplate.opsForValue().get(REFRESH + tokenValue); | |
| 273 | + } | |
| 274 | + | |
| 275 | + public void removeRefreshToken(OAuth2RefreshToken refreshToken) { | |
| 276 | + removeRefreshToken(refreshToken.getValue()); | |
| 277 | + } | |
| 278 | + | |
| 279 | + public void removeRefreshToken(String tokenValue) { | |
| 280 | + this.redisTemplate.delete(REFRESH + tokenValue); | |
| 281 | + this.redisTemplate.delete(REFRESH_AUTH + tokenValue); | |
| 282 | + this.redisTemplate.delete(REFRESH_TO_ACCESS + tokenValue); | |
| 283 | + } | |
| 284 | + | |
| 285 | + public void removeAccessTokenUsingRefreshToken(OAuth2RefreshToken refreshToken) { | |
| 286 | + removeAccessTokenUsingRefreshToken(refreshToken.getValue()); | |
| 287 | + } | |
| 288 | + | |
| 289 | + private void removeAccessTokenUsingRefreshToken(String refreshToken) { | |
| 290 | + | |
| 291 | + String token = (String) this.redisTemplate.opsForValue().get(REFRESH_TO_ACCESS + refreshToken); | |
| 292 | + | |
| 293 | + if (token != null) { | |
| 294 | + redisTemplate.delete(REFRESH_TO_ACCESS + refreshToken); | |
| 295 | + } | |
| 296 | + } | |
| 297 | + | |
| 298 | + public Collection<OAuth2AccessToken> findTokensByClientIdAndUserName(String clientId, String userName) { | |
| 299 | + List<Object> result = redisTemplate.opsForList().range(UNAME_TO_ACCESS + getApprovalKey(clientId, userName), 0, | |
| 300 | + -1); | |
| 301 | + | |
| 302 | + if (result == null || result.size() == 0) { | |
| 303 | + return Collections.<OAuth2AccessToken>emptySet(); | |
| 304 | + } | |
| 305 | + List<OAuth2AccessToken> accessTokens = new ArrayList<OAuth2AccessToken>(result.size()); | |
| 306 | + | |
| 307 | + for (Iterator<Object> it = result.iterator(); it.hasNext();) { | |
| 308 | + OAuth2AccessToken accessToken = (OAuth2AccessToken) it.next(); | |
| 309 | + accessTokens.add(accessToken); | |
| 310 | + } | |
| 311 | + | |
| 312 | + return Collections.<OAuth2AccessToken>unmodifiableCollection(accessTokens); | |
| 313 | + } | |
| 314 | + | |
| 315 | + public Collection<OAuth2AccessToken> findTokensByClientId(String clientId) { | |
| 316 | + List<Object> result = redisTemplate.opsForList().range((CLIENT_ID_TO_ACCESS + clientId), 0, -1); | |
| 317 | + | |
| 318 | + if (result == null || result.size() == 0) { | |
| 319 | + return Collections.<OAuth2AccessToken>emptySet(); | |
| 320 | + } | |
| 321 | + List<OAuth2AccessToken> accessTokens = new ArrayList<OAuth2AccessToken>(result.size()); | |
| 322 | + | |
| 323 | + for (Iterator<Object> it = result.iterator(); it.hasNext();) { | |
| 324 | + OAuth2AccessToken accessToken = (OAuth2AccessToken) it.next(); | |
| 325 | + accessTokens.add(accessToken); | |
| 326 | + } | |
| 327 | + | |
| 328 | + return Collections.<OAuth2AccessToken>unmodifiableCollection(accessTokens); | |
| 329 | + } | |
| 330 | + | |
| 331 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/utils/SpringUtil.java
0 → 100644
| ... | ... | @@ -0,0 +1,35 @@ |
| 1 | +package com.sincere.autho.utils; | |
| 2 | + | |
| 3 | +import org.springframework.beans.BeansException; | |
| 4 | +import org.springframework.context.ApplicationContext; | |
| 5 | +import org.springframework.context.ApplicationContextAware; | |
| 6 | +import org.springframework.core.env.Environment; | |
| 7 | +import org.springframework.stereotype.Component; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * spring获取bean工具类 | |
| 11 | + * | |
| 12 | + * | |
| 13 | + */ | |
| 14 | +@Component | |
| 15 | +public class SpringUtil implements ApplicationContextAware { | |
| 16 | + | |
| 17 | + private static ApplicationContext applicationContext = null; | |
| 18 | + | |
| 19 | + @Override | |
| 20 | + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { | |
| 21 | + SpringUtil.applicationContext = applicationContext; | |
| 22 | + } | |
| 23 | + | |
| 24 | + public static <T> T getBean(Class<T> cla) { | |
| 25 | + return applicationContext.getBean(cla); | |
| 26 | + } | |
| 27 | + | |
| 28 | + public static <T> T getBean(String name, Class<T> cal) { | |
| 29 | + return applicationContext.getBean(name, cal); | |
| 30 | + } | |
| 31 | + | |
| 32 | + public static String getProperty(String key) { | |
| 33 | + return applicationContext.getBean(Environment.class).getProperty(key); | |
| 34 | + } | |
| 35 | +} | ... | ... |
cloud/autho/src/main/java/com/sincere/autho/utils/SysUserUtil.java
0 → 100644
| ... | ... | @@ -0,0 +1,41 @@ |
| 1 | +package com.sincere.autho.utils; | |
| 2 | + | |
| 3 | +import com.sincere.common.model.system.LoginAppUser; | |
| 4 | +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; | |
| 5 | +import org.springframework.security.core.Authentication; | |
| 6 | +import org.springframework.security.core.context.SecurityContextHolder; | |
| 7 | +import org.springframework.security.oauth2.provider.OAuth2Authentication; | |
| 8 | +import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * @author 作者 owen E-mail: 624191343@qq.com | |
| 12 | + * @version 创建时间:2017年11月12日 上午22:57:51 获取用户信息 | |
| 13 | + */ | |
| 14 | +public class SysUserUtil { | |
| 15 | + | |
| 16 | + /** | |
| 17 | + * 获取登陆的 LoginAppUser | |
| 18 | + * | |
| 19 | + * @return | |
| 20 | + */ | |
| 21 | + @SuppressWarnings("rawtypes") | |
| 22 | + public static LoginAppUser getLoginAppUser() { | |
| 23 | + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); | |
| 24 | + if (authentication instanceof OAuth2Authentication) { | |
| 25 | + OAuth2Authentication oAuth2Auth = (OAuth2Authentication) authentication; | |
| 26 | + authentication = oAuth2Auth.getUserAuthentication(); | |
| 27 | + | |
| 28 | + if (authentication instanceof UsernamePasswordAuthenticationToken) { | |
| 29 | + UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) authentication; | |
| 30 | + return (LoginAppUser) authenticationToken.getPrincipal(); | |
| 31 | + } else if (authentication instanceof PreAuthenticatedAuthenticationToken) { | |
| 32 | + // 刷新token方式 | |
| 33 | + PreAuthenticatedAuthenticationToken authenticationToken = (PreAuthenticatedAuthenticationToken) authentication; | |
| 34 | + return (LoginAppUser) authenticationToken.getPrincipal(); | |
| 35 | + | |
| 36 | + } | |
| 37 | + } | |
| 38 | + | |
| 39 | + return null; | |
| 40 | + } | |
| 41 | +} | ... | ... |
| ... | ... | @@ -0,0 +1,96 @@ |
| 1 | +server: | |
| 2 | + port: 8763 | |
| 3 | + | |
| 4 | +spring: | |
| 5 | + application: | |
| 6 | + name: auth-server | |
| 7 | +session: | |
| 8 | + store-type: redis | |
| 9 | + datasource: | |
| 10 | + dynamic: | |
| 11 | + enable: true | |
| 12 | + druid: | |
| 13 | + # JDBC 配置(驱动类自动从url的mysql识别,数据源类型自动识别) | |
| 14 | + core: | |
| 15 | + url: jdbc:mysql://localhost/oauth-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false | |
| 16 | + username: root | |
| 17 | + password: root | |
| 18 | + driver-class-name: com.mysql.jdbc.Driver | |
| 19 | + log: | |
| 20 | + url: jdbc:mysql://59.110.164.254:3306/log-center?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false | |
| 21 | + username: root | |
| 22 | + password: root | |
| 23 | + driver-class-name: com.mysql.jdbc.Driver | |
| 24 | + #连接池配置(通常来说,只需要修改initialSize、minIdle、maxActive | |
| 25 | + initial-size: 1 | |
| 26 | + max-active: 20 | |
| 27 | + min-idle: 1 | |
| 28 | + # 配置获取连接等待超时的时间 | |
| 29 | + max-wait: 60000 | |
| 30 | + #打开PSCache,并且指定每个连接上PSCache的大小 | |
| 31 | + pool-prepared-statements: true | |
| 32 | + max-pool-prepared-statement-per-connection-size: 20 | |
| 33 | + validation-query: SELECT 'x' | |
| 34 | + test-on-borrow: false | |
| 35 | + test-on-return: false | |
| 36 | + test-while-idle: true | |
| 37 | + #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 | |
| 38 | + time-between-eviction-runs-millis: 60000 | |
| 39 | + #配置一个连接在池中最小生存的时间,单位是毫秒 | |
| 40 | + min-evictable-idle-time-millis: 300000 | |
| 41 | + filters: stat,wall | |
| 42 | + # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter | |
| 43 | + #是否启用StatFilter默认值true | |
| 44 | + web-stat-filter.enabled: true | |
| 45 | + web-stat-filter.url-pattern: /* | |
| 46 | + web-stat-filter.exclusions: "*.js , *.gif ,*.jpg ,*.png ,*.css ,*.ico , /druid/*" | |
| 47 | + web-stat-filter.session-stat-max-count: 1000 | |
| 48 | + web-stat-filter.profile-enable: true | |
| 49 | + # StatViewServlet配置 | |
| 50 | + #展示Druid的统计信息,StatViewServlet的用途包括:1.提供监控信息展示的html页面2.提供监控信息的JSON API | |
| 51 | + #是否启用StatViewServlet默认值true | |
| 52 | + stat-view-servlet.enabled: true | |
| 53 | + #根据配置中的url-pattern来访问内置监控页面,如果是上面的配置,内置监控页面的首页是/druid/index.html例如: | |
| 54 | + #http://110.76.43.235:9000/druid/index.html | |
| 55 | + #http://110.76.43.235:8080/mini-web/druid/index.html | |
| 56 | + stat-view-servlet.url-pattern: /druid/* | |
| 57 | + #允许清空统计数据 | |
| 58 | + stat-view-servlet.reset-enable: true | |
| 59 | + stat-view-servlet.login-username: admin | |
| 60 | + stat-view-servlet.login-password: admin | |
| 61 | + #StatViewSerlvet展示出来的监控信息比较敏感,是系统运行的内部情况,如果你需要做访问控制,可以配置allow和deny这两个参数 | |
| 62 | + #deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。如果allow没有配置或者为空,则允许所有访问 | |
| 63 | + #配置的格式 | |
| 64 | + #<IP> | |
| 65 | + #或者<IP>/<SUB_NET_MASK_size>其中128.242.127.1/24 | |
| 66 | + #24表示,前面24位是子网掩码,比对的时候,前面24位相同就匹配,不支持IPV6。 | |
| 67 | + #stat-view-servlet.allow= | |
| 68 | + #stat-view-servlet.deny=128.242.127.1/24,128.242.128.1 | |
| 69 | + # Spring监控配置,说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置 | |
| 70 | + #aop-patterns= # Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔 | |
| 71 | +################### mysq end ########################## | |
| 72 | + | |
| 73 | + | |
| 74 | +eureka: | |
| 75 | + instance: | |
| 76 | + hostname: localhost | |
| 77 | + lease-expiration-duration-in-seconds: 60 | |
| 78 | + lease-renewal-interval-in-seconds: 10 | |
| 79 | + client: | |
| 80 | + service-url: | |
| 81 | + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ | |
| 82 | + | |
| 83 | + | |
| 84 | + redis: | |
| 85 | + ################### redis 单机版 start ########################## | |
| 86 | + host: localhost | |
| 87 | + port: 6379 | |
| 88 | + timeout: 6000 | |
| 89 | + database: 2 | |
| 90 | + lettuce: | |
| 91 | + pool: | |
| 92 | + max-active: 10 # 连接池最大连接数(使用负值表示没有限制),如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽) | |
| 93 | + max-idle: 8 # 连接池中的最大空闲连接 ,默认值也是8 | |
| 94 | + max-wait: 100 # # 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException | |
| 95 | + min-idle: 2 # 连接池中的最小空闲连接 ,默认值也是0 | |
| 96 | + shutdown-timeout: 100ms | |
| 0 | 97 | \ No newline at end of file | ... | ... |
cloud/autho/src/test/java/com/sincere/autho/AuthoApplicationTests.java
0 → 100644
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +package com.sincere.autho; | |
| 2 | + | |
| 3 | +import org.junit.Test; | |
| 4 | +import org.junit.runner.RunWith; | |
| 5 | +import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | +import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | + | |
| 8 | +@RunWith(SpringRunner.class) | |
| 9 | +@SpringBootTest | |
| 10 | +public class AuthoApplicationTests { | |
| 11 | + | |
| 12 | + @Test | |
| 13 | + public void contextLoads() { | |
| 14 | + } | |
| 15 | + | |
| 16 | +} | ... | ... |
cloud/cloud-server/.gitignore
| ... | ... | @@ -1,31 +0,0 @@ |
| 1 | -HELP.md | |
| 2 | -target/ | |
| 3 | -!.mvn/wrapper/maven-wrapper.jar | |
| 4 | -!**/src/main/** | |
| 5 | -!**/src/test/** | |
| 6 | - | |
| 7 | -### STS ### | |
| 8 | -.apt_generated | |
| 9 | -.classpath | |
| 10 | -.factorypath | |
| 11 | -.project | |
| 12 | -.settings | |
| 13 | -.springBeans | |
| 14 | -.sts4-cache | |
| 15 | - | |
| 16 | -### IntelliJ IDEA ### | |
| 17 | -.idea | |
| 18 | -*.iws | |
| 19 | -*.iml | |
| 20 | -*.ipr | |
| 21 | - | |
| 22 | -### NetBeans ### | |
| 23 | -/nbproject/private/ | |
| 24 | -/nbbuild/ | |
| 25 | -/dist/ | |
| 26 | -/nbdist/ | |
| 27 | -/.nb-gradle/ | |
| 28 | -build/ | |
| 29 | - | |
| 30 | -### VS Code ### | |
| 31 | -.vscode/ |
cloud/cloud-server/.mvn/wrapper/MavenWrapperDownloader.java
| ... | ... | @@ -1,114 +0,0 @@ |
| 1 | -/* | |
| 2 | -Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | -or more contributor license agreements. See the NOTICE file | |
| 4 | -distributed with this work for additional information | |
| 5 | -regarding copyright ownership. The ASF licenses this file | |
| 6 | -to you under the Apache License, Version 2.0 (the | |
| 7 | -"License"); you may not use this file except in compliance | |
| 8 | -with the License. You may obtain a copy of the License at | |
| 9 | - | |
| 10 | - https://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | - | |
| 12 | -Unless required by applicable law or agreed to in writing, | |
| 13 | -software distributed under the License is distributed on an | |
| 14 | -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | -KIND, either express or implied. See the License for the | |
| 16 | -specific language governing permissions and limitations | |
| 17 | -under the License. | |
| 18 | -*/ | |
| 19 | - | |
| 20 | -import java.io.File; | |
| 21 | -import java.io.FileInputStream; | |
| 22 | -import java.io.FileOutputStream; | |
| 23 | -import java.io.IOException; | |
| 24 | -import java.net.URL; | |
| 25 | -import java.nio.channels.Channels; | |
| 26 | -import java.nio.channels.ReadableByteChannel; | |
| 27 | -import java.util.Properties; | |
| 28 | - | |
| 29 | -public class MavenWrapperDownloader { | |
| 30 | - | |
| 31 | - /** | |
| 32 | - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. | |
| 33 | - */ | |
| 34 | - private static final String DEFAULT_DOWNLOAD_URL = | |
| 35 | - "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; | |
| 36 | - | |
| 37 | - /** | |
| 38 | - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to | |
| 39 | - * use instead of the default one. | |
| 40 | - */ | |
| 41 | - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = | |
| 42 | - ".mvn/wrapper/maven-wrapper.properties"; | |
| 43 | - | |
| 44 | - /** | |
| 45 | - * Path where the maven-wrapper.jar will be saved to. | |
| 46 | - */ | |
| 47 | - private static final String MAVEN_WRAPPER_JAR_PATH = | |
| 48 | - ".mvn/wrapper/maven-wrapper.jar"; | |
| 49 | - | |
| 50 | - /** | |
| 51 | - * Name of the property which should be used to override the default download url for the wrapper. | |
| 52 | - */ | |
| 53 | - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; | |
| 54 | - | |
| 55 | - public static void main(String args[]) { | |
| 56 | - System.out.println("- Downloader started"); | |
| 57 | - File baseDirectory = new File(args[0]); | |
| 58 | - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); | |
| 59 | - | |
| 60 | - // If the maven-wrapper.properties exists, read it and check if it contains a custom | |
| 61 | - // wrapperUrl parameter. | |
| 62 | - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); | |
| 63 | - String url = DEFAULT_DOWNLOAD_URL; | |
| 64 | - if (mavenWrapperPropertyFile.exists()) { | |
| 65 | - FileInputStream mavenWrapperPropertyFileInputStream = null; | |
| 66 | - try { | |
| 67 | - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); | |
| 68 | - Properties mavenWrapperProperties = new Properties(); | |
| 69 | - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); | |
| 70 | - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); | |
| 71 | - } catch (IOException e) { | |
| 72 | - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); | |
| 73 | - } finally { | |
| 74 | - try { | |
| 75 | - if (mavenWrapperPropertyFileInputStream != null) { | |
| 76 | - mavenWrapperPropertyFileInputStream.close(); | |
| 77 | - } | |
| 78 | - } catch (IOException e) { | |
| 79 | - // Ignore ... | |
| 80 | - } | |
| 81 | - } | |
| 82 | - } | |
| 83 | - System.out.println("- Downloading from: : " + url); | |
| 84 | - | |
| 85 | - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); | |
| 86 | - if (!outputFile.getParentFile().exists()) { | |
| 87 | - if (!outputFile.getParentFile().mkdirs()) { | |
| 88 | - System.out.println( | |
| 89 | - "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); | |
| 90 | - } | |
| 91 | - } | |
| 92 | - System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); | |
| 93 | - try { | |
| 94 | - downloadFileFromURL(url, outputFile); | |
| 95 | - System.out.println("Done"); | |
| 96 | - System.exit(0); | |
| 97 | - } catch (Throwable e) { | |
| 98 | - System.out.println("- Error downloading"); | |
| 99 | - e.printStackTrace(); | |
| 100 | - System.exit(1); | |
| 101 | - } | |
| 102 | - } | |
| 103 | - | |
| 104 | - private static void downloadFileFromURL(String urlString, File destination) throws Exception { | |
| 105 | - URL website = new URL(urlString); | |
| 106 | - ReadableByteChannel rbc; | |
| 107 | - rbc = Channels.newChannel(website.openStream()); | |
| 108 | - FileOutputStream fos = new FileOutputStream(destination); | |
| 109 | - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); | |
| 110 | - fos.close(); | |
| 111 | - rbc.close(); | |
| 112 | - } | |
| 113 | - | |
| 114 | -} |
cloud/cloud-server/.mvn/wrapper/maven-wrapper.jar
No preview for this file type
cloud/cloud-server/.mvn/wrapper/maven-wrapper.properties
| ... | ... | @@ -1 +0,0 @@ |
| 1 | -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip |
cloud/cloud-server/mvnw
| ... | ... | @@ -1,286 +0,0 @@ |
| 1 | -#!/bin/sh | |
| 2 | -# ---------------------------------------------------------------------------- | |
| 3 | -# Licensed to the Apache Software Foundation (ASF) under one | |
| 4 | -# or more contributor license agreements. See the NOTICE file | |
| 5 | -# distributed with this work for additional information | |
| 6 | -# regarding copyright ownership. The ASF licenses this file | |
| 7 | -# to you under the Apache License, Version 2.0 (the | |
| 8 | -# "License"); you may not use this file except in compliance | |
| 9 | -# with the License. You may obtain a copy of the License at | |
| 10 | -# | |
| 11 | -# https://www.apache.org/licenses/LICENSE-2.0 | |
| 12 | -# | |
| 13 | -# Unless required by applicable law or agreed to in writing, | |
| 14 | -# software distributed under the License is distributed on an | |
| 15 | -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 16 | -# KIND, either express or implied. See the License for the | |
| 17 | -# specific language governing permissions and limitations | |
| 18 | -# under the License. | |
| 19 | -# ---------------------------------------------------------------------------- | |
| 20 | - | |
| 21 | -# ---------------------------------------------------------------------------- | |
| 22 | -# Maven2 Start Up Batch script | |
| 23 | -# | |
| 24 | -# Required ENV vars: | |
| 25 | -# ------------------ | |
| 26 | -# JAVA_HOME - location of a JDK home dir | |
| 27 | -# | |
| 28 | -# Optional ENV vars | |
| 29 | -# ----------------- | |
| 30 | -# M2_HOME - location of maven2's installed home dir | |
| 31 | -# MAVEN_OPTS - parameters passed to the Java VM when running Maven | |
| 32 | -# e.g. to debug Maven itself, use | |
| 33 | -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | |
| 34 | -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files | |
| 35 | -# ---------------------------------------------------------------------------- | |
| 36 | - | |
| 37 | -if [ -z "$MAVEN_SKIP_RC" ] ; then | |
| 38 | - | |
| 39 | - if [ -f /etc/mavenrc ] ; then | |
| 40 | - . /etc/mavenrc | |
| 41 | - fi | |
| 42 | - | |
| 43 | - if [ -f "$HOME/.mavenrc" ] ; then | |
| 44 | - . "$HOME/.mavenrc" | |
| 45 | - fi | |
| 46 | - | |
| 47 | -fi | |
| 48 | - | |
| 49 | -# OS specific support. $var _must_ be set to either true or false. | |
| 50 | -cygwin=false; | |
| 51 | -darwin=false; | |
| 52 | -mingw=false | |
| 53 | -case "`uname`" in | |
| 54 | - CYGWIN*) cygwin=true ;; | |
| 55 | - MINGW*) mingw=true;; | |
| 56 | - Darwin*) darwin=true | |
| 57 | - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home | |
| 58 | - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html | |
| 59 | - if [ -z "$JAVA_HOME" ]; then | |
| 60 | - if [ -x "/usr/libexec/java_home" ]; then | |
| 61 | - export JAVA_HOME="`/usr/libexec/java_home`" | |
| 62 | - else | |
| 63 | - export JAVA_HOME="/Library/Java/Home" | |
| 64 | - fi | |
| 65 | - fi | |
| 66 | - ;; | |
| 67 | -esac | |
| 68 | - | |
| 69 | -if [ -z "$JAVA_HOME" ] ; then | |
| 70 | - if [ -r /etc/gentoo-release ] ; then | |
| 71 | - JAVA_HOME=`java-config --jre-home` | |
| 72 | - fi | |
| 73 | -fi | |
| 74 | - | |
| 75 | -if [ -z "$M2_HOME" ] ; then | |
| 76 | - ## resolve links - $0 may be a link to maven's home | |
| 77 | - PRG="$0" | |
| 78 | - | |
| 79 | - # need this for relative symlinks | |
| 80 | - while [ -h "$PRG" ] ; do | |
| 81 | - ls=`ls -ld "$PRG"` | |
| 82 | - link=`expr "$ls" : '.*-> \(.*\)$'` | |
| 83 | - if expr "$link" : '/.*' > /dev/null; then | |
| 84 | - PRG="$link" | |
| 85 | - else | |
| 86 | - PRG="`dirname "$PRG"`/$link" | |
| 87 | - fi | |
| 88 | - done | |
| 89 | - | |
| 90 | - saveddir=`pwd` | |
| 91 | - | |
| 92 | - M2_HOME=`dirname "$PRG"`/.. | |
| 93 | - | |
| 94 | - # make it fully qualified | |
| 95 | - M2_HOME=`cd "$M2_HOME" && pwd` | |
| 96 | - | |
| 97 | - cd "$saveddir" | |
| 98 | - # echo Using m2 at $M2_HOME | |
| 99 | -fi | |
| 100 | - | |
| 101 | -# For Cygwin, ensure paths are in UNIX format before anything is touched | |
| 102 | -if $cygwin ; then | |
| 103 | - [ -n "$M2_HOME" ] && | |
| 104 | - M2_HOME=`cygpath --unix "$M2_HOME"` | |
| 105 | - [ -n "$JAVA_HOME" ] && | |
| 106 | - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | |
| 107 | - [ -n "$CLASSPATH" ] && | |
| 108 | - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` | |
| 109 | -fi | |
| 110 | - | |
| 111 | -# For Mingw, ensure paths are in UNIX format before anything is touched | |
| 112 | -if $mingw ; then | |
| 113 | - [ -n "$M2_HOME" ] && | |
| 114 | - M2_HOME="`(cd "$M2_HOME"; pwd)`" | |
| 115 | - [ -n "$JAVA_HOME" ] && | |
| 116 | - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" | |
| 117 | - # TODO classpath? | |
| 118 | -fi | |
| 119 | - | |
| 120 | -if [ -z "$JAVA_HOME" ]; then | |
| 121 | - javaExecutable="`which javac`" | |
| 122 | - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then | |
| 123 | - # readlink(1) is not available as standard on Solaris 10. | |
| 124 | - readLink=`which readlink` | |
| 125 | - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then | |
| 126 | - if $darwin ; then | |
| 127 | - javaHome="`dirname \"$javaExecutable\"`" | |
| 128 | - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" | |
| 129 | - else | |
| 130 | - javaExecutable="`readlink -f \"$javaExecutable\"`" | |
| 131 | - fi | |
| 132 | - javaHome="`dirname \"$javaExecutable\"`" | |
| 133 | - javaHome=`expr "$javaHome" : '\(.*\)/bin'` | |
| 134 | - JAVA_HOME="$javaHome" | |
| 135 | - export JAVA_HOME | |
| 136 | - fi | |
| 137 | - fi | |
| 138 | -fi | |
| 139 | - | |
| 140 | -if [ -z "$JAVACMD" ] ; then | |
| 141 | - if [ -n "$JAVA_HOME" ] ; then | |
| 142 | - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |
| 143 | - # IBM's JDK on AIX uses strange locations for the executables | |
| 144 | - JAVACMD="$JAVA_HOME/jre/sh/java" | |
| 145 | - else | |
| 146 | - JAVACMD="$JAVA_HOME/bin/java" | |
| 147 | - fi | |
| 148 | - else | |
| 149 | - JAVACMD="`which java`" | |
| 150 | - fi | |
| 151 | -fi | |
| 152 | - | |
| 153 | -if [ ! -x "$JAVACMD" ] ; then | |
| 154 | - echo "Error: JAVA_HOME is not defined correctly." >&2 | |
| 155 | - echo " We cannot execute $JAVACMD" >&2 | |
| 156 | - exit 1 | |
| 157 | -fi | |
| 158 | - | |
| 159 | -if [ -z "$JAVA_HOME" ] ; then | |
| 160 | - echo "Warning: JAVA_HOME environment variable is not set." | |
| 161 | -fi | |
| 162 | - | |
| 163 | -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher | |
| 164 | - | |
| 165 | -# traverses directory structure from process work directory to filesystem root | |
| 166 | -# first directory with .mvn subdirectory is considered project base directory | |
| 167 | -find_maven_basedir() { | |
| 168 | - | |
| 169 | - if [ -z "$1" ] | |
| 170 | - then | |
| 171 | - echo "Path not specified to find_maven_basedir" | |
| 172 | - return 1 | |
| 173 | - fi | |
| 174 | - | |
| 175 | - basedir="$1" | |
| 176 | - wdir="$1" | |
| 177 | - while [ "$wdir" != '/' ] ; do | |
| 178 | - if [ -d "$wdir"/.mvn ] ; then | |
| 179 | - basedir=$wdir | |
| 180 | - break | |
| 181 | - fi | |
| 182 | - # workaround for JBEAP-8937 (on Solaris 10/Sparc) | |
| 183 | - if [ -d "${wdir}" ]; then | |
| 184 | - wdir=`cd "$wdir/.."; pwd` | |
| 185 | - fi | |
| 186 | - # end of workaround | |
| 187 | - done | |
| 188 | - echo "${basedir}" | |
| 189 | -} | |
| 190 | - | |
| 191 | -# concatenates all lines of a file | |
| 192 | -concat_lines() { | |
| 193 | - if [ -f "$1" ]; then | |
| 194 | - echo "$(tr -s '\n' ' ' < "$1")" | |
| 195 | - fi | |
| 196 | -} | |
| 197 | - | |
| 198 | -BASE_DIR=`find_maven_basedir "$(pwd)"` | |
| 199 | -if [ -z "$BASE_DIR" ]; then | |
| 200 | - exit 1; | |
| 201 | -fi | |
| 202 | - | |
| 203 | -########################################################################################## | |
| 204 | -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | |
| 205 | -# This allows using the maven wrapper in projects that prohibit checking in binary data. | |
| 206 | -########################################################################################## | |
| 207 | -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then | |
| 208 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 209 | - echo "Found .mvn/wrapper/maven-wrapper.jar" | |
| 210 | - fi | |
| 211 | -else | |
| 212 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 213 | - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." | |
| 214 | - fi | |
| 215 | - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" | |
| 216 | - while IFS="=" read key value; do | |
| 217 | - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; | |
| 218 | - esac | |
| 219 | - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" | |
| 220 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 221 | - echo "Downloading from: $jarUrl" | |
| 222 | - fi | |
| 223 | - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" | |
| 224 | - | |
| 225 | - if command -v wget > /dev/null; then | |
| 226 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 227 | - echo "Found wget ... using wget" | |
| 228 | - fi | |
| 229 | - wget "$jarUrl" -O "$wrapperJarPath" | |
| 230 | - elif command -v curl > /dev/null; then | |
| 231 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 232 | - echo "Found curl ... using curl" | |
| 233 | - fi | |
| 234 | - curl -o "$wrapperJarPath" "$jarUrl" | |
| 235 | - else | |
| 236 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 237 | - echo "Falling back to using Java to download" | |
| 238 | - fi | |
| 239 | - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" | |
| 240 | - if [ -e "$javaClass" ]; then | |
| 241 | - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | |
| 242 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 243 | - echo " - Compiling MavenWrapperDownloader.java ..." | |
| 244 | - fi | |
| 245 | - # Compiling the Java class | |
| 246 | - ("$JAVA_HOME/bin/javac" "$javaClass") | |
| 247 | - fi | |
| 248 | - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | |
| 249 | - # Running the downloader | |
| 250 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 251 | - echo " - Running MavenWrapperDownloader.java ..." | |
| 252 | - fi | |
| 253 | - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") | |
| 254 | - fi | |
| 255 | - fi | |
| 256 | - fi | |
| 257 | -fi | |
| 258 | -########################################################################################## | |
| 259 | -# End of extension | |
| 260 | -########################################################################################## | |
| 261 | - | |
| 262 | -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} | |
| 263 | -if [ "$MVNW_VERBOSE" = true ]; then | |
| 264 | - echo $MAVEN_PROJECTBASEDIR | |
| 265 | -fi | |
| 266 | -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" | |
| 267 | - | |
| 268 | -# For Cygwin, switch paths to Windows format before running java | |
| 269 | -if $cygwin; then | |
| 270 | - [ -n "$M2_HOME" ] && | |
| 271 | - M2_HOME=`cygpath --path --windows "$M2_HOME"` | |
| 272 | - [ -n "$JAVA_HOME" ] && | |
| 273 | - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` | |
| 274 | - [ -n "$CLASSPATH" ] && | |
| 275 | - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` | |
| 276 | - [ -n "$MAVEN_PROJECTBASEDIR" ] && | |
| 277 | - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` | |
| 278 | -fi | |
| 279 | - | |
| 280 | -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | |
| 281 | - | |
| 282 | -exec "$JAVACMD" \ | |
| 283 | - $MAVEN_OPTS \ | |
| 284 | - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ | |
| 285 | - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ | |
| 286 | - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" |
cloud/cloud-server/mvnw.cmd
| ... | ... | @@ -1,161 +0,0 @@ |
| 1 | -@REM ---------------------------------------------------------------------------- | |
| 2 | -@REM Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | -@REM or more contributor license agreements. See the NOTICE file | |
| 4 | -@REM distributed with this work for additional information | |
| 5 | -@REM regarding copyright ownership. The ASF licenses this file | |
| 6 | -@REM to you under the Apache License, Version 2.0 (the | |
| 7 | -@REM "License"); you may not use this file except in compliance | |
| 8 | -@REM with the License. You may obtain a copy of the License at | |
| 9 | -@REM | |
| 10 | -@REM https://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | -@REM | |
| 12 | -@REM Unless required by applicable law or agreed to in writing, | |
| 13 | -@REM software distributed under the License is distributed on an | |
| 14 | -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | -@REM KIND, either express or implied. See the License for the | |
| 16 | -@REM specific language governing permissions and limitations | |
| 17 | -@REM under the License. | |
| 18 | -@REM ---------------------------------------------------------------------------- | |
| 19 | - | |
| 20 | -@REM ---------------------------------------------------------------------------- | |
| 21 | -@REM Maven2 Start Up Batch script | |
| 22 | -@REM | |
| 23 | -@REM Required ENV vars: | |
| 24 | -@REM JAVA_HOME - location of a JDK home dir | |
| 25 | -@REM | |
| 26 | -@REM Optional ENV vars | |
| 27 | -@REM M2_HOME - location of maven2's installed home dir | |
| 28 | -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands | |
| 29 | -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending | |
| 30 | -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven | |
| 31 | -@REM e.g. to debug Maven itself, use | |
| 32 | -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | |
| 33 | -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files | |
| 34 | -@REM ---------------------------------------------------------------------------- | |
| 35 | - | |
| 36 | -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' | |
| 37 | -@echo off | |
| 38 | -@REM set title of command window | |
| 39 | -title %0 | |
| 40 | -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' | |
| 41 | -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% | |
| 42 | - | |
| 43 | -@REM set %HOME% to equivalent of $HOME | |
| 44 | -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") | |
| 45 | - | |
| 46 | -@REM Execute a user defined script before this one | |
| 47 | -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre | |
| 48 | -@REM check for pre script, once with legacy .bat ending and once with .cmd ending | |
| 49 | -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" | |
| 50 | -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" | |
| 51 | -:skipRcPre | |
| 52 | - | |
| 53 | -@setlocal | |
| 54 | - | |
| 55 | -set ERROR_CODE=0 | |
| 56 | - | |
| 57 | -@REM To isolate internal variables from possible post scripts, we use another setlocal | |
| 58 | -@setlocal | |
| 59 | - | |
| 60 | -@REM ==== START VALIDATION ==== | |
| 61 | -if not "%JAVA_HOME%" == "" goto OkJHome | |
| 62 | - | |
| 63 | -echo. | |
| 64 | -echo Error: JAVA_HOME not found in your environment. >&2 | |
| 65 | -echo Please set the JAVA_HOME variable in your environment to match the >&2 | |
| 66 | -echo location of your Java installation. >&2 | |
| 67 | -echo. | |
| 68 | -goto error | |
| 69 | - | |
| 70 | -:OkJHome | |
| 71 | -if exist "%JAVA_HOME%\bin\java.exe" goto init | |
| 72 | - | |
| 73 | -echo. | |
| 74 | -echo Error: JAVA_HOME is set to an invalid directory. >&2 | |
| 75 | -echo JAVA_HOME = "%JAVA_HOME%" >&2 | |
| 76 | -echo Please set the JAVA_HOME variable in your environment to match the >&2 | |
| 77 | -echo location of your Java installation. >&2 | |
| 78 | -echo. | |
| 79 | -goto error | |
| 80 | - | |
| 81 | -@REM ==== END VALIDATION ==== | |
| 82 | - | |
| 83 | -:init | |
| 84 | - | |
| 85 | -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". | |
| 86 | -@REM Fallback to current working directory if not found. | |
| 87 | - | |
| 88 | -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% | |
| 89 | -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir | |
| 90 | - | |
| 91 | -set EXEC_DIR=%CD% | |
| 92 | -set WDIR=%EXEC_DIR% | |
| 93 | -:findBaseDir | |
| 94 | -IF EXIST "%WDIR%"\.mvn goto baseDirFound | |
| 95 | -cd .. | |
| 96 | -IF "%WDIR%"=="%CD%" goto baseDirNotFound | |
| 97 | -set WDIR=%CD% | |
| 98 | -goto findBaseDir | |
| 99 | - | |
| 100 | -:baseDirFound | |
| 101 | -set MAVEN_PROJECTBASEDIR=%WDIR% | |
| 102 | -cd "%EXEC_DIR%" | |
| 103 | -goto endDetectBaseDir | |
| 104 | - | |
| 105 | -:baseDirNotFound | |
| 106 | -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% | |
| 107 | -cd "%EXEC_DIR%" | |
| 108 | - | |
| 109 | -:endDetectBaseDir | |
| 110 | - | |
| 111 | -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig | |
| 112 | - | |
| 113 | -@setlocal EnableExtensions EnableDelayedExpansion | |
| 114 | -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a | |
| 115 | -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% | |
| 116 | - | |
| 117 | -:endReadAdditionalConfig | |
| 118 | - | |
| 119 | -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" | |
| 120 | -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" | |
| 121 | -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | |
| 122 | - | |
| 123 | -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" | |
| 124 | -FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( | |
| 125 | - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B | |
| 126 | -) | |
| 127 | - | |
| 128 | -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | |
| 129 | -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. | |
| 130 | -if exist %WRAPPER_JAR% ( | |
| 131 | - echo Found %WRAPPER_JAR% | |
| 132 | -) else ( | |
| 133 | - echo Couldn't find %WRAPPER_JAR%, downloading it ... | |
| 134 | - echo Downloading from: %DOWNLOAD_URL% | |
| 135 | - powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" | |
| 136 | - echo Finished downloading %WRAPPER_JAR% | |
| 137 | -) | |
| 138 | -@REM End of extension | |
| 139 | - | |
| 140 | -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* | |
| 141 | -if ERRORLEVEL 1 goto error | |
| 142 | -goto end | |
| 143 | - | |
| 144 | -:error | |
| 145 | -set ERROR_CODE=1 | |
| 146 | - | |
| 147 | -:end | |
| 148 | -@endlocal & set ERROR_CODE=%ERROR_CODE% | |
| 149 | - | |
| 150 | -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost | |
| 151 | -@REM check for post script, once with legacy .bat ending and once with .cmd ending | |
| 152 | -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" | |
| 153 | -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" | |
| 154 | -:skipRcPost | |
| 155 | - | |
| 156 | -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' | |
| 157 | -if "%MAVEN_BATCH_PAUSE%" == "on" pause | |
| 158 | - | |
| 159 | -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% | |
| 160 | - | |
| 161 | -exit /B %ERROR_CODE% |
cloud/cloud-server/pom.xml
| ... | ... | @@ -1,56 +0,0 @@ |
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 4 | - <modelVersion>4.0.0</modelVersion> | |
| 5 | - <parent> | |
| 6 | - <groupId>org.springframework.boot</groupId> | |
| 7 | - <artifactId>spring-boot-starter-parent</artifactId> | |
| 8 | - <version>2.1.6.RELEASE</version> | |
| 9 | - <relativePath/> <!-- lookup parent from repository --> | |
| 10 | - </parent> | |
| 11 | - <groupId>com.example</groupId> | |
| 12 | - <artifactId>cloud-server</artifactId> | |
| 13 | - <version>0.0.1-SNAPSHOT</version> | |
| 14 | - <name>cloud-server</name> | |
| 15 | - <description>Demo project for Spring Boot</description> | |
| 16 | - | |
| 17 | - <properties> | |
| 18 | - <java.version>1.8</java.version> | |
| 19 | - <spring-cloud.version>Greenwich.SR2</spring-cloud.version> | |
| 20 | - </properties> | |
| 21 | - | |
| 22 | - <dependencies> | |
| 23 | - <dependency> | |
| 24 | - <groupId>org.springframework.cloud</groupId> | |
| 25 | - <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | |
| 26 | - </dependency> | |
| 27 | - | |
| 28 | - <dependency> | |
| 29 | - <groupId>org.springframework.boot</groupId> | |
| 30 | - <artifactId>spring-boot-starter-test</artifactId> | |
| 31 | - <scope>test</scope> | |
| 32 | - </dependency> | |
| 33 | - </dependencies> | |
| 34 | - | |
| 35 | - <dependencyManagement> | |
| 36 | - <dependencies> | |
| 37 | - <dependency> | |
| 38 | - <groupId>org.springframework.cloud</groupId> | |
| 39 | - <artifactId>spring-cloud-dependencies</artifactId> | |
| 40 | - <version>${spring-cloud.version}</version> | |
| 41 | - <type>pom</type> | |
| 42 | - <scope>import</scope> | |
| 43 | - </dependency> | |
| 44 | - </dependencies> | |
| 45 | - </dependencyManagement> | |
| 46 | - | |
| 47 | - <build> | |
| 48 | - <plugins> | |
| 49 | - <plugin> | |
| 50 | - <groupId>org.springframework.boot</groupId> | |
| 51 | - <artifactId>spring-boot-maven-plugin</artifactId> | |
| 52 | - </plugin> | |
| 53 | - </plugins> | |
| 54 | - </build> | |
| 55 | - | |
| 56 | -</project> |
cloud/cloud-server/src/main/java/com/example/cloudserver/CloudServerApplication.java
| ... | ... | @@ -1,15 +0,0 @@ |
| 1 | -package com.example.cloudserver; | |
| 2 | - | |
| 3 | -import org.springframework.boot.SpringApplication; | |
| 4 | -import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; | |
| 6 | - | |
| 7 | -@EnableEurekaServer | |
| 8 | -@SpringBootApplication | |
| 9 | -public class CloudServerApplication { | |
| 10 | - | |
| 11 | - public static void main(String[] args) { | |
| 12 | - SpringApplication.run(CloudServerApplication.class, args); | |
| 13 | - } | |
| 14 | - | |
| 15 | -} |
cloud/cloud-server/src/main/resources/application.yaml
cloud/cloud-server/src/test/java/com/example/cloudserver/CloudServerApplicationTests.java
| ... | ... | @@ -1,16 +0,0 @@ |
| 1 | -package com.example.cloudserver; | |
| 2 | - | |
| 3 | -import org.junit.Test; | |
| 4 | -import org.junit.runner.RunWith; | |
| 5 | -import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | -import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | - | |
| 8 | -@RunWith(SpringRunner.class) | |
| 9 | -@SpringBootTest | |
| 10 | -public class CloudServerApplicationTests { | |
| 11 | - | |
| 12 | - @Test | |
| 13 | - public void contextLoads() { | |
| 14 | - } | |
| 15 | - | |
| 16 | -} |
| ... | ... | @@ -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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 4 | + <modelVersion>4.0.0</modelVersion> | |
| 5 | + <parent> | |
| 6 | + <groupId>org.springframework.boot</groupId> | |
| 7 | + <artifactId>spring-boot-starter-parent</artifactId> | |
| 8 | + <version>2.1.7.RELEASE</version> | |
| 9 | + <relativePath/> <!-- lookup parent from repository --> | |
| 10 | + </parent> | |
| 11 | + <groupId>com.sincere</groupId> | |
| 12 | + <artifactId>common</artifactId> | |
| 13 | + <version>0.0.1-SNAPSHOT</version> | |
| 14 | + <name>common</name> | |
| 15 | + <description>Demo project for Spring Boot</description> | |
| 16 | + | |
| 17 | + <properties> | |
| 18 | + <java.version>1.8</java.version> | |
| 19 | + </properties> | |
| 20 | + | |
| 21 | + <dependencies> | |
| 22 | + <dependency> | |
| 23 | + <groupId>org.springframework.boot</groupId> | |
| 24 | + <artifactId>spring-boot-starter</artifactId> | |
| 25 | + </dependency> | |
| 26 | + | |
| 27 | + <dependency> | |
| 28 | + <groupId>org.springframework.boot</groupId> | |
| 29 | + <artifactId>spring-boot-starter-test</artifactId> | |
| 30 | + <scope>test</scope> | |
| 31 | + </dependency> | |
| 32 | + | |
| 33 | + <dependency> | |
| 34 | + <groupId>org.springframework.boot</groupId> | |
| 35 | + <artifactId>spring-boot</artifactId> | |
| 36 | + </dependency> | |
| 37 | + <dependency> | |
| 38 | + <groupId>com.baomidou</groupId> | |
| 39 | + <artifactId>mybatis-plus-core</artifactId> | |
| 40 | + <version>3.0.1</version> | |
| 41 | + <scope>compile</scope> | |
| 42 | + </dependency> | |
| 43 | + | |
| 44 | + <dependency> | |
| 45 | + <groupId>com.baomidou</groupId> | |
| 46 | + <artifactId>mybatis-plus-extension</artifactId> | |
| 47 | + <version>3.0.1</version> | |
| 48 | + <scope>compile</scope> | |
| 49 | + </dependency> | |
| 50 | + | |
| 51 | + <dependency> | |
| 52 | + <groupId>org.apache.tomcat.embed</groupId> | |
| 53 | + <artifactId>tomcat-embed-core</artifactId> | |
| 54 | + </dependency> | |
| 55 | + | |
| 56 | + <dependency> | |
| 57 | + <groupId>io.jsonwebtoken</groupId> | |
| 58 | + <artifactId>jjwt</artifactId> | |
| 59 | + <version>0.9.0</version> | |
| 60 | + </dependency> | |
| 61 | + | |
| 62 | + <dependency> | |
| 63 | + <groupId>org.springframework.security</groupId> | |
| 64 | + <artifactId>spring-security-core</artifactId> | |
| 65 | + </dependency> | |
| 66 | + | |
| 67 | + <dependency> | |
| 68 | + <groupId>org.projectlombok</groupId> | |
| 69 | + <artifactId>lombok</artifactId> | |
| 70 | + </dependency> | |
| 71 | + | |
| 72 | + | |
| 73 | + <dependency> | |
| 74 | + <groupId>commons-collections</groupId> | |
| 75 | + <artifactId>commons-collections</artifactId> | |
| 76 | + <version>3.2.2</version> | |
| 77 | + </dependency> | |
| 78 | + | |
| 79 | + </dependencies> | |
| 80 | + | |
| 81 | + <build> | |
| 82 | + <plugins> | |
| 83 | + <plugin> | |
| 84 | + <groupId>org.springframework.boot</groupId> | |
| 85 | + <artifactId>spring-boot-maven-plugin</artifactId> | |
| 86 | + </plugin> | |
| 87 | + </plugins> | |
| 88 | + </build> | |
| 89 | + | |
| 90 | +</project> | ... | ... |
cloud/common/src/main/java/com/sincere/common/CommonApplication.java
0 → 100644
| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | +package com.sincere.common; | |
| 2 | + | |
| 3 | +import org.springframework.boot.SpringApplication; | |
| 4 | +import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | + | |
| 6 | +@SpringBootApplication | |
| 7 | +public class CommonApplication { | |
| 8 | + | |
| 9 | + public static void main(String[] args) { | |
| 10 | + SpringApplication.run(CommonApplication.class, args); | |
| 11 | + } | |
| 12 | + | |
| 13 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/commons/CodeEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +package com.sincere.common.commons; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @Author: [gitgeek] | |
| 5 | + * @Date: [2018-08-02 08:50] | |
| 6 | + * @Description: [ ] | |
| 7 | + * @Version: [1.0.0] | |
| 8 | + * @Copy: [com.zzg] | |
| 9 | + */ | |
| 10 | +public enum CodeEnum { | |
| 11 | + SUCCESS(0), | |
| 12 | + ERROR(1); | |
| 13 | + | |
| 14 | + private Integer code; | |
| 15 | + CodeEnum(Integer code){ | |
| 16 | + this.code = code; | |
| 17 | + } | |
| 18 | + | |
| 19 | + public Integer getCode() { | |
| 20 | + return code; | |
| 21 | + } | |
| 22 | + | |
| 23 | + public void setCode(Integer code) { | |
| 24 | + this.code = code; | |
| 25 | + } | |
| 26 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/commons/PageResult.java
0 → 100644
| ... | ... | @@ -0,0 +1,30 @@ |
| 1 | +package com.sincere.common.commons; | |
| 2 | + | |
| 3 | +import lombok.AllArgsConstructor; | |
| 4 | +import lombok.Builder; | |
| 5 | +import lombok.Data; | |
| 6 | +import lombok.NoArgsConstructor; | |
| 7 | + | |
| 8 | +import java.io.Serializable; | |
| 9 | +import java.util.List; | |
| 10 | + | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * @author 作者 owen E-mail: 624191343@qq.com | |
| 14 | + * @version 创建时间:2017年11月12日 上午22:57:51 | |
| 15 | + * 分页实体类 | |
| 16 | + * total 总数 | |
| 17 | + * code 是否成功 | |
| 18 | + * data 当前页结果集 | |
| 19 | + */ | |
| 20 | +@Data | |
| 21 | +@Builder | |
| 22 | +@NoArgsConstructor | |
| 23 | +@AllArgsConstructor | |
| 24 | +public class PageResult<T> implements Serializable { | |
| 25 | + | |
| 26 | + private static final long serialVersionUID = -275582248840137389L; | |
| 27 | + private Long count; | |
| 28 | + private int code; | |
| 29 | + private List<T> data; | |
| 30 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/commons/Result.java
0 → 100644
| ... | ... | @@ -0,0 +1,49 @@ |
| 1 | +package com.sincere.common.commons; | |
| 2 | + | |
| 3 | +import lombok.AllArgsConstructor; | |
| 4 | +import lombok.Data; | |
| 5 | +import lombok.NoArgsConstructor; | |
| 6 | + | |
| 7 | +import java.io.Serializable; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * @Author: [zhangzhiguang] | |
| 11 | + * @Date: [2018-08-01 23:39] | |
| 12 | + * @Description: [ ] | |
| 13 | + * @Version: [1.0.0] | |
| 14 | + * @Copy: [com.zzg] | |
| 15 | + */ | |
| 16 | +@Data | |
| 17 | +@NoArgsConstructor | |
| 18 | +@AllArgsConstructor | |
| 19 | +public class Result<T> implements Serializable { | |
| 20 | + | |
| 21 | + private T datas; | |
| 22 | + private Integer resp_code; | |
| 23 | + private String resp_msg; | |
| 24 | + | |
| 25 | + public static <T> Result<T> succeed(String msg) { | |
| 26 | + return succeedWith(null, CodeEnum.SUCCESS.getCode(),msg); | |
| 27 | + } | |
| 28 | + | |
| 29 | + public static <T> Result<T> succeed(T model, String msg) { | |
| 30 | + return succeedWith(model, CodeEnum.SUCCESS.getCode(),msg); | |
| 31 | + } | |
| 32 | + | |
| 33 | + public static <T> Result<T> succeedWith(T datas, Integer code,String msg) { | |
| 34 | + return new Result<T>(datas, code, msg); | |
| 35 | + } | |
| 36 | + | |
| 37 | + public static <T> Result<T> failed(String msg) { | |
| 38 | + return failedWith(null, CodeEnum.ERROR.getCode(), msg); | |
| 39 | + } | |
| 40 | + | |
| 41 | + public static <T> Result<T> failed(T model,String msg) { | |
| 42 | + return failedWith(model, CodeEnum.ERROR.getCode(), msg); | |
| 43 | + } | |
| 44 | + | |
| 45 | + public static <T> Result<T> failedWith(T datas, Integer code, String msg) { | |
| 46 | + return new Result<T>( datas, code, msg); | |
| 47 | + } | |
| 48 | + | |
| 49 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/config/DataSourceHolder.java
0 → 100644
| ... | ... | @@ -0,0 +1,25 @@ |
| 1 | +package com.sincere.common.config; | |
| 2 | + | |
| 3 | + | |
| 4 | +/** | |
| 5 | + * 用于数据源切换 | |
| 6 | + * | |
| 7 | + */ | |
| 8 | +public class DataSourceHolder { | |
| 9 | + | |
| 10 | + private static final ThreadLocal<DataSourceKey> dataSourceKey = new ThreadLocal<>(); | |
| 11 | + | |
| 12 | + public static DataSourceKey getDataSourceKey() { | |
| 13 | + return dataSourceKey.get(); | |
| 14 | + } | |
| 15 | + | |
| 16 | + public static void setDataSourceKey(DataSourceKey type) { | |
| 17 | + dataSourceKey.set(type); | |
| 18 | + } | |
| 19 | + | |
| 20 | + public static void clearDataSourceKey() { | |
| 21 | + dataSourceKey.remove(); | |
| 22 | + } | |
| 23 | + | |
| 24 | + | |
| 25 | +} | |
| 0 | 26 | \ No newline at end of file | ... | ... |
cloud/common/src/main/java/com/sincere/common/config/DataSourceKey.java
0 → 100644
cloud/common/src/main/java/com/sincere/common/constants/CommonConstants.java
0 → 100644
| ... | ... | @@ -0,0 +1,21 @@ |
| 1 | +package com.sincere.common.constants; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/10/17 15:18 | |
| 6 | + * @description: | |
| 7 | + */ | |
| 8 | +public interface CommonConstants { | |
| 9 | + | |
| 10 | + /** | |
| 11 | + * 树的根节点值 | |
| 12 | + */ | |
| 13 | + Integer TREE_ROOT = -1; | |
| 14 | + | |
| 15 | + String PANDA_REDIS_LIST_LEY = "panda_client_id_to_access:cloud"; | |
| 16 | + | |
| 17 | + String DEFAULT_PARAMTER_KEY = "parameter"; | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/constants/MqQueueNameConstant.java
0 → 100644
| ... | ... | @@ -0,0 +1,21 @@ |
| 1 | +package com.sincere.common.constants; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/11/14 15:42 | |
| 6 | + */ | |
| 7 | +public interface MqQueueNameConstant { | |
| 8 | + | |
| 9 | + /** | |
| 10 | + * 系统日志队列 | |
| 11 | + */ | |
| 12 | + String SYS_LOG_QUEUE= "sys_log_queue"; | |
| 13 | + /** | |
| 14 | + * 短信验证码队列 | |
| 15 | + */ | |
| 16 | + String MOBILE_CODE_QUEUE= "mobile_code_queue"; | |
| 17 | + /** | |
| 18 | + * 邮件队列 | |
| 19 | + */ | |
| 20 | + String MAIL_CODE_QUEUE= "mail_code_queue"; | |
| 21 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/constants/PandaServiceNameConstants.java
0 → 100644
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +package com.sincere.common.constants; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/11/14 15:52 | |
| 6 | + */ | |
| 7 | +public interface PandaServiceNameConstants { | |
| 8 | + | |
| 9 | + String PANDA_AUTH = "PANDA_AUTH"; | |
| 10 | + String PANDA_COMMON = "PANDA_COMMON"; | |
| 11 | + String PANDA_CONFIG_SERVER = "PANDA_CONFIG_SERVER"; | |
| 12 | + String PANDA_GATEWAY = "PANDA_GATEWAY"; | |
| 13 | + String PANDA_SERVER = "PANDA_SERVER"; | |
| 14 | + String PANDA_USER_SERVICE = "PANDA_USER_SERVICE"; | |
| 15 | + String PANDA_GEN_SERVICE = "PANDA_GEN_SERVICE"; | |
| 16 | + | |
| 17 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/constants/SecurityConstants.java
0 → 100644
| ... | ... | @@ -0,0 +1,61 @@ |
| 1 | +package com.sincere.common.constants; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/10/9 15:10 | |
| 6 | + * @description: 安全配置常量 | |
| 7 | + */ | |
| 8 | +public interface SecurityConstants { | |
| 9 | + | |
| 10 | + /** | |
| 11 | + * token的header key | |
| 12 | + */ | |
| 13 | + String TOKEN_HEADER = "Authorization"; | |
| 14 | + | |
| 15 | + String CLOUD = "panda"; | |
| 16 | + | |
| 17 | + String CLOUD_PREFIX = "panda_"; | |
| 18 | + | |
| 19 | + /** | |
| 20 | + * jwt 加密key | |
| 21 | + */ | |
| 22 | + String SIGN_KEY = "PANDA"; | |
| 23 | + | |
| 24 | + /** | |
| 25 | + * sys_oauth_client_details 字段 | |
| 26 | + */ | |
| 27 | + String CLIENT_FIELDS = "client_id, client_secret, resources_ids, scope, authorized_grant_types," | |
| 28 | + + "web_server_redirect_uri, authorities, access_token_validity," | |
| 29 | + + "refresh_token_validity, addition_information, autoapprove"; | |
| 30 | + | |
| 31 | + /** | |
| 32 | + * jdbcClientDetailsService查询sql | |
| 33 | + */ | |
| 34 | + String BASE_FIND_STATEMENT = "select " + CLIENT_FIELDS + " from sys_oauth_client_details"; | |
| 35 | + | |
| 36 | + /** | |
| 37 | + * 默认查询语句 | |
| 38 | + */ | |
| 39 | + String DEFAULT_FIND_STATEMENT = BASE_FIND_STATEMENT + " order by client_id"; | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * 根据client_id查询 | |
| 43 | + */ | |
| 44 | + String DEFAULT_FIND_STATEMENT_BY_CLIENT_ID = BASE_FIND_STATEMENT + " where client_id = ?"; | |
| 45 | + | |
| 46 | + | |
| 47 | + String SPRING_SECURITY_MOBILE_KEY = "mobile"; | |
| 48 | + | |
| 49 | + String SPRING_SECURITY_CODE_KEY = "code"; | |
| 50 | + | |
| 51 | + /** | |
| 52 | + * 手机验证码登录的地址 | |
| 53 | + */ | |
| 54 | + String SPRING_SECURITY_MOBILE_TOKEN_URL = "/mobile/token"; | |
| 55 | + | |
| 56 | + | |
| 57 | + String REDIS_CODE_PREFIX = "panda_code:"; | |
| 58 | + | |
| 59 | + Integer REDIS_CODE_EXPIRE = 60; | |
| 60 | + | |
| 61 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/constants/UserConstants.java
0 → 100644
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +package com.sincere.common.constants; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/10/17 09:24 | |
| 6 | + * @description: | |
| 7 | + */ | |
| 8 | +public interface UserConstants { | |
| 9 | + | |
| 10 | + /** | |
| 11 | + * jwt中 用户id的key | |
| 12 | + */ | |
| 13 | + String USER_ID = "userId"; | |
| 14 | + | |
| 15 | + | |
| 16 | + /** | |
| 17 | + * jwt中 用户userName的key | |
| 18 | + */ | |
| 19 | + String USER_NAME = "userName"; | |
| 20 | + | |
| 21 | + /** | |
| 22 | + * jwt中 角色集合的key | |
| 23 | + */ | |
| 24 | + String AUTHORITIES = "authorities"; | |
| 25 | + | |
| 26 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/entity/SysUser.java
0 → 100644
| ... | ... | @@ -0,0 +1,99 @@ |
| 1 | +package com.sincere.common.entity; | |
| 2 | + | |
| 3 | + | |
| 4 | +import lombok.Data; | |
| 5 | +import lombok.experimental.Accessors; | |
| 6 | + | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * <p> | |
| 11 | + * 用户表 | |
| 12 | + * </p> | |
| 13 | + * | |
| 14 | + * @author yukong | |
| 15 | + * @since 2018-10-08 | |
| 16 | + */ | |
| 17 | +@Data | |
| 18 | +@Accessors(chain = true) | |
| 19 | +public class SysUser { | |
| 20 | + | |
| 21 | + private static final long serialVersionUID = 1L; | |
| 22 | + | |
| 23 | + /** | |
| 24 | + * 主键ID | |
| 25 | + */ | |
| 26 | + private Integer userId; | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * 用户名 | |
| 30 | + */ | |
| 31 | + private String username; | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 密码 | |
| 35 | + */ | |
| 36 | + private String password; | |
| 37 | + | |
| 38 | + /** | |
| 39 | + * 邮箱 | |
| 40 | + */ | |
| 41 | + private String email; | |
| 42 | + | |
| 43 | + /** | |
| 44 | + * 手机号码 | |
| 45 | + */ | |
| 46 | + private String mobile; | |
| 47 | + | |
| 48 | + /** | |
| 49 | + * qq号码 | |
| 50 | + */ | |
| 51 | + private String qq; | |
| 52 | + | |
| 53 | + /** | |
| 54 | + * 微信号码 | |
| 55 | + */ | |
| 56 | + private String wechat; | |
| 57 | + | |
| 58 | + /** | |
| 59 | + * 微博url | |
| 60 | + */ | |
| 61 | + private String weibo; | |
| 62 | + | |
| 63 | + /** | |
| 64 | + * 头像url | |
| 65 | + */ | |
| 66 | + private String avatar; | |
| 67 | + | |
| 68 | + /** | |
| 69 | + * qq openid | |
| 70 | + */ | |
| 71 | + private String qqOpenid; | |
| 72 | + | |
| 73 | + /** | |
| 74 | + * 微信openid | |
| 75 | + */ | |
| 76 | + private String wechatOpenid; | |
| 77 | + | |
| 78 | + /** | |
| 79 | + * 微博openid | |
| 80 | + */ | |
| 81 | + private String weiboOpenid; | |
| 82 | + | |
| 83 | + /** | |
| 84 | + * 创建时间 | |
| 85 | + */ | |
| 86 | + private LocalDateTime createTime; | |
| 87 | + | |
| 88 | + /** | |
| 89 | + * 更新时间 | |
| 90 | + */ | |
| 91 | + private LocalDateTime modifyTime; | |
| 92 | + | |
| 93 | + /** | |
| 94 | + * 是否删除 0-未删除 1-删除 | |
| 95 | + */ | |
| 96 | + private String delFlag; | |
| 97 | + | |
| 98 | + | |
| 99 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/ApiErrorCodeEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,57 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | + | |
| 4 | +import com.baomidou.mybatisplus.extension.api.IErrorCode; | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * @author yukong | |
| 8 | + * @date 2019-04-20 18:54 | |
| 9 | + */ | |
| 10 | +public enum ApiErrorCodeEnum implements IErrorCode { | |
| 11 | + /** | |
| 12 | + * 失败 | |
| 13 | + */ | |
| 14 | + FAILED(-1, "失败"), | |
| 15 | + /** | |
| 16 | + * 成功 | |
| 17 | + */ | |
| 18 | + SUCCESS(0, "成功"), | |
| 19 | + | |
| 20 | + /** | |
| 21 | + * 认证失败 | |
| 22 | + */ | |
| 23 | + AUTHORIZED_FAILED(-2, "用户名或密码错误"); | |
| 24 | + | |
| 25 | + private final long code; | |
| 26 | + private final String msg; | |
| 27 | + | |
| 28 | + ApiErrorCodeEnum(final long code, final String msg) { | |
| 29 | + this.code = code; | |
| 30 | + this.msg = msg; | |
| 31 | + } | |
| 32 | + | |
| 33 | + public static ApiErrorCodeEnum fromCode(long code) { | |
| 34 | + ApiErrorCodeEnum[] ecs = ApiErrorCodeEnum.values(); | |
| 35 | + for (ApiErrorCodeEnum ec : ecs) { | |
| 36 | + if (ec.getCode() == code) { | |
| 37 | + return ec; | |
| 38 | + } | |
| 39 | + } | |
| 40 | + return SUCCESS; | |
| 41 | + } | |
| 42 | + | |
| 43 | + @Override | |
| 44 | + public long getCode() { | |
| 45 | + return code; | |
| 46 | + } | |
| 47 | + | |
| 48 | + @Override | |
| 49 | + public String getMsg() { | |
| 50 | + return msg; | |
| 51 | + } | |
| 52 | + | |
| 53 | + @Override | |
| 54 | + public String toString() { | |
| 55 | + return String.format(" ErrorCode:{code=%s, msg=%s} ", code, msg); | |
| 56 | + } | |
| 57 | +} | |
| 0 | 58 | \ No newline at end of file | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/DataStatusEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,30 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/10/9 14:35 | |
| 6 | + * @description: 数据状态枚举 | |
| 7 | + */ | |
| 8 | +public enum DataStatusEnum { | |
| 9 | + | |
| 10 | + NORMAL("0", "正常"), | |
| 11 | + LOCK("1","删除"); | |
| 12 | + | |
| 13 | + | |
| 14 | + private String code; | |
| 15 | + | |
| 16 | + private String message; | |
| 17 | + | |
| 18 | + DataStatusEnum(String code, String message) { | |
| 19 | + this.code = code; | |
| 20 | + this.message = message; | |
| 21 | + } | |
| 22 | + | |
| 23 | + public String getCode() { | |
| 24 | + return code; | |
| 25 | + } | |
| 26 | + | |
| 27 | + public String getMessage() { | |
| 28 | + return message; | |
| 29 | + } | |
| 30 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/JobDataStatusEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author yukong | |
| 5 | + * @date 2018/10/9 14:35 | |
| 6 | + * @description job任务状态枚举 | |
| 7 | + */ | |
| 8 | +public enum JobDataStatusEnum { | |
| 9 | + | |
| 10 | + /** | |
| 11 | + * 运行中 | |
| 12 | + */ | |
| 13 | + UP(0, "运行"), | |
| 14 | + | |
| 15 | + /** | |
| 16 | + * 停止 | |
| 17 | + */ | |
| 18 | + STOP(1,"停止"); | |
| 19 | + | |
| 20 | + | |
| 21 | + private Integer code; | |
| 22 | + | |
| 23 | + private String message; | |
| 24 | + | |
| 25 | + JobDataStatusEnum(Integer code, String message) { | |
| 26 | + this.code = code; | |
| 27 | + this.message = message; | |
| 28 | + } | |
| 29 | + | |
| 30 | + public Integer getCode() { | |
| 31 | + return code; | |
| 32 | + } | |
| 33 | + | |
| 34 | + public String getMessage() { | |
| 35 | + return message; | |
| 36 | + } | |
| 37 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/OperationStatusEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,30 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/10/9 14:35 | |
| 6 | + * @description: 用户状态枚举 | |
| 7 | + */ | |
| 8 | +public enum OperationStatusEnum { | |
| 9 | + | |
| 10 | + SUCCESS("0", "成功"), | |
| 11 | + FAIL("1","失败"); | |
| 12 | + | |
| 13 | + | |
| 14 | + private String code; | |
| 15 | + | |
| 16 | + private String message; | |
| 17 | + | |
| 18 | + OperationStatusEnum(String code, String message) { | |
| 19 | + this.code = code; | |
| 20 | + this.message = message; | |
| 21 | + } | |
| 22 | + | |
| 23 | + public String getCode() { | |
| 24 | + return code; | |
| 25 | + } | |
| 26 | + | |
| 27 | + public String getMessage() { | |
| 28 | + return message; | |
| 29 | + } | |
| 30 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/PasswordEncoderEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,27 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author yukong | |
| 5 | + * @date 2019-04-23 14:15 | |
| 6 | + */ | |
| 7 | +public enum PasswordEncoderEnum { | |
| 8 | + | |
| 9 | + /** | |
| 10 | + * bcrypt加密 | |
| 11 | + */ | |
| 12 | + BCRYPT("{bcrypt}"), | |
| 13 | + /** | |
| 14 | + * 明文 | |
| 15 | + */ | |
| 16 | + NOOP("{noop}"); | |
| 17 | + | |
| 18 | + private String value; | |
| 19 | + | |
| 20 | + private PasswordEncoderEnum(String value){ | |
| 21 | + this.value = value; | |
| 22 | + } | |
| 23 | + | |
| 24 | + public String getValue() { | |
| 25 | + return value; | |
| 26 | + } | |
| 27 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/ResourceTypeEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/10/17 16:03 | |
| 6 | + * @description: 资源类型枚举 | |
| 7 | + */ | |
| 8 | +public enum ResourceTypeEnum { | |
| 9 | + MENU("0", "菜单"), | |
| 10 | + BUTTON("1","按钮"); | |
| 11 | + | |
| 12 | + | |
| 13 | + private String code; | |
| 14 | + | |
| 15 | + private String message; | |
| 16 | + | |
| 17 | + ResourceTypeEnum(String code, String message) { | |
| 18 | + this.code = code; | |
| 19 | + this.message = message; | |
| 20 | + } | |
| 21 | + | |
| 22 | + public String getCode() { | |
| 23 | + return code; | |
| 24 | + } | |
| 25 | + | |
| 26 | + public String getMessage() { | |
| 27 | + return message; | |
| 28 | + } | |
| 29 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/ResponseCodeEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,36 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/10/12 10:51 | |
| 6 | + * @description: 响应信息code枚举 | |
| 7 | + */ | |
| 8 | +public enum ResponseCodeEnum { | |
| 9 | + | |
| 10 | + SUCCESS(0, "success"), | |
| 11 | + | |
| 12 | + NOT_LOGIN(-1,"need login"), | |
| 13 | + | |
| 14 | + FAIL(-1,"fail"), | |
| 15 | + | |
| 16 | + PERMISSION_DEFINED(2,"permission defined"); | |
| 17 | + | |
| 18 | + | |
| 19 | + private Integer code; | |
| 20 | + | |
| 21 | + private String message; | |
| 22 | + | |
| 23 | + ResponseCodeEnum(Integer code, String message) { | |
| 24 | + this.code = code; | |
| 25 | + this.message = message; | |
| 26 | + } | |
| 27 | + | |
| 28 | + public Integer getCode() { | |
| 29 | + return code; | |
| 30 | + } | |
| 31 | + | |
| 32 | + public String getMessage() { | |
| 33 | + return message; | |
| 34 | + } | |
| 35 | + | |
| 36 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/SmsMessageChannnelEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,27 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * @author: yukong | |
| 7 | + * @date: 2018/12/3 10:44 | |
| 8 | + */ | |
| 9 | + | |
| 10 | +public enum SmsMessageChannnelEnum { | |
| 11 | + | |
| 12 | + /** | |
| 13 | + * 腾讯云 | |
| 14 | + */ | |
| 15 | + TENCENT_CLOUD("smsTencentCloudMessageHandler", "腾讯云"); | |
| 16 | + | |
| 17 | + @Getter | |
| 18 | + String code; | |
| 19 | + | |
| 20 | + @Getter | |
| 21 | + String desc; | |
| 22 | + | |
| 23 | + private SmsMessageChannnelEnum(String code, String desc) { | |
| 24 | + this.code = code; | |
| 25 | + this.desc = desc; | |
| 26 | + } | |
| 27 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/SmsTemplateEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +import lombok.Getter; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * @author: yukong | |
| 7 | + * @date: 2018/12/14 14:53 | |
| 8 | + */ | |
| 9 | +public enum SmsTemplateEnum { | |
| 10 | + | |
| 11 | + /** | |
| 12 | + * 腾讯云 | |
| 13 | + */ | |
| 14 | + LOGIN_CODE("程序咖啡厅", "238684"); | |
| 15 | + | |
| 16 | + @Getter | |
| 17 | + String signName; | |
| 18 | + | |
| 19 | + @Getter | |
| 20 | + String tempalte; | |
| 21 | + | |
| 22 | + private SmsTemplateEnum(String signName, String tempalte) { | |
| 23 | + this.signName = signName; | |
| 24 | + this.tempalte = tempalte; | |
| 25 | + } | |
| 26 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/SysLogTypeEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/10/17 16:03 | |
| 6 | + * @description: 资源类型枚举 | |
| 7 | + */ | |
| 8 | +public enum SysLogTypeEnum { | |
| 9 | + LOGIN("0", "登录日志"), | |
| 10 | + OPERATOR("1","操作日志"); | |
| 11 | + | |
| 12 | + | |
| 13 | + private String code; | |
| 14 | + | |
| 15 | + private String message; | |
| 16 | + | |
| 17 | + SysLogTypeEnum(String code, String message) { | |
| 18 | + this.code = code; | |
| 19 | + this.message = message; | |
| 20 | + } | |
| 21 | + | |
| 22 | + public String getCode() { | |
| 23 | + return code; | |
| 24 | + } | |
| 25 | + | |
| 26 | + public String getMessage() { | |
| 27 | + return message; | |
| 28 | + } | |
| 29 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/enums/UserStatusEnum.java
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package com.sincere.common.enums; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @author: yukong | |
| 5 | + * @date: 2018/10/9 14:35 | |
| 6 | + * @description: 用户状态枚举 | |
| 7 | + */ | |
| 8 | +public enum UserStatusEnum { | |
| 9 | + | |
| 10 | + /** | |
| 11 | + * 正常 | |
| 12 | + */ | |
| 13 | + NORMAL("0", "正常"), | |
| 14 | + | |
| 15 | + /** | |
| 16 | + * 锁定 | |
| 17 | + */ | |
| 18 | + LOCK("1","锁定"); | |
| 19 | + | |
| 20 | + | |
| 21 | + private String code; | |
| 22 | + | |
| 23 | + private String message; | |
| 24 | + | |
| 25 | + UserStatusEnum(String code, String message) { | |
| 26 | + this.code = code; | |
| 27 | + this.message = message; | |
| 28 | + } | |
| 29 | + | |
| 30 | + public String getCode() { | |
| 31 | + return code; | |
| 32 | + } | |
| 33 | + | |
| 34 | + public String getMessage() { | |
| 35 | + return message; | |
| 36 | + } | |
| 37 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/model/log/SysLog.java
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package com.sincere.common.model.log; | |
| 2 | + | |
| 3 | +import lombok.AllArgsConstructor; | |
| 4 | +import lombok.Builder; | |
| 5 | +import lombok.Data; | |
| 6 | +import lombok.NoArgsConstructor; | |
| 7 | + | |
| 8 | +import java.io.Serializable; | |
| 9 | +import java.util.Date; | |
| 10 | + | |
| 11 | + | |
| 12 | +/** | |
| 13 | +* @author 作者 owen E-mail: 624191343@qq.com | |
| 14 | +* @version 创建时间:2017年11月12日 上午22:57:51 | |
| 15 | +* 日志实体 | |
| 16 | + */ | |
| 17 | +@Builder | |
| 18 | +@Data | |
| 19 | +@NoArgsConstructor | |
| 20 | +@AllArgsConstructor | |
| 21 | +public class SysLog implements Serializable { | |
| 22 | + | |
| 23 | + private static final long serialVersionUID = -5398795297842978376L; | |
| 24 | + | |
| 25 | + private Long id; | |
| 26 | +// 用户名 | |
| 27 | + private String username; | |
| 28 | +// 归属模块 | |
| 29 | + private String module; | |
| 30 | +// 执行方法的参数值 | |
| 31 | + private String params; | |
| 32 | + private String remark; | |
| 33 | +// 是否执行成功 | |
| 34 | + private Boolean flag; | |
| 35 | + | |
| 36 | + private Date createTime; | |
| 37 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/model/system/LoginAppUser.java
0 → 100644
| ... | ... | @@ -0,0 +1,93 @@ |
| 1 | +package com.sincere.common.model.system; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.annotation.JsonIgnore; | |
| 4 | +import lombok.Getter; | |
| 5 | +import lombok.Setter; | |
| 6 | +import org.springframework.security.core.GrantedAuthority; | |
| 7 | +import org.springframework.security.core.authority.SimpleGrantedAuthority; | |
| 8 | +import org.springframework.security.core.userdetails.UserDetails; | |
| 9 | +import org.springframework.util.CollectionUtils; | |
| 10 | + | |
| 11 | +import java.io.Serializable; | |
| 12 | +import java.util.Collection; | |
| 13 | +import java.util.HashSet; | |
| 14 | +import java.util.Set; | |
| 15 | + | |
| 16 | +/** | |
| 17 | + * 用户实体绑定spring security | |
| 18 | + */ | |
| 19 | +@Getter | |
| 20 | +@Setter | |
| 21 | +public class LoginAppUser extends SysUser implements UserDetails { | |
| 22 | + | |
| 23 | + /** | |
| 24 | + * | |
| 25 | + */ | |
| 26 | + private static final long serialVersionUID = -3685249101751401211L; | |
| 27 | + | |
| 28 | + private Set<SysRole> sysRoles; | |
| 29 | + | |
| 30 | + private Set<String> permissions; | |
| 31 | + | |
| 32 | + /*** | |
| 33 | + * 权限重写 | |
| 34 | + */ | |
| 35 | + @JsonIgnore | |
| 36 | + @Override | |
| 37 | + public Collection<? extends GrantedAuthority> getAuthorities() { | |
| 38 | + Collection<GrantedAuthority> collection = new HashSet<>(); | |
| 39 | + if (!CollectionUtils.isEmpty(sysRoles)) { | |
| 40 | + sysRoles.parallelStream().forEach(role -> { | |
| 41 | + if (role.getCode().startsWith("ROLE_")) { | |
| 42 | + collection.add(new SimpleGrantedAuthority(role.getCode())); | |
| 43 | + } else { | |
| 44 | + collection.add(new SimpleGrantedAuthority("ROLE_" + role.getCode())); | |
| 45 | + } | |
| 46 | + }); | |
| 47 | + } | |
| 48 | + | |
| 49 | + if (!CollectionUtils.isEmpty(permissions)) { | |
| 50 | + permissions.parallelStream().forEach(per -> { | |
| 51 | + collection.add(new SimpleGrantedAuthority(per)); | |
| 52 | + }); | |
| 53 | + } | |
| 54 | + | |
| 55 | + return collection; | |
| 56 | + } | |
| 57 | + | |
| 58 | + | |
| 59 | + @JsonIgnore | |
| 60 | + public Collection<? extends GrantedAuthority> putAll( Collection<GrantedAuthority> collections) { | |
| 61 | + Collection<GrantedAuthority> collection = new HashSet<>(); | |
| 62 | + | |
| 63 | + collection.addAll(collections) ; | |
| 64 | + | |
| 65 | + return collection; | |
| 66 | + } | |
| 67 | + | |
| 68 | + | |
| 69 | + @Override | |
| 70 | + public boolean isAccountNonExpired() { | |
| 71 | + return true; | |
| 72 | + } | |
| 73 | + | |
| 74 | + @Override | |
| 75 | + public boolean isAccountNonLocked() { | |
| 76 | + return true; | |
| 77 | + } | |
| 78 | + | |
| 79 | + @Override | |
| 80 | + public boolean isCredentialsNonExpired() { | |
| 81 | + return true; | |
| 82 | + } | |
| 83 | + | |
| 84 | + @Override | |
| 85 | + public boolean isEnabled() { | |
| 86 | + return getEnabled(); | |
| 87 | + } | |
| 88 | + | |
| 89 | + @Override | |
| 90 | + protected Serializable pkVal() { | |
| 91 | + return null; | |
| 92 | + } | |
| 93 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/model/system/SysMenu.java
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package com.sincere.common.model.system; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.databind.annotation.JsonSerialize; | |
| 4 | +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; | |
| 5 | +import lombok.Data; | |
| 6 | + | |
| 7 | +import java.io.Serializable; | |
| 8 | +import java.util.Date; | |
| 9 | +import java.util.List; | |
| 10 | +import java.util.Set; | |
| 11 | + | |
| 12 | +@Data | |
| 13 | +public class SysMenu implements Serializable { | |
| 14 | + | |
| 15 | + private static final long serialVersionUID = 749360940290141180L; | |
| 16 | + @JsonSerialize(using= ToStringSerializer.class) | |
| 17 | + private Long id; | |
| 18 | + private Long parentId; | |
| 19 | + private String name; | |
| 20 | + private String css; | |
| 21 | + private String url; | |
| 22 | + private String path; | |
| 23 | + private Integer sort; | |
| 24 | + private Date createTime; | |
| 25 | + private Date updateTime; | |
| 26 | + private Integer isMenu; | |
| 27 | + private Boolean hidden; | |
| 28 | + | |
| 29 | + | |
| 30 | + private List<SysMenu> subMenus; | |
| 31 | + | |
| 32 | + private Long roleId; | |
| 33 | + private Set<Long> menuIds; | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/model/system/SysPermission.java
0 → 100644
| ... | ... | @@ -0,0 +1,47 @@ |
| 1 | +package com.sincere.common.model.system; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.annotation.IdType; | |
| 4 | +import com.baomidou.mybatisplus.annotation.TableField; | |
| 5 | +import com.baomidou.mybatisplus.annotation.TableId; | |
| 6 | +import com.baomidou.mybatisplus.annotation.TableName; | |
| 7 | +import com.baomidou.mybatisplus.extension.activerecord.Model; | |
| 8 | +import com.fasterxml.jackson.databind.annotation.JsonSerialize; | |
| 9 | +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; | |
| 10 | +import lombok.Data; | |
| 11 | + | |
| 12 | +import java.io.Serializable; | |
| 13 | +import java.util.Date; | |
| 14 | +import java.util.Set; | |
| 15 | + | |
| 16 | + | |
| 17 | +/** | |
| 18 | + * @author 作者 owen E-mail: 624191343@qq.com | |
| 19 | + * @version 创建时间:2017年11月12日 上午22:57:51 | |
| 20 | + * 权限标识 | |
| 21 | + */ | |
| 22 | +@Data | |
| 23 | +@TableName("sys_permission") | |
| 24 | +public class SysPermission extends Model<SysPermission> implements Serializable { | |
| 25 | + /** | |
| 26 | + * | |
| 27 | + */ | |
| 28 | + private static final long serialVersionUID = 1389727646460449239L; | |
| 29 | + @TableId(value="id",type= IdType.ID_WORKER) //雪花算法 id生成策略 | |
| 30 | + @JsonSerialize(using= ToStringSerializer.class) | |
| 31 | + private Long id; | |
| 32 | + private String permission; | |
| 33 | + private String name; | |
| 34 | + @TableField(value="createTime") | |
| 35 | + private Date createTime; | |
| 36 | + @TableField(value="updateTime") | |
| 37 | + private Date updateTime; | |
| 38 | + @TableField(exist=false) | |
| 39 | + private Long roleId; | |
| 40 | + @TableField(exist=false) | |
| 41 | + private Set<Long> authIds; | |
| 42 | + | |
| 43 | + @Override | |
| 44 | + protected Serializable pkVal() { | |
| 45 | + return null; | |
| 46 | + } | |
| 47 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/model/system/SysRole.java
0 → 100644
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +package com.sincere.common.model.system; | |
| 2 | + | |
| 3 | +import com.fasterxml.jackson.databind.annotation.JsonSerialize; | |
| 4 | +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; | |
| 5 | +import lombok.Data; | |
| 6 | + | |
| 7 | +import java.io.Serializable; | |
| 8 | +import java.util.Date; | |
| 9 | + | |
| 10 | +/** | |
| 11 | + * @author 作者 owen E-mail: 624191343@qq.com | |
| 12 | + * @version 创建时间:2017年11月12日 上午22:57:51 | |
| 13 | + * 角色 | |
| 14 | + */ | |
| 15 | +@Data | |
| 16 | +public class SysRole implements Serializable { | |
| 17 | + | |
| 18 | + /** | |
| 19 | + * | |
| 20 | + */ | |
| 21 | + private static final long serialVersionUID = 4497149010220586111L; | |
| 22 | + @JsonSerialize(using= ToStringSerializer.class) | |
| 23 | + private Long id; | |
| 24 | + private String code; | |
| 25 | + private String name; | |
| 26 | + private Date createTime; | |
| 27 | + private Date updateTime; | |
| 28 | + private Long userId; | |
| 29 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/model/system/SysUser.java
0 → 100644
| ... | ... | @@ -0,0 +1,60 @@ |
| 1 | +package com.sincere.common.model.system; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.annotation.IdType; | |
| 4 | +import com.baomidou.mybatisplus.annotation.TableField; | |
| 5 | +import com.baomidou.mybatisplus.annotation.TableId; | |
| 6 | +import com.baomidou.mybatisplus.annotation.TableName; | |
| 7 | +import com.baomidou.mybatisplus.extension.activerecord.Model; | |
| 8 | +import com.fasterxml.jackson.databind.annotation.JsonSerialize; | |
| 9 | +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; | |
| 10 | +import lombok.Data; | |
| 11 | + | |
| 12 | +import java.io.Serializable; | |
| 13 | +import java.util.Date; | |
| 14 | +import java.util.List; | |
| 15 | + | |
| 16 | +/** | |
| 17 | + * @author 作者 owen E-mail: 624191343@qq.com | |
| 18 | + * @version 创建时间:2017年11月12日 上午22:57:51 | |
| 19 | + * 用户实体 | |
| 20 | + */ | |
| 21 | +@Data | |
| 22 | +@TableName("sys_user") | |
| 23 | +public class SysUser extends Model<SysUser> implements Serializable { | |
| 24 | + | |
| 25 | + /** | |
| 26 | + * | |
| 27 | + */ | |
| 28 | + private static final long serialVersionUID = -5886012896705137070L; | |
| 29 | + @TableId(value="id",type= IdType.ID_WORKER) //雪花算法 id生成策略 | |
| 30 | + @JsonSerialize(using= ToStringSerializer.class) | |
| 31 | + private Long id; | |
| 32 | + private String username; | |
| 33 | + private String password; | |
| 34 | + private String nickname; | |
| 35 | + private String headImgUrl; | |
| 36 | + private String phone; | |
| 37 | + private Integer sex; | |
| 38 | + private Boolean enabled; | |
| 39 | + private String type; | |
| 40 | + @TableField(value="createTime") | |
| 41 | + private Date createTime; | |
| 42 | + @TableField(value="updateTime") | |
| 43 | + private Date updateTime; | |
| 44 | + | |
| 45 | + @TableField(exist=false) | |
| 46 | + private List<SysRole> roles; | |
| 47 | + | |
| 48 | + @TableField(exist=false) | |
| 49 | + private String roleId; | |
| 50 | + | |
| 51 | + @TableField(exist=false) | |
| 52 | + private String oldPassword; | |
| 53 | + @TableField(exist=false) | |
| 54 | + private String newPassword; | |
| 55 | + | |
| 56 | + @Override | |
| 57 | + protected Serializable pkVal() { | |
| 58 | + return null; | |
| 59 | + } | |
| 60 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/model/system/SysUserRole.java
0 → 100644
| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | +package com.sincere.common.model.system; | |
| 2 | + | |
| 3 | +import lombok.Data; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * @Author: [gitgeek] | |
| 7 | + * @Date: [2018-08-06 21:29] | |
| 8 | + * @Description: [ ] | |
| 9 | + * @Version: [1.0.0] | |
| 10 | + * @Copy: [com.zzg] | |
| 11 | + */ | |
| 12 | +@Data | |
| 13 | +public class SysUserRole { | |
| 14 | + | |
| 15 | + private String userId; | |
| 16 | + private String roleId; | |
| 17 | + | |
| 18 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/model/system/constants/UserType.java
0 → 100644
| ... | ... | @@ -0,0 +1,19 @@ |
| 1 | +package com.sincere.common.model.system.constants; | |
| 2 | + | |
| 3 | + | |
| 4 | +/** | |
| 5 | + * @author 作者 owen E-mail: 624191343@qq.com | |
| 6 | + * @version 创建时间:2017年11月12日 上午22:57:51 | |
| 7 | + * 用户类型 | |
| 8 | + */ | |
| 9 | +public enum UserType { | |
| 10 | + | |
| 11 | + /** | |
| 12 | + * 前端app用户 | |
| 13 | + */ | |
| 14 | + APP, | |
| 15 | + /** | |
| 16 | + * 后端管理用户 | |
| 17 | + */ | |
| 18 | + BACKEND | |
| 19 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/props/PermitUrlProperties.java
0 → 100644
| ... | ... | @@ -0,0 +1,55 @@ |
| 1 | +package com.sincere.common.props; | |
| 2 | + | |
| 3 | +import org.springframework.boot.context.properties.ConfigurationProperties; | |
| 4 | + | |
| 5 | +import java.util.ArrayList; | |
| 6 | +import java.util.List; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * @author 作者 owen E-mail: 624191343@qq.com | |
| 10 | + * @version 创建时间:2017年11月12日 上午22:57:51 url白名单处理 application.yml中配置需要放权的url白名单 | |
| 11 | + */ | |
| 12 | +// @ConfigurationProperties(prefix = "permit") | |
| 13 | +@ConfigurationProperties(prefix = "security.oauth2") | |
| 14 | +public class PermitUrlProperties { | |
| 15 | + | |
| 16 | + /** | |
| 17 | + * 监控中心和swagger需要访问的url | |
| 18 | + */ | |
| 19 | + private static final String[] ENDPOINTS = { | |
| 20 | + "/**/actuator/**" , "/**/actuator/**/**" , //断点监控 | |
| 21 | + "/**/v2/api-docs/**", "/**/swagger-ui.html", "/**/swagger-resources/**", "/**/webjars/**", //swagger | |
| 22 | + "/**/turbine.stream","/**/turbine.stream**/**", "/**/hystrix", "/**/hystrix.stream", "/**/hystrix/**", "/**/hystrix/**/**", "/**/proxy.stream/**" , //熔断监控 | |
| 23 | + "/**/druid/**", "/**/favicon.ico", "/**/prometheus" | |
| 24 | + }; | |
| 25 | + | |
| 26 | + private String[] ignored; | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * 需要放开权限的url | |
| 30 | + * | |
| 31 | + * @param urls | |
| 32 | + * 自定义的url | |
| 33 | + * @return 自定义的url和监控中心需要访问的url集合 | |
| 34 | + */ | |
| 35 | + public String[] getIgnored() { | |
| 36 | + if (ignored == null || ignored.length == 0) { | |
| 37 | + return ENDPOINTS; | |
| 38 | + } | |
| 39 | + | |
| 40 | + List<String> list = new ArrayList<>(); | |
| 41 | + for (String url : ENDPOINTS) { | |
| 42 | + list.add(url); | |
| 43 | + } | |
| 44 | + for (String url : ignored) { | |
| 45 | + list.add(url); | |
| 46 | + } | |
| 47 | + | |
| 48 | + return list.toArray(new String[list.size()]); | |
| 49 | + } | |
| 50 | + | |
| 51 | + public void setIgnored(String[] ignored) { | |
| 52 | + this.ignored = ignored; | |
| 53 | + } | |
| 54 | + | |
| 55 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/util/ApiResult.java
0 → 100644
| ... | ... | @@ -0,0 +1,51 @@ |
| 1 | +package com.sincere.common.util; | |
| 2 | + | |
| 3 | +import com.sincere.common.enums.ResponseCodeEnum; | |
| 4 | +import lombok.Data; | |
| 5 | + | |
| 6 | +import java.io.Serializable; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * @author: yukong | |
| 10 | + * @date: 2018/10/12 10:39 | |
| 11 | + * @description: 统一响应信息主体 | |
| 12 | + */ | |
| 13 | +@Data | |
| 14 | +public class ApiResult<T> implements Serializable { | |
| 15 | + | |
| 16 | + private T data; | |
| 17 | + | |
| 18 | + private Integer code = ResponseCodeEnum.SUCCESS.getCode(); | |
| 19 | + | |
| 20 | + private String message = ResponseCodeEnum.SUCCESS.getMessage(); | |
| 21 | + | |
| 22 | + public ApiResult() { | |
| 23 | + } | |
| 24 | + | |
| 25 | + public ApiResult(T data) { | |
| 26 | + this.data = data; | |
| 27 | + } | |
| 28 | + | |
| 29 | + public ApiResult(T data, String message) { | |
| 30 | + this.data = data; | |
| 31 | + this.message = message; | |
| 32 | + } | |
| 33 | + | |
| 34 | + public ApiResult(T data, ResponseCodeEnum responseCode) { | |
| 35 | + this.data = data; | |
| 36 | + this.code = responseCode.getCode(); | |
| 37 | + this.message = responseCode.getMessage(); | |
| 38 | + } | |
| 39 | + | |
| 40 | + public ApiResult(Throwable throwable) { | |
| 41 | + this.message = throwable.getMessage(); | |
| 42 | + this.code = ResponseCodeEnum.FAIL.getCode(); | |
| 43 | + } | |
| 44 | + | |
| 45 | + public ApiResult(Throwable throwable, ResponseCodeEnum code) { | |
| 46 | + this.message = throwable.getMessage(); | |
| 47 | + this.code = code.getCode(); | |
| 48 | + } | |
| 49 | + | |
| 50 | + | |
| 51 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/util/SpringUtils.java
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package com.sincere.common.util; | |
| 2 | + | |
| 3 | +import org.springframework.beans.BeansException; | |
| 4 | +import org.springframework.context.ApplicationContext; | |
| 5 | +import org.springframework.context.ApplicationContextAware; | |
| 6 | +import org.springframework.core.env.Environment; | |
| 7 | +import org.springframework.stereotype.Component; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * spring获取bean工具类 | |
| 11 | + * | |
| 12 | +* @author 作者 owen E-mail: 624191343@qq.com | |
| 13 | + * @version 创建时间:2018年3月20日 下午10:13:18 类说明 | |
| 14 | + * | |
| 15 | + */ | |
| 16 | +@Component | |
| 17 | +public class SpringUtils implements ApplicationContextAware { | |
| 18 | + | |
| 19 | + private static ApplicationContext applicationContext = null; | |
| 20 | + | |
| 21 | + @Override | |
| 22 | + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { | |
| 23 | + SpringUtils.applicationContext = applicationContext; | |
| 24 | + } | |
| 25 | + | |
| 26 | + public static <T> T getBean(Class<T> cla) { | |
| 27 | + return applicationContext.getBean(cla); | |
| 28 | + } | |
| 29 | + | |
| 30 | + public static <T> T getBean(String name, Class<T> cal) { | |
| 31 | + return applicationContext.getBean(name, cal); | |
| 32 | + } | |
| 33 | + | |
| 34 | + public static String getProperty(String key) { | |
| 35 | + return applicationContext.getBean(Environment.class).getProperty(key); | |
| 36 | + } | |
| 37 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/util/UrlUtil.java
0 → 100644
| ... | ... | @@ -0,0 +1,47 @@ |
| 1 | +package com.sincere.common.util; | |
| 2 | + | |
| 3 | +import javax.servlet.http.HttpServletRequest; | |
| 4 | +import java.io.PrintWriter; | |
| 5 | +import java.io.StringWriter; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * @author: yukong | |
| 9 | + * @date: 2018/11/14 19:50 | |
| 10 | + */ | |
| 11 | +public class UrlUtil { | |
| 12 | + | |
| 13 | + /** | |
| 14 | + * 获取目标主机的ip | |
| 15 | + * @param request | |
| 16 | + * @return | |
| 17 | + */ | |
| 18 | + public static String getRemoteHost(HttpServletRequest request) { | |
| 19 | + String ip = request.getHeader("x-forwarded-for"); | |
| 20 | + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { | |
| 21 | + ip = request.getHeader("Proxy-Client-IP"); | |
| 22 | + } | |
| 23 | + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { | |
| 24 | + ip = request.getHeader("WL-Proxy-Client-IP"); | |
| 25 | + } | |
| 26 | + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { | |
| 27 | + ip = request.getRemoteAddr(); | |
| 28 | + } | |
| 29 | + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip; | |
| 30 | + } | |
| 31 | + | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 获取完整的异常栈信息 | |
| 35 | + * @param t | |
| 36 | + * @return | |
| 37 | + */ | |
| 38 | + public static String getTrace(Throwable t) { | |
| 39 | + StringWriter stringWriter= new StringWriter(); | |
| 40 | + PrintWriter writer= new PrintWriter(stringWriter); | |
| 41 | + t.printStackTrace(writer); | |
| 42 | + StringBuffer buffer= stringWriter.getBuffer(); | |
| 43 | + return buffer.toString(); | |
| 44 | + } | |
| 45 | + | |
| 46 | + | |
| 47 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/util/UserUtil.java
0 → 100644
| ... | ... | @@ -0,0 +1,95 @@ |
| 1 | +package com.sincere.common.util; | |
| 2 | + | |
| 3 | +import com.sincere.common.constants.SecurityConstants; | |
| 4 | +import com.sincere.common.constants.UserConstants; | |
| 5 | +import io.jsonwebtoken.Claims; | |
| 6 | +import io.jsonwebtoken.Jwts; | |
| 7 | +import lombok.extern.slf4j.Slf4j; | |
| 8 | + | |
| 9 | +import javax.servlet.http.HttpServletRequest; | |
| 10 | +import java.util.Base64; | |
| 11 | +import java.util.List; | |
| 12 | + | |
| 13 | +/** | |
| 14 | + * @author: yukong | |
| 15 | + * @date: 2018/10/17 08:56 | |
| 16 | + * @description: | |
| 17 | + */ | |
| 18 | +@Slf4j | |
| 19 | +public class UserUtil { | |
| 20 | + | |
| 21 | + /** | |
| 22 | + * 获取请求中的token | |
| 23 | + * @param request | |
| 24 | + * @return token | |
| 25 | + */ | |
| 26 | + public static String getToken(HttpServletRequest request){ | |
| 27 | + String authorization = request.getHeader(SecurityConstants.TOKEN_HEADER); | |
| 28 | + if(authorization == null){ | |
| 29 | + return null; | |
| 30 | + } | |
| 31 | + String token = authorization.split(" ")[1]; | |
| 32 | + log.info("获取token成功,值为{}", token); | |
| 33 | + return token; | |
| 34 | + } | |
| 35 | + | |
| 36 | + /** | |
| 37 | + * 获取jwt中的claims信息 | |
| 38 | + * @param token | |
| 39 | + * @return claim | |
| 40 | + */ | |
| 41 | + public static Claims getClaims(String token) { | |
| 42 | + String key = Base64.getEncoder().encodeToString(SecurityConstants.SIGN_KEY.getBytes()); | |
| 43 | + Claims claims = Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody(); | |
| 44 | + return claims; | |
| 45 | + } | |
| 46 | + | |
| 47 | + /** | |
| 48 | + * 获取请求中的userId | |
| 49 | + * @param request | |
| 50 | + * @return userId | |
| 51 | + */ | |
| 52 | + public static Integer getUserId(HttpServletRequest request){ | |
| 53 | + String token = getToken(request); | |
| 54 | + if(token == null){ | |
| 55 | + return null; | |
| 56 | + } | |
| 57 | + Claims claims = getClaims(token); | |
| 58 | + Integer userId = (Integer) claims.get(UserConstants.USER_ID); | |
| 59 | + log.info("获取userId成功,值为", userId); | |
| 60 | + return userId; | |
| 61 | + } | |
| 62 | + | |
| 63 | + /** | |
| 64 | + * 获取请求中的userId | |
| 65 | + * @param request | |
| 66 | + * @return userId | |
| 67 | + */ | |
| 68 | + public static String getUserName(HttpServletRequest request){ | |
| 69 | + String token = getToken(request); | |
| 70 | + if(token == null){ | |
| 71 | + return null; | |
| 72 | + } | |
| 73 | + Claims claims = getClaims(token); | |
| 74 | + String username = (String) claims.get(UserConstants.USER_NAME); | |
| 75 | + log.info("获取username成功,值为", username); | |
| 76 | + return username; | |
| 77 | + } | |
| 78 | + | |
| 79 | + /** | |
| 80 | + * 获取请求中的roles集合 | |
| 81 | + * @param request | |
| 82 | + * @return roles | |
| 83 | + */ | |
| 84 | + public static List<String> getRoles(HttpServletRequest request) { | |
| 85 | + String token = getToken(request); | |
| 86 | + if(token == null){ | |
| 87 | + return null; | |
| 88 | + } | |
| 89 | + Claims claims = getClaims(token); | |
| 90 | + List<String> roles = (List<String>) claims.get(UserConstants.AUTHORITIES); | |
| 91 | + return roles; | |
| 92 | + } | |
| 93 | + | |
| 94 | + | |
| 95 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/vo/SysResourceVO.java
0 → 100644
| ... | ... | @@ -0,0 +1,101 @@ |
| 1 | +package com.sincere.common.vo; | |
| 2 | + | |
| 3 | + | |
| 4 | +import lombok.Data; | |
| 5 | +import lombok.experimental.Accessors; | |
| 6 | + | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * <p> | |
| 11 | + * 资源表(菜单与按钮) | |
| 12 | + * </p> | |
| 13 | + * | |
| 14 | + * @author yukong | |
| 15 | + * @since 2018-10-16 | |
| 16 | + */ | |
| 17 | +@Data | |
| 18 | +@Accessors(chain = true) | |
| 19 | +public class SysResourceVO { | |
| 20 | + | |
| 21 | + private static final long serialVersionUID = 1L; | |
| 22 | + | |
| 23 | + /** | |
| 24 | + * 主键 | |
| 25 | + */ | |
| 26 | + private Integer id; | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * 资源名称 | |
| 30 | + */ | |
| 31 | + private String name; | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 资源类型 0-菜单 1-按钮 | |
| 35 | + */ | |
| 36 | + private String type; | |
| 37 | + | |
| 38 | + /** | |
| 39 | + * 前端url | |
| 40 | + */ | |
| 41 | + private String path; | |
| 42 | + | |
| 43 | + /** | |
| 44 | + * 按钮权限资源标识 | |
| 45 | + */ | |
| 46 | + private String permission; | |
| 47 | + | |
| 48 | + /** | |
| 49 | + * 颜色 | |
| 50 | + */ | |
| 51 | + private String color; | |
| 52 | + | |
| 53 | + /** | |
| 54 | + * 父资源id | |
| 55 | + */ | |
| 56 | + private Integer parentId; | |
| 57 | + | |
| 58 | + /** | |
| 59 | + * 图标 | |
| 60 | + */ | |
| 61 | + private String icon; | |
| 62 | + | |
| 63 | + /** | |
| 64 | + * 组件路径 | |
| 65 | + */ | |
| 66 | + private String component; | |
| 67 | + | |
| 68 | + /** | |
| 69 | + * 排序权重 | |
| 70 | + */ | |
| 71 | + private Integer sort; | |
| 72 | + | |
| 73 | + /** | |
| 74 | + * 创建时间 | |
| 75 | + */ | |
| 76 | + private LocalDateTime createTime; | |
| 77 | + | |
| 78 | + /** | |
| 79 | + * 更新时间 | |
| 80 | + */ | |
| 81 | + private LocalDateTime modifyTime; | |
| 82 | + | |
| 83 | + /** | |
| 84 | + * 是否删除 1-删除,0-未删除 | |
| 85 | + */ | |
| 86 | + private String delFlag; | |
| 87 | + | |
| 88 | + | |
| 89 | + /** | |
| 90 | + * 后台请求url | |
| 91 | + */ | |
| 92 | + private String url; | |
| 93 | + | |
| 94 | + | |
| 95 | + /** | |
| 96 | + * 请求方式 | |
| 97 | + */ | |
| 98 | + private String method; | |
| 99 | + | |
| 100 | + | |
| 101 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/vo/SysRoleVo.java
0 → 100644
| ... | ... | @@ -0,0 +1,54 @@ |
| 1 | +package com.sincere.common.vo; | |
| 2 | + | |
| 3 | +import lombok.Data; | |
| 4 | +import lombok.experimental.Accessors; | |
| 5 | + | |
| 6 | +import java.io.Serializable; | |
| 7 | +import java.time.LocalDateTime; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * <p> | |
| 11 | + * 角色表 | |
| 12 | + * </p> | |
| 13 | + * | |
| 14 | + * @author yukong | |
| 15 | + * @since 2018-10-16 | |
| 16 | + */ | |
| 17 | +@Data | |
| 18 | +@Accessors(chain = true) | |
| 19 | +public class SysRoleVo implements Serializable { | |
| 20 | + | |
| 21 | + private static final long serialVersionUID = 1L; | |
| 22 | + | |
| 23 | + /** | |
| 24 | + * 主键 | |
| 25 | + */ | |
| 26 | + private Integer roleId; | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * 角色code用于springsecurity角色标识码 | |
| 30 | + */ | |
| 31 | + private String roleCode; | |
| 32 | + | |
| 33 | + /** | |
| 34 | + * 角色名称 | |
| 35 | + */ | |
| 36 | + private String roleName; | |
| 37 | + | |
| 38 | + /** | |
| 39 | + * 创建时间 | |
| 40 | + */ | |
| 41 | + private LocalDateTime createTime; | |
| 42 | + | |
| 43 | + /** | |
| 44 | + * 更新时间 | |
| 45 | + */ | |
| 46 | + private LocalDateTime modifyTime; | |
| 47 | + | |
| 48 | + /** | |
| 49 | + * 是否删除 1-删除,0-未删除 | |
| 50 | + */ | |
| 51 | + private String delFlag; | |
| 52 | + | |
| 53 | + | |
| 54 | +} | ... | ... |
cloud/common/src/main/java/com/sincere/common/vo/SysUserVo.java
0 → 100644
| ... | ... | @@ -0,0 +1,93 @@ |
| 1 | +package com.sincere.common.vo; | |
| 2 | + | |
| 3 | +import lombok.Data; | |
| 4 | + | |
| 5 | +import java.time.LocalDateTime; | |
| 6 | +import java.util.List; | |
| 7 | + | |
| 8 | +/** | |
| 9 | + * @author: yukong | |
| 10 | + * @date: 2018/10/16 17:09 | |
| 11 | + * @description: | |
| 12 | + */ | |
| 13 | +@Data | |
| 14 | +public class SysUserVo { | |
| 15 | + | |
| 16 | + /** | |
| 17 | + * 主键ID | |
| 18 | + */ | |
| 19 | + private Integer userId; | |
| 20 | + | |
| 21 | + /** | |
| 22 | + * 用户名 | |
| 23 | + */ | |
| 24 | + private String username; | |
| 25 | + | |
| 26 | + /** | |
| 27 | + * 密码 | |
| 28 | + */ | |
| 29 | + private String password; | |
| 30 | + | |
| 31 | + /** | |
| 32 | + * 邮箱 | |
| 33 | + */ | |
| 34 | + private String email; | |
| 35 | + | |
| 36 | + /** | |
| 37 | + * 手机号码 | |
| 38 | + */ | |
| 39 | + private String mobile; | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * qq号码 | |
| 43 | + */ | |
| 44 | + private String qq; | |
| 45 | + | |
| 46 | + /** | |
| 47 | + * 微信号码 | |
| 48 | + */ | |
| 49 | + private String wechat; | |
| 50 | + | |
| 51 | + /** | |
| 52 | + * 微博url | |
| 53 | + */ | |
| 54 | + private String weibo; | |
| 55 | + | |
| 56 | + /** | |
| 57 | + * 头像url | |
| 58 | + */ | |
| 59 | + private String avatar; | |
| 60 | + | |
| 61 | + /** | |
| 62 | + * qq openid | |
| 63 | + */ | |
| 64 | + private String qqOpenid; | |
| 65 | + | |
| 66 | + /** | |
| 67 | + * 微信openid | |
| 68 | + */ | |
| 69 | + private String wechatOpenid; | |
| 70 | + | |
| 71 | + /** | |
| 72 | + * 微博openid | |
| 73 | + */ | |
| 74 | + private String weiboOpenid; | |
| 75 | + | |
| 76 | + /** | |
| 77 | + * 创建时间 | |
| 78 | + */ | |
| 79 | + private LocalDateTime createTime; | |
| 80 | + | |
| 81 | + /** | |
| 82 | + * 更新时间 | |
| 83 | + */ | |
| 84 | + private LocalDateTime modifyTime; | |
| 85 | + | |
| 86 | + /** | |
| 87 | + * 是否删除 0-未删除 1-删除 | |
| 88 | + */ | |
| 89 | + private String delFlag; | |
| 90 | + | |
| 91 | + private List<SysRoleVo> sysRoleVoList; | |
| 92 | + | |
| 93 | +} | ... | ... |
No preview for this file type
cloud/common/src/test/java/com/sincere/common/CommonApplicationTests.java
0 → 100644
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +package com.sincere.common; | |
| 2 | + | |
| 3 | +import org.junit.Test; | |
| 4 | +import org.junit.runner.RunWith; | |
| 5 | +import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | +import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | + | |
| 8 | +@RunWith(SpringRunner.class) | |
| 9 | +@SpringBootTest | |
| 10 | +public class CommonApplicationTests { | |
| 11 | + | |
| 12 | + @Test | |
| 13 | + public void contextLoads() { | |
| 14 | + } | |
| 15 | + | |
| 16 | +} | ... | ... |
cloud/dahua/pom.xml
| ... | ... | @@ -16,6 +16,7 @@ |
| 16 | 16 | |
| 17 | 17 | <properties> |
| 18 | 18 | <java.version>1.8</java.version> |
| 19 | + <spring-cloud.version>Greenwich.SR1</spring-cloud.version> | |
| 19 | 20 | </properties> |
| 20 | 21 | |
| 21 | 22 | <dependencies> |
| ... | ... | @@ -86,8 +87,26 @@ |
| 86 | 87 | <version>2.0.1</version> |
| 87 | 88 | </dependency> |
| 88 | 89 | |
| 90 | + <dependency> | |
| 91 | + <groupId>org.springframework.cloud</groupId> | |
| 92 | + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | |
| 93 | + <version>2.1.2.RELEASE</version> | |
| 94 | + </dependency> | |
| 95 | + | |
| 89 | 96 | </dependencies> |
| 90 | 97 | |
| 98 | + <dependencyManagement> | |
| 99 | + <dependencies> | |
| 100 | + <dependency> | |
| 101 | + <groupId>org.springframework.cloud</groupId> | |
| 102 | + <artifactId>spring-cloud-dependencies</artifactId> | |
| 103 | + <version>${spring-cloud.version}</version> | |
| 104 | + <type>pom</type> | |
| 105 | + <scope>import</scope> | |
| 106 | + </dependency> | |
| 107 | + </dependencies> | |
| 108 | + </dependencyManagement> | |
| 109 | + | |
| 91 | 110 | <build> |
| 92 | 111 | <plugins> |
| 93 | 112 | <plugin> | ... | ... |
| ... | ... | @@ -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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 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 @@ |
| 1 | +Begin Time:2019-09-04 18:29:53.740 | |
| 2 | +[2019-09-04 18:29:53.740][P:17096/T:25860][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically | |
| 3 | +[2019-09-04 18:29:53.784][P:17096/T:25860][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 0000000028820000 | |
| 4 | + | |
| 5 | +[2019-09-04 18:29:53.784][P:17096/T:25860][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically | |
| 6 | +[2019-09-04 18:29:53.791][P:17096/T:25860][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=0000000020AB0050, dwUser=0000000000000000]. | |
| 7 | +[2019-09-04 18:29:53.791][P:17096/T:25860][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect. | |
| 8 | +[2019-09-04 18:29:53.791][P:17096/T:25860][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1]. | |
| 9 | +[2019-09-04 18:29:53.791][P:17096/T:25860][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime. | |
| 10 | +[2019-09-04 18:29:53.793][P:17096/T:25860][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0]. | |
| 11 | +[2019-09-04 18:29:53.793][P:17096/T:25860][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam. | |
| 12 | +[2019-09-04 18:29:53.804][P:17096/T:25860][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=0000000020AB0090, dwUserData=0000000000000000.] | |
| 13 | +[2019-09-04 18:29:53.804][P:17096/T:25860][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=575080528.] | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/DahuaApplication.java
| ... | ... | @@ -9,6 +9,7 @@ import org.mybatis.spring.annotation.MapperScan; |
| 9 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 10 | 10 | import org.springframework.boot.SpringApplication; |
| 11 | 11 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
| 12 | +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; | |
| 12 | 13 | import org.springframework.context.annotation.Bean; |
| 13 | 14 | import org.springframework.context.annotation.Configuration; |
| 14 | 15 | import org.springframework.scheduling.annotation.EnableAsync; |
| ... | ... | @@ -29,6 +30,7 @@ import java.util.concurrent.TimeUnit; |
| 29 | 30 | |
| 30 | 31 | @SpringBootApplication |
| 31 | 32 | @MapperScan("com.example.dahua.dao") |
| 33 | +@EnableDiscoveryClient | |
| 32 | 34 | public class DahuaApplication { |
| 33 | 35 | |
| 34 | 36 | public static void main(String[] args) { | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/MyTask.java
| ... | ... | @@ -149,7 +149,7 @@ public class MyTask implements ApplicationRunner { |
| 149 | 149 | devMap.put(deviceId, pIp + "," + wPort); |
| 150 | 150 | lLongMap.put(deviceId,loginHandleLong); |
| 151 | 151 | String inTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); |
| 152 | - int index = attendanceService.insert(deviceId, "22", pIp, wPort + "", inTime, "0", "1"); | |
| 152 | + int index = attendanceService.insert(deviceId, "22", pIp, wPort + "", inTime, "-1", "1"); | |
| 153 | 153 | DeviceInfoBean deviceInfoBean = new DeviceInfoBean(); |
| 154 | 154 | deviceInfoBean.setDevcieId(deviceId); |
| 155 | 155 | deviceInfoBean.setDeviceIp(pIp); | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/async/SendUserInfoTask.java
| ... | ... | @@ -2,6 +2,7 @@ package com.example.dahua.async; |
| 2 | 2 | |
| 3 | 3 | import com.example.dahua.MyTask; |
| 4 | 4 | import com.example.dahua.bean.AttendanceBean; |
| 5 | +import com.example.dahua.bean.TeacherBean; | |
| 5 | 6 | import com.example.dahua.bean.UserInfoBean; |
| 6 | 7 | import com.example.dahua.common.Res; |
| 7 | 8 | import com.example.dahua.dao.UserDao; |
| ... | ... | @@ -58,6 +59,7 @@ public class SendUserInfoTask { |
| 58 | 59 | List<AttendanceBean> attendanceBeans = userDao.getAttendanceBeans(schoolId, clint_type); |
| 59 | 60 | String filePathStudent = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Student"; |
| 60 | 61 | String filePathParent = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Parent"; |
| 62 | + String filePathTeacher = "E:\\wwwhtdocs\\SmartCampus\\face17e50\\School" + schoolId + "\\Teacher"; | |
| 61 | 63 | // String filePathStudent = "F:\\wwwroot\\SmartCampus\\face17e50\\School" + schoolId + "\\Student"; |
| 62 | 64 | // String filePathParent = "F:\\wwwroot\\SmartCampus\\face17e50\\School" + schoolId + "\\Parent"; |
| 63 | 65 | // String filePathParent = "C:\\Users\\taohandong\\Desktop\\小视频"; |
| ... | ... | @@ -71,6 +73,15 @@ public class SendUserInfoTask { |
| 71 | 73 | |
| 72 | 74 | filePaths = new File(filePathParent); |
| 73 | 75 | |
| 76 | + } else if (type == 2) {//教师卡下发 | |
| 77 | + filePaths = new File(filePathTeacher); | |
| 78 | + }else { | |
| 79 | + filePaths = new File(""); | |
| 80 | + } | |
| 81 | + | |
| 82 | + if (!filePaths.exists()){ | |
| 83 | + System.out.println("图片目录不存在"); | |
| 84 | + return; | |
| 74 | 85 | } |
| 75 | 86 | |
| 76 | 87 | File[] filesStudent = filePaths.listFiles(); |
| ... | ... | @@ -85,7 +96,7 @@ public class SendUserInfoTask { |
| 85 | 96 | fileList.add(filesStudent[i]); |
| 86 | 97 | } |
| 87 | 98 | |
| 88 | - System.out.println("files:" + fileList.size()); | |
| 99 | +// System.out.println("files:" + fileList.size()); | |
| 89 | 100 | |
| 90 | 101 | while (fileList.size() > 0) { |
| 91 | 102 | File studentFile = fileList.get(0); |
| ... | ... | @@ -105,8 +116,22 @@ public class SendUserInfoTask { |
| 105 | 116 | |
| 106 | 117 | } else { |
| 107 | 118 | |
| 108 | - userInfoBean = userDao.getUserInfo(schoolId, studentCode); | |
| 119 | + if (type == 0 || type == 1) {//学生信息或家长信息 | |
| 120 | + userInfoBean = userDao.getUserInfo(schoolId, studentCode); | |
| 121 | + } else if (type == 2) {//教师信息 | |
| 122 | + TeacherBean teacher = userDao.getTeacher(schoolId, studentCode); | |
| 123 | + if (null != teacher) { | |
| 124 | + userInfoBean = new UserInfoBean(); | |
| 125 | + userInfoBean.setStudent_num(teacher.getTeacher_num()); | |
| 126 | + userInfoBean.setName(teacher.getName()); | |
| 127 | + userInfoBean.setUser_id(teacher.getUser_id()); | |
| 128 | + userInfoBean.setStudentcode(teacher.getNum()); | |
| 129 | + } | |
| 130 | + } | |
| 131 | + | |
| 132 | + //判断用户是否存在 | |
| 109 | 133 | if (!userIsExit(fileList, studentCode, userInfoBean)) continue; |
| 134 | + | |
| 110 | 135 | } |
| 111 | 136 | |
| 112 | 137 | boolean sendResult = sendUserInfoToDev(studentFile.getAbsolutePath(), attendanceBeans, userInfoBean); |
| ... | ... | @@ -191,57 +216,57 @@ public class SendUserInfoTask { |
| 191 | 216 | for (AttendanceBean attendanceBean : |
| 192 | 217 | attendanceBeans) { |
| 193 | 218 | |
| 194 | - pushCardAndFace(attendanceBean, userInfoBean, memory); | |
| 219 | + pushCardAndFace(attendanceBean, userInfoBean.getUser_id(), userInfoBean.getStudent_num(), userInfoBean.getName(), memory); | |
| 195 | 220 | } |
| 196 | 221 | } |
| 197 | 222 | |
| 198 | - private synchronized void pushCardAndFace(AttendanceBean attendanceBean, UserInfoBean userInfoBean, Memory memory) { | |
| 223 | + private synchronized void pushCardAndFace(AttendanceBean attendanceBean, String user_id, String student_num, String name, Memory memory) { | |
| 199 | 224 | String startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); |
| 200 | 225 | Calendar calendar = Calendar.getInstance(); |
| 201 | 226 | calendar.add(Calendar.YEAR, 4); |
| 202 | 227 | String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()); |
| 203 | 228 | int bCardFlags = -1;//记录集编号 |
| 204 | - bCardFlags = userDao.getRecordNo(userInfoBean.getUser_id()) == null ? -1 : Integer.parseInt(userDao.getRecordNo(userInfoBean.getUser_id())); | |
| 229 | + bCardFlags = userDao.getRecordNo(user_id) == null ? -1 : Integer.parseInt(userDao.getRecordNo(user_id)); | |
| 205 | 230 | |
| 206 | 231 | NetSDKLib.LLong loginHandleLong = MyTask.lLongMap.get(attendanceBean.getClint_id()); |
| 207 | 232 | |
| 208 | 233 | boolean bFaceFalgs = false; |
| 209 | 234 | |
| 210 | - String cardNum = cardNo(userInfoBean.getStudent_num()); | |
| 235 | + String cardNum = cardNo(student_num); | |
| 211 | 236 | boolean ifExits = GateModule.findCard(cardNum, loginHandleLong); |
| 212 | 237 | System.out.println("卡号是否存在:" + ifExits); |
| 213 | 238 | if (bCardFlags != -1) {//修改卡信息 |
| 214 | 239 | GateModule.deleteCard(bCardFlags, loginHandleLong); |
| 215 | - userDao.deleteRecordNo(userInfoBean.getUser_id(), bCardFlags); | |
| 240 | + userDao.deleteRecordNo(user_id, bCardFlags); | |
| 216 | 241 | |
| 217 | 242 | // boolean update = GateModule.modifyCard(bCardFlags, cardNum, userInfoBean.getUser_id(), userInfoBean.getName(), "123456" |
| 218 | 243 | // , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0 |
| 219 | 244 | // , 1, startTime, endTime, loginHandleLong); |
| 220 | 245 | // System.out.println("update:" + update); |
| 221 | 246 | |
| 222 | - bCardFlags = GateModule.insertCard(cardNum, userInfoBean.getUser_id(), userInfoBean.getName(), "123456" | |
| 247 | + bCardFlags = GateModule.insertCard(cardNum, user_id, name, "123456" | |
| 223 | 248 | , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0 |
| 224 | 249 | , 1, startTime, endTime, loginHandleLong); |
| 225 | 250 | |
| 226 | 251 | if (bCardFlags != -1) { |
| 227 | - int index = userDao.saveRecordNo(userInfoBean.getUser_id(), bCardFlags, userInfoBean.getName());//存储记录集编号 | |
| 252 | + int index = userDao.saveRecordNo(user_id, bCardFlags, name);//存储记录集编号 | |
| 228 | 253 | } |
| 229 | - bFaceFalgs = GateModule.modifyFaceInfo(userInfoBean.getUser_id(), memory, loginHandleLong); | |
| 254 | + bFaceFalgs = GateModule.modifyFaceInfo(user_id, memory, loginHandleLong); | |
| 230 | 255 | //卡号添加成功,但是人脸不成功的话,就需要新增人脸 |
| 231 | 256 | if (!bFaceFalgs) |
| 232 | - bFaceFalgs = GateModule.addFaceInfo(userInfoBean.getUser_id(), memory, loginHandleLong); | |
| 257 | + bFaceFalgs = GateModule.addFaceInfo(user_id, memory, loginHandleLong); | |
| 233 | 258 | |
| 234 | 259 | } else {//新增卡信息 |
| 235 | - bCardFlags = GateModule.insertCard(cardNum, userInfoBean.getUser_id(), userInfoBean.getName(), "123456" | |
| 260 | + bCardFlags = GateModule.insertCard(cardNum, user_id, name, "123456" | |
| 236 | 261 | , Res.string().getCardStatusInt(1), Res.string().getCardTypeInt(1), 0, 0 |
| 237 | 262 | , 1, startTime, endTime, loginHandleLong); |
| 238 | 263 | |
| 239 | 264 | if (bCardFlags != -1) { |
| 240 | - int index = userDao.saveRecordNo(userInfoBean.getUser_id(), bCardFlags, userInfoBean.getName());//存储记录集编号 | |
| 265 | + int index = userDao.saveRecordNo(user_id, bCardFlags, name);//存储记录集编号 | |
| 241 | 266 | } |
| 242 | 267 | |
| 243 | 268 | //添加人脸 |
| 244 | - bFaceFalgs = GateModule.addFaceInfo(userInfoBean.getUser_id(), memory, loginHandleLong); | |
| 269 | + bFaceFalgs = GateModule.addFaceInfo(user_id, memory, loginHandleLong); | |
| 245 | 270 | |
| 246 | 271 | } |
| 247 | 272 | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/bean/TeacherBean.java
0 → 100644
| ... | ... | @@ -0,0 +1,67 @@ |
| 1 | +package com.example.dahua.bean; | |
| 2 | + | |
| 3 | +import java.io.Serializable; | |
| 4 | + | |
| 5 | +public class TeacherBean implements Serializable { | |
| 6 | + | |
| 7 | + private String school_id; | |
| 8 | + | |
| 9 | + private String user_id; | |
| 10 | + | |
| 11 | + private String name; | |
| 12 | + | |
| 13 | + private String num;//教职工编号 | |
| 14 | + | |
| 15 | + private String teacher_num; | |
| 16 | + | |
| 17 | + public String getTeacher_num() { | |
| 18 | + return teacher_num; | |
| 19 | + } | |
| 20 | + | |
| 21 | + public void setTeacher_num(String teacher_num) { | |
| 22 | + this.teacher_num = teacher_num; | |
| 23 | + } | |
| 24 | + | |
| 25 | + public String getSchool_id() { | |
| 26 | + return school_id; | |
| 27 | + } | |
| 28 | + | |
| 29 | + public void setSchool_id(String school_id) { | |
| 30 | + this.school_id = school_id; | |
| 31 | + } | |
| 32 | + | |
| 33 | + public String getUser_id() { | |
| 34 | + return user_id; | |
| 35 | + } | |
| 36 | + | |
| 37 | + public void setUser_id(String user_id) { | |
| 38 | + this.user_id = user_id; | |
| 39 | + } | |
| 40 | + | |
| 41 | + public String getName() { | |
| 42 | + return name; | |
| 43 | + } | |
| 44 | + | |
| 45 | + public void setName(String name) { | |
| 46 | + this.name = name; | |
| 47 | + } | |
| 48 | + | |
| 49 | + public String getNum() { | |
| 50 | + return num; | |
| 51 | + } | |
| 52 | + | |
| 53 | + public void setNum(String num) { | |
| 54 | + this.num = num; | |
| 55 | + } | |
| 56 | + | |
| 57 | + @Override | |
| 58 | + public String toString() { | |
| 59 | + return "TeacherBean{" + | |
| 60 | + "school_id='" + school_id + '\'' + | |
| 61 | + ", user_id='" + user_id + '\'' + | |
| 62 | + ", name='" + name + '\'' + | |
| 63 | + ", num='" + num + '\'' + | |
| 64 | + ", teacher_num='" + teacher_num + '\'' + | |
| 65 | + '}'; | |
| 66 | + } | |
| 67 | +} | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/control/DeviceControl.java
| ... | ... | @@ -2,6 +2,7 @@ package com.example.dahua.control; |
| 2 | 2 | |
| 3 | 3 | import com.example.dahua.service.DeviceService; |
| 4 | 4 | import io.swagger.annotations.Api; |
| 5 | +import io.swagger.annotations.ApiImplicitParam; | |
| 5 | 6 | import org.springframework.beans.factory.annotation.Autowired; |
| 6 | 7 | import org.springframework.web.bind.annotation.RequestMapping; |
| 7 | 8 | import org.springframework.web.bind.annotation.RequestMethod; |
| ... | ... | @@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.RestController; |
| 10 | 11 | |
| 11 | 12 | @RestController("/device/") |
| 12 | 13 | @Api(tags = "设备控制") |
| 14 | +@RequestMapping("/device/*") | |
| 13 | 15 | public class DeviceControl { |
| 14 | 16 | |
| 15 | 17 | @Autowired | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java
| ... | ... | @@ -27,6 +27,7 @@ import java.util.UUID; |
| 27 | 27 | */ |
| 28 | 28 | @RestController("/user/") |
| 29 | 29 | @Api(tags = "下发用户信息") |
| 30 | +@RequestMapping("/user/") | |
| 30 | 31 | public class UserControl { |
| 31 | 32 | |
| 32 | 33 | @Autowired |
| ... | ... | @@ -39,12 +40,10 @@ public class UserControl { |
| 39 | 40 | } |
| 40 | 41 | |
| 41 | 42 | |
| 42 | - | |
| 43 | 43 | @RequestMapping(value = "imgsSend", method = RequestMethod.GET) |
| 44 | 44 | @ApiOperation(value = "照片下放") |
| 45 | - public boolean imgsSend(@RequestParam("schoolId") String schoolId,@RequestParam("type") int type) { | |
| 46 | - System.out.printf("schoolid:" + schoolId); | |
| 47 | - userService.sendUserInfos(schoolId,"22",type); | |
| 45 | + public boolean imgsSend(@RequestParam("schoolId") String schoolId, @RequestParam("type") int type) { | |
| 46 | + userService.sendUserInfos(schoolId, "22", type); | |
| 48 | 47 | return true; |
| 49 | 48 | } |
| 50 | 49 | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/dao/UserDao.java
| 1 | 1 | package com.example.dahua.dao; |
| 2 | 2 | |
| 3 | 3 | import com.example.dahua.bean.AttendanceBean; |
| 4 | +import com.example.dahua.bean.TeacherBean; | |
| 4 | 5 | import com.example.dahua.bean.UserInfoBean; |
| 5 | 6 | import org.apache.ibatis.annotations.*; |
| 6 | 7 | import org.springframework.stereotype.Repository; |
| ... | ... | @@ -21,6 +22,9 @@ public interface UserDao { |
| 21 | 22 | @Select(" select * from SZ_V_School_Student where school_id = #{school_id} and studentcode = #{studentcode}") |
| 22 | 23 | UserInfoBean getUserInfo(@Param("school_id")String school_id,@Param("studentcode")String studentcode); |
| 23 | 24 | |
| 25 | + @Select(" select * from SZ_V_School_Teacher where school_id = #{school_id} and num = #{num}") | |
| 26 | + TeacherBean getTeacher(@Param("school_id")String school_id, @Param("num")String num); | |
| 27 | + | |
| 24 | 28 | /** |
| 25 | 29 | * 记录用户和设备集编号对应关系 |
| 26 | 30 | * @param user_id | ... | ... |
cloud/dahua/src/main/java/com/example/dahua/lib/NetSDKLib.java
| ... | ... | @@ -31,8 +31,7 @@ public interface NetSDKLib extends Library { |
| 31 | 31 | public static int size; |
| 32 | 32 | static { |
| 33 | 33 | size = Native.LONG_SIZE; |
| 34 | - System.out.println("登录句柄:"+Utils.getOsPrefix().toLowerCase()); | |
| 35 | - if (Utils.getOsPrefix().toLowerCase().equals("linux-amd64") | |
| 34 | + if (Utils.getOsPrefix().toLowerCase().equals("linux-amd64") | |
| 36 | 35 | || Utils.getOsPrefix().toLowerCase().equals("win32-amd64")) { |
| 37 | 36 | size = 8; |
| 38 | 37 | } else if (Utils.getOsPrefix().toLowerCase().equals("linux-i386") | ... | ... |
cloud/dahua/src/main/resources/application.yaml
| ... | ... | @@ -7,7 +7,7 @@ spring: |
| 7 | 7 | url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus |
| 8 | 8 | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| 9 | 9 | application: |
| 10 | - name: dahua | |
| 10 | + name: dahuaserver | |
| 11 | 11 | |
| 12 | 12 | #spring: |
| 13 | 13 | # datasource: |
| ... | ... | @@ -19,6 +19,17 @@ spring: |
| 19 | 19 | # name: dahua |
| 20 | 20 | |
| 21 | 21 | |
| 22 | +eureka: | |
| 23 | + instance: | |
| 24 | + hostname: localhost | |
| 25 | + lease-expiration-duration-in-seconds: 60 | |
| 26 | + lease-renewal-interval-in-seconds: 10 | |
| 27 | + prefer-ip-address: true | |
| 28 | + client: | |
| 29 | + service-url: | |
| 30 | +# defaultZone: http://localhost:8761/eureka/ | |
| 31 | + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ | |
| 32 | + | |
| 22 | 33 | mybatis: |
| 23 | 34 | type-aliases-package: com.example.dahua.dao |
| 24 | 35 | mapper-locations: classpath:mapper/*.xml | ... | ... |
cloud/dahua/src/test/java/com/example/dahua/DahuaApplicationTests.java
| ... | ... | @@ -2,6 +2,8 @@ package com.example.dahua; |
| 2 | 2 | |
| 3 | 3 | import com.example.dahua.async.SendUserInfoTask; |
| 4 | 4 | import com.example.dahua.service.UserService; |
| 5 | +import org.apache.http.impl.client.CloseableHttpClient; | |
| 6 | +import org.json.JSONObject; | |
| 5 | 7 | import org.junit.Test; |
| 6 | 8 | import org.junit.runner.RunWith; |
| 7 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -19,6 +21,8 @@ import org.springframework.web.client.RestTemplate; |
| 19 | 21 | import org.springframework.web.multipart.MultipartFile; |
| 20 | 22 | |
| 21 | 23 | import java.io.File; |
| 24 | +import java.util.HashMap; | |
| 25 | +import java.util.Map; | |
| 22 | 26 | |
| 23 | 27 | @RunWith(SpringRunner.class) |
| 24 | 28 | @SpringBootTest |
| ... | ... | @@ -43,30 +47,27 @@ public class DahuaApplicationTests { |
| 43 | 47 | |
| 44 | 48 | @Test |
| 45 | 49 | public void uploadImg() { |
| 46 | - | |
| 47 | -// F42B513C | |
| 48 | - | |
| 49 | - long dec_num = Long.parseLong("F42B513C",16); | |
| 50 | - | |
| 51 | -/* | |
| 52 | 50 | String url = "http://60.190.202.57:8023/"; |
| 53 | - | |
| 54 | 51 | RestTemplate restTemplate = new RestTemplate(); |
| 55 | 52 | HttpHeaders headers = new HttpHeaders(); |
| 56 | 53 | MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); |
| 57 | 54 | headers.setContentType(type); |
| 58 | - headers.add("Accept", MediaType.APPLICATION_JSON.toString()); | |
| 59 | - | |
| 60 | - MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>(); | |
| 61 | - map.add("id", "0"); | |
| 62 | - map.add("deviceId", "111"); | |
| 63 | - map.add("dtime", "2019-08-16 18:28"); | |
| 64 | - | |
| 65 | - HttpEntity<MultiValueMap<String, String>> formEntity = new HttpEntity<MultiValueMap<String, String>>(map, headers); | |
| 66 | - | |
| 67 | - String result = restTemplate.postForObject(url, formEntity, String.class); | |
| 68 | - | |
| 69 | - System.out.println(result);*/ | |
| 55 | +// headers.add("Accept", MediaType.APPLICATION_JSON.toString()); | |
| 56 | + | |
| 57 | + JSONObject jsonObject = new JSONObject(); | |
| 58 | + try { | |
| 59 | + jsonObject.put("id", "0"); | |
| 60 | + jsonObject.put("deviceId", "111"); | |
| 61 | + jsonObject.put("dtime", "2019-08-16 18:28"); | |
| 62 | + }catch (Exception e){ | |
| 63 | + e.printStackTrace(); | |
| 64 | + } | |
| 65 | + System.out.println("mao:"+jsonObject.toString()); | |
| 66 | + HttpEntity< JSONObject> formEntity = new HttpEntity< JSONObject>(jsonObject, headers); | |
| 67 | + | |
| 68 | + String result = restTemplate.postForEntity(url, formEntity, String.class).getBody(); | |
| 69 | + | |
| 70 | + System.out.println("sssssssssssssssssssssssssssssssssssssssss:"+result); | |
| 70 | 71 | } |
| 71 | 72 | |
| 72 | 73 | ... | ... |
cloud/geteway/pom.xml
| ... | ... | @@ -24,18 +24,31 @@ |
| 24 | 24 | <groupId>org.springframework.cloud</groupId> |
| 25 | 25 | <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> |
| 26 | 26 | </dependency> |
| 27 | + | |
| 27 | 28 | <dependency> |
| 28 | 29 | <groupId>org.springframework.cloud</groupId> |
| 29 | 30 | <artifactId>spring-cloud-starter-netflix-zuul</artifactId> |
| 30 | 31 | </dependency> |
| 31 | 32 | |
| 33 | + <!--<dependency>--> | |
| 34 | + <!--<groupId>org.springframework.cloud</groupId>--> | |
| 35 | + <!--<artifactId>spring-cloud-starter-gateway</artifactId>--> | |
| 36 | + <!--</dependency>--> | |
| 37 | + | |
| 32 | 38 | <dependency> |
| 33 | - <groupId>org.springframework.boot</groupId> | |
| 34 | - <artifactId>spring-boot-configuration-processor</artifactId> | |
| 35 | - <!--<version>2.1.3.RELEASE</version>--> | |
| 39 | + <groupId>io.springfox</groupId> | |
| 40 | + <artifactId>springfox-swagger2</artifactId> | |
| 41 | + <version>2.9.2</version> | |
| 36 | 42 | </dependency> |
| 37 | 43 | |
| 38 | 44 | <dependency> |
| 45 | + <groupId>io.springfox</groupId> | |
| 46 | + <artifactId>springfox-swagger-ui</artifactId> | |
| 47 | + <version>2.9.2</version> | |
| 48 | + </dependency> | |
| 49 | + | |
| 50 | + | |
| 51 | + <dependency> | |
| 39 | 52 | <groupId>org.springframework.boot</groupId> |
| 40 | 53 | <artifactId>spring-boot-starter-test</artifactId> |
| 41 | 54 | <scope>test</scope> | ... | ... |
cloud/geteway/src/main/java/com/example/geteway/DocumentationConfig.java
0 → 100644
| ... | ... | @@ -0,0 +1,53 @@ |
| 1 | +package com.example.geteway; | |
| 2 | + | |
| 3 | +import org.springframework.cloud.netflix.zuul.filters.Route; | |
| 4 | +import org.springframework.cloud.netflix.zuul.filters.RouteLocator; | |
| 5 | +import org.springframework.context.annotation.Primary; | |
| 6 | +import org.springframework.stereotype.Component; | |
| 7 | +import springfox.documentation.swagger.web.SwaggerResource; | |
| 8 | +import springfox.documentation.swagger.web.SwaggerResourcesProvider; | |
| 9 | + | |
| 10 | +import java.util.ArrayList; | |
| 11 | +import java.util.List; | |
| 12 | + | |
| 13 | +@Component | |
| 14 | +@Primary | |
| 15 | +public class DocumentationConfig implements SwaggerResourcesProvider { | |
| 16 | + | |
| 17 | + private RouteLocator routeLocator; | |
| 18 | + | |
| 19 | + public DocumentationConfig(RouteLocator routeLocator){ | |
| 20 | + this.routeLocator = routeLocator; | |
| 21 | + } | |
| 22 | + | |
| 23 | + @Override | |
| 24 | + public List<SwaggerResource> get() { | |
| 25 | + | |
| 26 | + List resources = new ArrayList(); | |
| 27 | + | |
| 28 | + List<Route> routes = routeLocator.getRoutes(); | |
| 29 | + | |
| 30 | + System.out.println("routes:"+routes.toString()); | |
| 31 | + | |
| 32 | + for (Route route : | |
| 33 | + routes) { | |
| 34 | + resources.add(swaggerResource(route.getId(), route.getFullPath().replace("**", "v2/api-docs"), "1.0")); | |
| 35 | + } | |
| 36 | + | |
| 37 | +// resources.add(swaggerResource("海康指纹接口","/mygateway/haikangserver/v2/api-docs","1.0")); | |
| 38 | + | |
| 39 | +// resources.add(swaggerResource("大华人脸接口","","1.0")); | |
| 40 | + | |
| 41 | + return resources; | |
| 42 | + } | |
| 43 | + | |
| 44 | + private SwaggerResource swaggerResource(String name,String location,String version){ | |
| 45 | + | |
| 46 | + SwaggerResource swaggerResource = new SwaggerResource(); | |
| 47 | + swaggerResource.setName(name); | |
| 48 | + swaggerResource.setLocation(location); | |
| 49 | + swaggerResource.setSwaggerVersion(version); | |
| 50 | + return swaggerResource; | |
| 51 | + | |
| 52 | + } | |
| 53 | +} | ... | ... |
cloud/geteway/src/main/java/com/example/geteway/GetewayApplication.java
| 1 | 1 | package com.example.geteway; |
| 2 | 2 | |
| 3 | 3 | import org.springframework.boot.SpringApplication; |
| 4 | -import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | -import org.springframework.boot.context.properties.ConfigurationProperties; | |
| 6 | 4 | import org.springframework.cloud.client.SpringCloudApplication; |
| 5 | +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; | |
| 7 | 6 | import org.springframework.cloud.netflix.zuul.EnableZuulProxy; |
| 7 | +import org.springframework.context.annotation.Bean; | |
| 8 | +import org.springframework.web.cors.CorsConfiguration; | |
| 9 | +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; | |
| 10 | +import org.springframework.web.filter.CorsFilter; | |
| 8 | 11 | |
| 9 | 12 | /** |
| 10 | 13 | * 统一网关配置 |
| 11 | 14 | * 通过服务路由的功能,在对外提供服务的时候,只需要通过暴露Zuul中配置的调用地址就可以让调用方统一的来访问我们的服务; |
| 12 | 15 | */ |
| 13 | -@ConfigurationProperties | |
| 14 | -@EnableZuulProxy | |
| 15 | 16 | @SpringCloudApplication |
| 17 | +@EnableDiscoveryClient | |
| 18 | +@EnableZuulProxy | |
| 16 | 19 | public class GetewayApplication { |
| 17 | 20 | |
| 18 | 21 | public static void main(String[] args) { |
| 19 | 22 | SpringApplication.run(GetewayApplication.class, args); |
| 20 | 23 | } |
| 21 | 24 | |
| 25 | + | |
| 26 | + // 跨域访问 | |
| 27 | + @Bean | |
| 28 | + public CorsFilter corsFilter() { | |
| 29 | + final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); | |
| 30 | + final CorsConfiguration config = new CorsConfiguration(); | |
| 31 | + config.setAllowCredentials(true); | |
| 32 | + config.addAllowedOrigin("*"); | |
| 33 | + config.addAllowedHeader("*"); | |
| 34 | + config.addAllowedMethod("*"); | |
| 35 | + config.setMaxAge(3600L); | |
| 36 | + source.registerCorsConfiguration("/**", config); | |
| 37 | + return new CorsFilter(source); | |
| 38 | + } | |
| 39 | + | |
| 22 | 40 | } | ... | ... |
cloud/geteway/src/main/java/com/example/geteway/Swagger2.java
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package com.example.geteway; | |
| 2 | + | |
| 3 | +import org.springframework.context.annotation.Bean; | |
| 4 | +import org.springframework.context.annotation.Configuration; | |
| 5 | +import springfox.documentation.builders.ApiInfoBuilder; | |
| 6 | +import springfox.documentation.builders.PathSelectors; | |
| 7 | +import springfox.documentation.builders.RequestHandlerSelectors; | |
| 8 | +import springfox.documentation.service.ApiInfo; | |
| 9 | +import springfox.documentation.spi.DocumentationType; | |
| 10 | +import springfox.documentation.spring.web.plugins.Docket; | |
| 11 | +import springfox.documentation.swagger2.annotations.EnableSwagger2; | |
| 12 | + | |
| 13 | +@Configuration | |
| 14 | +@EnableSwagger2 | |
| 15 | +public class Swagger2 { | |
| 16 | + | |
| 17 | + @Bean | |
| 18 | + public Docket createRestApi() { | |
| 19 | + return new Docket(DocumentationType.SWAGGER_2) | |
| 20 | + .apiInfo(apiInfo()) | |
| 21 | + .select() | |
| 22 | + .apis(RequestHandlerSelectors.basePackage("com.example.geteway.control")) | |
| 23 | + .paths(PathSelectors.any()) | |
| 24 | + .build(); | |
| 25 | + } | |
| 26 | + | |
| 27 | + private ApiInfo apiInfo() { | |
| 28 | + return new ApiInfoBuilder() | |
| 29 | + .title("网关服务统一接口") | |
| 30 | + .contact("sincere") | |
| 31 | + .description("") | |
| 32 | + .termsOfServiceUrl("") | |
| 33 | + .version("1.0") | |
| 34 | + .build(); | |
| 35 | + } | |
| 36 | + | |
| 37 | +} | ... | ... |
cloud/geteway/src/main/resources/META-INF/additional-spring-configuration-metadata.json
cloud/geteway/src/main/resources/application.yaml
| 1 | -zuul: | |
| 2 | - routes: | |
| 3 | - api-a-url: | |
| 4 | - path: /aurl/** | |
| 5 | -# url: http://localhost:2222/ | |
| 6 | - serviceId: consumer | |
| 7 | - api-b-url: | |
| 8 | - path: /burl/** | |
| 9 | - serviceId: hello-service | |
| 10 | - | |
| 11 | 1 | server: |
| 12 | 2 | port: 8083 |
| 13 | 3 | |
| 14 | -spring: | |
| 15 | - application: | |
| 16 | - name: geteway | |
| 17 | - | |
| 18 | 4 | eureka: |
| 19 | 5 | client: |
| 20 | 6 | fetch-registry: true |
| 21 | 7 | register-with-eureka: true |
| 22 | - serviceUrl: | |
| 23 | - defaultZone: http://localhost:1111/eureka | |
| 8 | + service-url: | |
| 9 | +# defaultZone: http://localhost:8761/eureka/ | |
| 10 | + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ | |
| 24 | 11 | instance: |
| 25 | 12 | hostname: localhost |
| 26 | 13 | lease-expiration-duration-in-seconds: 90 |
| 27 | 14 | lease-renewal-interval-in-seconds: 30 |
| 15 | + prefer-ip-address: true | |
| 16 | + | |
| 17 | +spring: | |
| 18 | + application: | |
| 19 | + name: sincere_geteway | |
| 20 | + | |
| 21 | + | |
| 22 | +zuul: | |
| 23 | + routes: | |
| 24 | + api-dahua-url: | |
| 25 | + path: /dahua/** | |
| 26 | + serviceId: dahuaserver | |
| 27 | + api-haikang-url: | |
| 28 | + path: /haikang/** | |
| 29 | + serviceId: haikangserver | |
| 30 | + api-iot-url: | |
| 31 | + path: /iot/** | |
| 32 | + serviceId: NetCoreService | |
| 33 | + prefix: /mygateway | |
| 34 | + | |
| 35 | + | |
| 36 | +ribbon: | |
| 37 | + eureka: | |
| 38 | + enabled: false | |
| 39 | + | |
| 40 | +haikangserver: | |
| 41 | + ribbon: | |
| 42 | + listOfServers: http://121.40.109.21:9898 | |
| 43 | + | |
| 44 | +dahuaserver: | |
| 45 | + ribbon: | |
| 46 | + listOfServers: http://114.55.30.100:8991 | |
| 47 | + | |
| 48 | + | |
| 49 | + | ... | ... |
| ... | ... | @@ -0,0 +1,381 @@ |
| 1 | +# | |
| 2 | +# A fatal error has been detected by the Java Runtime Environment: | |
| 3 | +# | |
| 4 | +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000023bd643f, pid=12884, tid=0x0000000000000fc8 | |
| 5 | +# | |
| 6 | +# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13) | |
| 7 | +# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops) | |
| 8 | +# Problematic frame: | |
| 9 | +# C [HCEHomeAlarm.DLL+0x2643f] | |
| 10 | +# | |
| 11 | +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows | |
| 12 | +# | |
| 13 | +# If you would like to submit a bug report, please visit: | |
| 14 | +# http://bugreport.java.com/bugreport/crash.jsp | |
| 15 | +# | |
| 16 | + | |
| 17 | +--------------- T H R E A D --------------- | |
| 18 | + | |
| 19 | +Current thread (0x0000000017e39000): VMThread [stack: 0x0000000019b50000,0x0000000019c50000] [id=4040] | |
| 20 | + | |
| 21 | +siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000 | |
| 22 | + | |
| 23 | +Registers: | |
| 24 | +RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000 | |
| 25 | +RSP=0x0000000019c4ee30, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x0000000000be2e90 | |
| 26 | +R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x0000000019c4eec0 | |
| 27 | +R12=0x0000000000c288b0, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x0000000000c28960 | |
| 28 | +RIP=0x0000000023bd643f, EFLAGS=0x0000000000010206 | |
| 29 | + | |
| 30 | +Top of Stack: (sp=0x0000000019c4ee30) | |
| 31 | +0x0000000019c4ee30: 0000000026503f70 00007ffd44a407cd | |
| 32 | +0x0000000019c4ee40: 0000000000c0b790 0000002700ba0000 | |
| 33 | +0x0000000019c4ee50: 0000000000be2e90 0000000023c6cb11 | |
| 34 | +0x0000000019c4ee60: 0000000000000000 0000000000000000 | |
| 35 | +0x0000000019c4ee70: 0000000000bed990 0000002644a3fba1 | |
| 36 | +0x0000000019c4ee80: 0000000000bef440 0000000023bd6bf2 | |
| 37 | +0x0000000019c4ee90: 0000000000000000 0000000000000001 | |
| 38 | +0x0000000019c4eea0: 0000000000000000 0000000000c288b0 | |
| 39 | +0x0000000019c4eeb0: 0000000000000001 0000000023bd6620 | |
| 40 | +0x0000000019c4eec0: 0000000000000000 0000000000bef440 | |
| 41 | +0x0000000019c4eed0: 0000000000c288b0 0000000000000000 | |
| 42 | +0x0000000019c4eee0: 0000000000c0f830 0000000017cc56d0 | |
| 43 | +0x0000000019c4eef0: 00000000211cdda0 0000000023bd5cc8 | |
| 44 | +0x0000000019c4ef00: 0000000017cc56d0 0000000000bef440 | |
| 45 | +0x0000000019c4ef10: 0000000000000000 0000000000000000 | |
| 46 | +0x0000000019c4ef20: 00000000211cdda0 0000000023c6db04 | |
| 47 | + | |
| 48 | +Instructions: (pc=0x0000000023bd643f) | |
| 49 | +0x0000000023bd641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc | |
| 50 | +0x0000000023bd642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20 | |
| 51 | +0x0000000023bd643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0 | |
| 52 | +0x0000000023bd644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba | |
| 53 | + | |
| 54 | + | |
| 55 | +Register to memory mapping: | |
| 56 | + | |
| 57 | +RAX=0x0000000000000001 is an unknown value | |
| 58 | +RBX=0x0000000000000000 is an unknown value | |
| 59 | +RCX=0x0000000000000000 is an unknown value | |
| 60 | +RDX=0x0000000000000000 is an unknown value | |
| 61 | +RSP=0x0000000019c4ee30 is an unknown value | |
| 62 | +RBP=0x0000000000000000 is an unknown value | |
| 63 | +RSI=0x0000000000000000 is an unknown value | |
| 64 | +RDI=0x0000000000be2e90 is an unknown value | |
| 65 | +R8 =0x0000000000000001 is an unknown value | |
| 66 | +R9 =0x0000000000000001 is an unknown value | |
| 67 | +R10=0x0000000000008000 is an unknown value | |
| 68 | +R11=0x0000000019c4eec0 is an unknown value | |
| 69 | +R12=0x0000000000c288b0 is an unknown value | |
| 70 | +R13=0x0000000000000000 is an unknown value | |
| 71 | +R14=0x0000000000000001 is an unknown value | |
| 72 | +R15=0x0000000000c28960 is an unknown value | |
| 73 | + | |
| 74 | + | |
| 75 | +Stack: [0x0000000019b50000,0x0000000019c50000], sp=0x0000000019c4ee30, free space=1019k | |
| 76 | +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |
| 77 | + | |
| 78 | +VM_Operation (0x0000000002a4ed00): Exit, mode: safepoint, requested by thread 0x0000000002e53000 | |
| 79 | + | |
| 80 | + | |
| 81 | +--------------- P R O C E S S --------------- | |
| 82 | + | |
| 83 | +Java Threads: ( => current thread ) | |
| 84 | + 0x0000000019dfd000 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=11780, stack(0x00000000260a0000,0x00000000261a0000)] | |
| 85 | + 0x0000000019df9800 JavaThread "scheduling-1" [_thread_blocked, id=12604, stack(0x0000000024340000,0x0000000024440000)] | |
| 86 | + 0x0000000019f01800 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=19564, stack(0x000000001aa50000,0x000000001ab50000)] | |
| 87 | + 0x0000000019e82800 JavaThread "Service Thread" daemon [_thread_blocked, id=9888, stack(0x000000001a850000,0x000000001a950000)] | |
| 88 | + 0x0000000019dfa000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=16940, stack(0x000000001a750000,0x000000001a850000)] | |
| 89 | + 0x0000000019df0800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=22068, stack(0x000000001a650000,0x000000001a750000)] | |
| 90 | + 0x0000000019de2000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=16092, stack(0x000000001a550000,0x000000001a650000)] | |
| 91 | + 0x0000000019dde000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=16548, stack(0x000000001a450000,0x000000001a550000)] | |
| 92 | + 0x0000000019d8a000 JavaThread "Attach Listener" daemon [_thread_blocked, id=21868, stack(0x000000001a350000,0x000000001a450000)] | |
| 93 | + 0x0000000019d70800 JavaThread "Finalizer" daemon [_thread_blocked, id=19644, stack(0x000000001a150000,0x000000001a250000)] | |
| 94 | + 0x0000000002f46000 JavaThread "Reference Handler" daemon [_thread_blocked, id=19780, stack(0x0000000019c50000,0x0000000019d50000)] | |
| 95 | + 0x0000000002e53000 JavaThread "main" [_thread_blocked, id=20288, stack(0x0000000002950000,0x0000000002a50000)] | |
| 96 | + | |
| 97 | +Other Threads: | |
| 98 | +=>0x0000000017e39000 VMThread [stack: 0x0000000019b50000,0x0000000019c50000] [id=4040] | |
| 99 | + | |
| 100 | +VM state:at safepoint (shutting down) | |
| 101 | + | |
| 102 | +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) | |
| 103 | +[0x0000000000b5def0] Threads_lock - owner thread: 0x0000000017e39000 | |
| 104 | + | |
| 105 | +Heap: | |
| 106 | + PSYoungGen total 280064K, used 229811K [0x00000000d6300000, 0x00000000ed100000, 0x0000000100000000) | |
| 107 | + eden space 264704K, 83% used [0x00000000d6300000,0x00000000e3a944c0,0x00000000e6580000) | |
| 108 | + from space 15360K, 58% used [0x00000000e6580000,0x00000000e6e588a0,0x00000000e7480000) | |
| 109 | + to space 14848K, 0% used [0x00000000ec280000,0x00000000ec280000,0x00000000ed100000) | |
| 110 | + ParOldGen total 77312K, used 30497K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000) | |
| 111 | + object space 77312K, 39% used [0x0000000082800000,0x00000000845c8410,0x0000000087380000) | |
| 112 | + Metaspace used 54195K, capacity 56452K, committed 56536K, reserved 1097728K | |
| 113 | + class space used 7208K, capacity 7622K, committed 7680K, reserved 1048576K | |
| 114 | + | |
| 115 | +Card table byte_map: [0x0000000012310000,0x0000000012700000] byte_map_base: 0x0000000011efc000 | |
| 116 | + | |
| 117 | +Marking Bits: (ParMarkBitMap*) 0x0000000075b82d00 | |
| 118 | + Begin Bits: [0x00000000131a0000, 0x0000000015100000) | |
| 119 | + End Bits: [0x0000000015100000, 0x0000000017060000) | |
| 120 | + | |
| 121 | +Polling page: 0x0000000000b40000 | |
| 122 | + | |
| 123 | +CodeCache: size=245760Kb used=18234Kb max_used=19136Kb free=227526Kb | |
| 124 | + bounds [0x0000000002f50000, 0x0000000004260000, 0x0000000011f50000] | |
| 125 | + total_blobs=5280 nmethods=4783 adapters=409 | |
| 126 | + compilation: enabled | |
| 127 | + | |
| 128 | +Compilation events (10 events): | |
| 129 | +Event: 12.439 Thread 0x0000000019dfa000 nmethod 5603 0x0000000003b65090 code [0x0000000003b651e0, 0x0000000003b652d0] | |
| 130 | +Event: 12.439 Thread 0x0000000019dfa000 5583 1 java.text.NumberFormat::isGroupingUsed (5 bytes) | |
| 131 | +Event: 12.439 Thread 0x0000000019dfa000 nmethod 5583 0x000000000325c510 code [0x000000000325c660, 0x000000000325c770] | |
| 132 | +Event: 12.439 Thread 0x0000000019dfa000 5589 1 java.text.DecimalFormatSymbols::getGroupingSeparator (5 bytes) | |
| 133 | +Event: 12.440 Thread 0x0000000019dfa000 nmethod 5589 0x000000000346aa10 code [0x000000000346ab60, 0x000000000346ac70] | |
| 134 | +Event: 12.440 Thread 0x0000000019dfa000 5590 1 java.text.DecimalFormatSymbols::getDecimalSeparator (5 bytes) | |
| 135 | +Event: 12.440 Thread 0x0000000019dfa000 nmethod 5590 0x0000000003080750 code [0x00000000030808a0, 0x00000000030809b0] | |
| 136 | +Event: 12.443 Thread 0x0000000019dfa000 5612 % 3 sun.security.util.Cache$EqualByteArray::hashCode @ 19 (57 bytes) | |
| 137 | +Event: 12.443 Thread 0x0000000019dfa000 nmethod 5612% 0x00000000032f5250 code [0x00000000032f53c0, 0x00000000032f5690] | |
| 138 | +Event: 12.443 Thread 0x0000000019dfa000 5613 2 sun.security.x509.AlgorithmId::parse (100 bytes) | |
| 139 | + | |
| 140 | +GC Heap History (10 events): | |
| 141 | +Event: 4.597 GC heap before | |
| 142 | +{Heap before GC invocations=9 (full 1): | |
| 143 | + PSYoungGen total 138752K, used 111588K [0x00000000d6300000, 0x00000000e3c80000, 0x0000000100000000) | |
| 144 | + eden space 129536K, 79% used [0x00000000d6300000,0x00000000dc6fd9f0,0x00000000de180000) | |
| 145 | + from space 9216K, 99% used [0x00000000de180000,0x00000000dea7b8a8,0x00000000dea80000) | |
| 146 | + to space 11776K, 0% used [0x00000000e3100000,0x00000000e3100000,0x00000000e3c80000) | |
| 147 | + ParOldGen total 48640K, used 9043K [0x0000000082800000, 0x0000000085780000, 0x00000000d6300000) | |
| 148 | + object space 48640K, 18% used [0x0000000082800000,0x00000000830d4c18,0x0000000085780000) | |
| 149 | + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K | |
| 150 | + class space used 4446K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 151 | +Event: 4.610 GC heap after | |
| 152 | +Heap after GC invocations=9 (full 1): | |
| 153 | + PSYoungGen total 208384K, used 11753K [0x00000000d6300000, 0x00000000e5400000, 0x0000000100000000) | |
| 154 | + eden space 196608K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2300000) | |
| 155 | + from space 11776K, 99% used [0x00000000e3100000,0x00000000e3c7a6e8,0x00000000e3c80000) | |
| 156 | + to space 14336K, 0% used [0x00000000e2300000,0x00000000e2300000,0x00000000e3100000) | |
| 157 | + ParOldGen total 48640K, used 11372K [0x0000000082800000, 0x0000000085780000, 0x00000000d6300000) | |
| 158 | + object space 48640K, 23% used [0x0000000082800000,0x000000008331b308,0x0000000085780000) | |
| 159 | + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K | |
| 160 | + class space used 4446K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 161 | +} | |
| 162 | +Event: 4.610 GC heap before | |
| 163 | +{Heap before GC invocations=10 (full 2): | |
| 164 | + PSYoungGen total 208384K, used 11753K [0x00000000d6300000, 0x00000000e5400000, 0x0000000100000000) | |
| 165 | + eden space 196608K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2300000) | |
| 166 | + from space 11776K, 99% used [0x00000000e3100000,0x00000000e3c7a6e8,0x00000000e3c80000) | |
| 167 | + to space 14336K, 0% used [0x00000000e2300000,0x00000000e2300000,0x00000000e3100000) | |
| 168 | + ParOldGen total 48640K, used 11372K [0x0000000082800000, 0x0000000085780000, 0x00000000d6300000) | |
| 169 | + object space 48640K, 23% used [0x0000000082800000,0x000000008331b308,0x0000000085780000) | |
| 170 | + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K | |
| 171 | + class space used 4446K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 172 | +Event: 4.663 GC heap after | |
| 173 | +Heap after GC invocations=10 (full 2): | |
| 174 | + PSYoungGen total 208384K, used 0K [0x00000000d6300000, 0x00000000e5400000, 0x0000000100000000) | |
| 175 | + eden space 196608K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2300000) | |
| 176 | + from space 11776K, 0% used [0x00000000e3100000,0x00000000e3100000,0x00000000e3c80000) | |
| 177 | + to space 14336K, 0% used [0x00000000e2300000,0x00000000e2300000,0x00000000e3100000) | |
| 178 | + ParOldGen total 77312K, used 19192K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000) | |
| 179 | + object space 77312K, 24% used [0x0000000082800000,0x0000000083abe2f0,0x0000000087380000) | |
| 180 | + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K | |
| 181 | + class space used 4446K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 182 | +} | |
| 183 | +Event: 6.758 GC heap before | |
| 184 | +{Heap before GC invocations=11 (full 2): | |
| 185 | + PSYoungGen total 208384K, used 196608K [0x00000000d6300000, 0x00000000e5400000, 0x0000000100000000) | |
| 186 | + eden space 196608K, 100% used [0x00000000d6300000,0x00000000e2300000,0x00000000e2300000) | |
| 187 | + from space 11776K, 0% used [0x00000000e3100000,0x00000000e3100000,0x00000000e3c80000) | |
| 188 | + to space 14336K, 0% used [0x00000000e2300000,0x00000000e2300000,0x00000000e3100000) | |
| 189 | + ParOldGen total 77312K, used 19192K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000) | |
| 190 | + object space 77312K, 24% used [0x0000000082800000,0x0000000083abe2f0,0x0000000087380000) | |
| 191 | + Metaspace used 40698K, capacity 42018K, committed 42200K, reserved 1085440K | |
| 192 | + class space used 5263K, capacity 5527K, committed 5632K, reserved 1048576K | |
| 193 | +Event: 6.770 GC heap after | |
| 194 | +Heap after GC invocations=11 (full 2): | |
| 195 | + PSYoungGen total 210944K, used 9658K [0x00000000d6300000, 0x00000000e8400000, 0x0000000100000000) | |
| 196 | + eden space 196608K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2300000) | |
| 197 | + from space 14336K, 67% used [0x00000000e2300000,0x00000000e2c6e800,0x00000000e3100000) | |
| 198 | + to space 14336K, 0% used [0x00000000e7600000,0x00000000e7600000,0x00000000e8400000) | |
| 199 | + ParOldGen total 77312K, used 19200K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000) | |
| 200 | + object space 77312K, 24% used [0x0000000082800000,0x0000000083ac02f0,0x0000000087380000) | |
| 201 | + Metaspace used 40698K, capacity 42018K, committed 42200K, reserved 1085440K | |
| 202 | + class space used 5263K, capacity 5527K, committed 5632K, reserved 1048576K | |
| 203 | +} | |
| 204 | +Event: 8.408 GC heap before | |
| 205 | +{Heap before GC invocations=12 (full 2): | |
| 206 | + PSYoungGen total 210944K, used 206266K [0x00000000d6300000, 0x00000000e8400000, 0x0000000100000000) | |
| 207 | + eden space 196608K, 100% used [0x00000000d6300000,0x00000000e2300000,0x00000000e2300000) | |
| 208 | + from space 14336K, 67% used [0x00000000e2300000,0x00000000e2c6e800,0x00000000e3100000) | |
| 209 | + to space 14336K, 0% used [0x00000000e7600000,0x00000000e7600000,0x00000000e8400000) | |
| 210 | + ParOldGen total 77312K, used 19200K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000) | |
| 211 | + object space 77312K, 24% used [0x0000000082800000,0x0000000083ac02f0,0x0000000087380000) | |
| 212 | + Metaspace used 44283K, capacity 45784K, committed 46040K, reserved 1089536K | |
| 213 | + class space used 5737K, capacity 6056K, committed 6144K, reserved 1048576K | |
| 214 | +Event: 8.422 GC heap after | |
| 215 | +Heap after GC invocations=12 (full 2): | |
| 216 | + PSYoungGen total 275968K, used 13473K [0x00000000d6300000, 0x00000000e8380000, 0x0000000100000000) | |
| 217 | + eden space 262144K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e6300000) | |
| 218 | + from space 13824K, 97% used [0x00000000e7600000,0x00000000e83285c0,0x00000000e8380000) | |
| 219 | + to space 15360K, 0% used [0x00000000e6580000,0x00000000e6580000,0x00000000e7480000) | |
| 220 | + ParOldGen total 77312K, used 19208K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000) | |
| 221 | + object space 77312K, 24% used [0x0000000082800000,0x0000000083ac22f0,0x0000000087380000) | |
| 222 | + Metaspace used 44283K, capacity 45784K, committed 46040K, reserved 1089536K | |
| 223 | + class space used 5737K, capacity 6056K, committed 6144K, reserved 1048576K | |
| 224 | +} | |
| 225 | +Event: 10.167 GC heap before | |
| 226 | +{Heap before GC invocations=13 (full 2): | |
| 227 | + PSYoungGen total 275968K, used 275617K [0x00000000d6300000, 0x00000000e8380000, 0x0000000100000000) | |
| 228 | + eden space 262144K, 100% used [0x00000000d6300000,0x00000000e6300000,0x00000000e6300000) | |
| 229 | + from space 13824K, 97% used [0x00000000e7600000,0x00000000e83285c0,0x00000000e8380000) | |
| 230 | + to space 15360K, 0% used [0x00000000e6580000,0x00000000e6580000,0x00000000e7480000) | |
| 231 | + ParOldGen total 77312K, used 19208K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000) | |
| 232 | + object space 77312K, 24% used [0x0000000082800000,0x0000000083ac22f0,0x0000000087380000) | |
| 233 | + Metaspace used 47457K, capacity 49506K, committed 49624K, reserved 1091584K | |
| 234 | + class space used 6190K, capacity 6559K, committed 6656K, reserved 1048576K | |
| 235 | +Event: 10.189 GC heap after | |
| 236 | +Heap after GC invocations=13 (full 2): | |
| 237 | + PSYoungGen total 280064K, used 9058K [0x00000000d6300000, 0x00000000ed100000, 0x0000000100000000) | |
| 238 | + eden space 264704K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e6580000) | |
| 239 | + from space 15360K, 58% used [0x00000000e6580000,0x00000000e6e588a0,0x00000000e7480000) | |
| 240 | + to space 14848K, 0% used [0x00000000ec280000,0x00000000ec280000,0x00000000ed100000) | |
| 241 | + ParOldGen total 77312K, used 30497K [0x0000000082800000, 0x0000000087380000, 0x00000000d6300000) | |
| 242 | + object space 77312K, 39% used [0x0000000082800000,0x00000000845c8410,0x0000000087380000) | |
| 243 | + Metaspace used 47457K, capacity 49506K, committed 49624K, reserved 1091584K | |
| 244 | + class space used 6190K, capacity 6559K, committed 6656K, reserved 1048576K | |
| 245 | +} | |
| 246 | + | |
| 247 | +Deoptimization events (10 events): | |
| 248 | +Event: 12.049 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000036e01d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 249 | +Event: 12.050 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003af9284 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 250 | +Event: 12.059 Thread 0x0000000002e53000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x00000000032f2ae8 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63 | |
| 251 | +Event: 12.098 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000036e01d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 252 | +Event: 12.099 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003af9284 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 253 | +Event: 12.101 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000036e01d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 254 | +Event: 12.101 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003af9284 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 255 | +Event: 12.380 Thread 0x0000000019df9800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d91e2c method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7 | |
| 256 | +Event: 12.380 Thread 0x0000000019df9800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000359a7dc method=java.net.URLStreamHandler.parseURL(Ljava/net/URL;Ljava/lang/String;II)V @ 155 | |
| 257 | +Event: 12.390 Thread 0x0000000019df9800 Uncommon trap: reason=null_check action=make_not_entrant pc=0x0000000003d8f900 method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7 | |
| 258 | + | |
| 259 | +Classes redefined (0 events): | |
| 260 | +No events | |
| 261 | + | |
| 262 | +Internal exceptions (10 events): | |
| 263 | +Event: 11.473 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000df3dfa08) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 264 | +Event: 11.474 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/actuate/autoconfigure/web/server/ManagementServerPropertiesCustomizer> (0x00000000df41f0f8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\shar | |
| 265 | +Event: 11.511 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000df6df7a8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 266 | +Event: 11.512 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistrationCustomizer> (0x00000000df71b608) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\clas | |
| 267 | +Event: 11.514 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/serviceregistry/RegistrationCustomizer> (0x00000000df770870) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDi | |
| 268 | +Event: 11.515 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/ServiceInstanceCustomizer> (0x00000000df79a420) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 269 | +Event: 12.020 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e134a3b0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 270 | +Event: 12.021 Thread 0x0000000002e53000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000e1375058) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 271 | +Event: 12.408 Thread 0x0000000019dfb800 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e34b4888) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 272 | +Event: 12.410 Thread 0x0000000019dfb800 Exception <a 'java/lang/ClassNotFoundException': com/netflix/appinfo/ApplicationInfoManagerCustomizer> (0x00000000e34dead0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 273 | + | |
| 274 | +Events (10 events): | |
| 275 | +Event: 12.438 Thread 0x0000000019dfa000 flushing nmethod 0x000000000402b310 | |
| 276 | +Event: 12.438 Thread 0x0000000019dfa000 flushing nmethod 0x00000000040b2c90 | |
| 277 | +Event: 12.438 Thread 0x0000000019dfa000 flushing nmethod 0x00000000040f6a90 | |
| 278 | +Event: 12.439 loading class sun/security/x509/IssuerAlternativeNameExtension | |
| 279 | +Event: 12.440 Executing VM operation: RevokeBias | |
| 280 | +Event: 12.440 Executing VM operation: RevokeBias done | |
| 281 | +Event: 12.441 Thread 0x0000000019dfb800 Thread exited: 0x0000000019dfb800 | |
| 282 | +Event: 12.442 loading class sun/security/x509/IssuerAlternativeNameExtension done | |
| 283 | +Event: 12.443 Thread 0x0000000019d88800 Thread exited: 0x0000000019d88800 | |
| 284 | +Event: 12.443 Executing VM operation: Exit | |
| 285 | + | |
| 286 | + | |
| 287 | +Dynamic libraries: | |
| 288 | +0x00007ff702290000 - 0x00007ff7022c7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe | |
| 289 | +0x00007ffd44a00000 - 0x00007ffd44bf0000 C:\WINDOWS\SYSTEM32\ntdll.dll | |
| 290 | +0x00007ffd438e0000 - 0x00007ffd43992000 C:\WINDOWS\System32\KERNEL32.DLL | |
| 291 | +0x00007ffd41c40000 - 0x00007ffd41ee3000 C:\WINDOWS\System32\KERNELBASE.dll | |
| 292 | +0x00007ffd44020000 - 0x00007ffd440c3000 C:\WINDOWS\System32\ADVAPI32.dll | |
| 293 | +0x00007ffd43e70000 - 0x00007ffd43f0e000 C:\WINDOWS\System32\msvcrt.dll | |
| 294 | +0x00007ffd43bb0000 - 0x00007ffd43c47000 C:\WINDOWS\System32\sechost.dll | |
| 295 | +0x00007ffd43350000 - 0x00007ffd43470000 C:\WINDOWS\System32\RPCRT4.dll | |
| 296 | +0x00007ffd440d0000 - 0x00007ffd44263000 C:\WINDOWS\System32\USER32.dll | |
| 297 | +0x00007ffd41f40000 - 0x00007ffd41f61000 C:\WINDOWS\System32\win32u.dll | |
| 298 | +0x00007ffd43b10000 - 0x00007ffd43b36000 C:\WINDOWS\System32\GDI32.dll | |
| 299 | +0x00007ffd42190000 - 0x00007ffd42324000 C:\WINDOWS\System32\gdi32full.dll | |
| 300 | +0x00007ffd420f0000 - 0x00007ffd4218e000 C:\WINDOWS\System32\msvcp_win.dll | |
| 301 | +0x00007ffd419b0000 - 0x00007ffd41aaa000 C:\WINDOWS\System32\ucrtbase.dll | |
| 302 | +0x00007ffd2a290000 - 0x00007ffd2a515000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll | |
| 303 | +0x00007ffd42d70000 - 0x00007ffd430a6000 C:\WINDOWS\System32\combase.dll | |
| 304 | +0x00007ffd41b60000 - 0x00007ffd41be0000 C:\WINDOWS\System32\bcryptPrimitives.dll | |
| 305 | +0x00007ffd439a0000 - 0x00007ffd439ce000 C:\WINDOWS\System32\IMM32.DLL | |
| 306 | +0x0000000075c10000 - 0x0000000075ce2000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll | |
| 307 | +0x0000000075360000 - 0x0000000075c02000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll | |
| 308 | +0x00007ffd43e60000 - 0x00007ffd43e68000 C:\WINDOWS\System32\PSAPI.DLL | |
| 309 | +0x00007ffd2f800000 - 0x00007ffd2f809000 C:\WINDOWS\SYSTEM32\WSOCK32.dll | |
| 310 | +0x00007ffd3c430000 - 0x00007ffd3c454000 C:\WINDOWS\SYSTEM32\WINMM.dll | |
| 311 | +0x00007ffd38680000 - 0x00007ffd3868a000 C:\WINDOWS\SYSTEM32\VERSION.dll | |
| 312 | +0x00007ffd439d0000 - 0x00007ffd43a3f000 C:\WINDOWS\System32\WS2_32.dll | |
| 313 | +0x00007ffd3c3a0000 - 0x00007ffd3c3cd000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll | |
| 314 | +0x00007ffd41ef0000 - 0x00007ffd41f3a000 C:\WINDOWS\System32\cfgmgr32.dll | |
| 315 | +0x0000000075350000 - 0x000000007535f000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll | |
| 316 | +0x0000000075320000 - 0x0000000075349000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll | |
| 317 | +0x0000000075300000 - 0x0000000075316000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll | |
| 318 | +0x00007ffd44270000 - 0x00007ffd44952000 C:\WINDOWS\System32\SHELL32.dll | |
| 319 | +0x00007ffd43f70000 - 0x00007ffd44019000 C:\WINDOWS\System32\shcore.dll | |
| 320 | +0x00007ffd42330000 - 0x00007ffd42aac000 C:\WINDOWS\System32\windows.storage.dll | |
| 321 | +0x00007ffd41970000 - 0x00007ffd4198f000 C:\WINDOWS\System32\profapi.dll | |
| 322 | +0x00007ffd41920000 - 0x00007ffd4196a000 C:\WINDOWS\System32\powrprof.dll | |
| 323 | +0x00007ffd418d0000 - 0x00007ffd418e0000 C:\WINDOWS\System32\UMPDC.dll | |
| 324 | +0x00007ffd42ab0000 - 0x00007ffd42b02000 C:\WINDOWS\System32\shlwapi.dll | |
| 325 | +0x00007ffd41900000 - 0x00007ffd41911000 C:\WINDOWS\System32\kernel.appcore.dll | |
| 326 | +0x00007ffd41990000 - 0x00007ffd419a7000 C:\WINDOWS\System32\cryptsp.dll | |
| 327 | +0x00000000752d0000 - 0x00000000752dd000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll | |
| 328 | +0x00000000752e0000 - 0x00000000752fa000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll | |
| 329 | +0x00007ffd41140000 - 0x00007ffd411a7000 C:\WINDOWS\system32\mswsock.dll | |
| 330 | +0x0000000075200000 - 0x0000000075211000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll | |
| 331 | +0x00007ffd40e50000 - 0x00007ffd40e8a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL | |
| 332 | +0x00007ffd432b0000 - 0x00007ffd432b8000 C:\WINDOWS\System32\NSI.dll | |
| 333 | +0x00007ffd39d20000 - 0x00007ffd39d36000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL | |
| 334 | +0x00007ffd3a5a0000 - 0x00007ffd3a5bc000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL | |
| 335 | +0x00007ffd40e90000 - 0x00007ffd40f5a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll | |
| 336 | +0x00007ffd37db0000 - 0x00007ffd37dba000 C:\Windows\System32\rasadhlp.dll | |
| 337 | +0x00007ffd38690000 - 0x00007ffd38707000 C:\WINDOWS\System32\fwpuclnt.dll | |
| 338 | +0x00007ffd420c0000 - 0x00007ffd420e6000 C:\WINDOWS\System32\bcrypt.dll | |
| 339 | +0x00007ffd1c5e0000 - 0x00007ffd1c5f6000 C:\WINDOWS\system32\napinsp.dll | |
| 340 | +0x00007ffd1c540000 - 0x00007ffd1c55a000 C:\WINDOWS\system32\pnrpnsp.dll | |
| 341 | +0x00007ffd1c530000 - 0x00007ffd1c53e000 C:\WINDOWS\System32\winrnr.dll | |
| 342 | +0x00007ffd3c4c0000 - 0x00007ffd3c4dc000 C:\WINDOWS\system32\NLAapi.dll | |
| 343 | +0x00007ffd1c390000 - 0x00007ffd1c3a5000 C:\WINDOWS\system32\wshbth.dll | |
| 344 | +0x00007ffd40cb0000 - 0x00007ffd40ce3000 C:\WINDOWS\system32\rsaenh.dll | |
| 345 | +0x00007ffd417f0000 - 0x00007ffd41815000 C:\WINDOWS\SYSTEM32\USERENV.dll | |
| 346 | +0x00007ffd41310000 - 0x00007ffd4131c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll | |
| 347 | +0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna2618661163649852219.tmp | |
| 348 | +0x00000000237e0000 - 0x0000000023bab000 C:\lib\HCEHomeCMS.DLL | |
| 349 | +0x0000000023bb0000 - 0x0000000023f3f000 C:\lib\HCEHomeAlarm.DLL | |
| 350 | +0x00000000235c0000 - 0x00000000237b0000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll | |
| 351 | +0x00007ffd2db10000 - 0x00007ffd2db42000 C:\Program Files\Intel\WiFi\bin\zlib1.dll | |
| 352 | +0x0000000073bd0000 - 0x0000000073bf4000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunec.dll | |
| 353 | +0x00007ffd401f0000 - 0x00007ffd403e4000 C:\WINDOWS\SYSTEM32\dbghelp.dll | |
| 354 | + | |
| 355 | +VM Arguments: | |
| 356 | +java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire7363867838063342798\surefirebooter8063544916016957714.jar C:\Users\taohandong\AppData\Local\Temp\surefire7363867838063342798 2019-09-02T16-04-04_377-jvmRun1 surefire6164308304345521126tmp surefire_05594348443311013379tmp | |
| 357 | +java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire7363867838063342798\surefirebooter8063544916016957714.jar | |
| 358 | +Launcher Type: SUN_STANDARD | |
| 359 | + | |
| 360 | +Environment Variables: | |
| 361 | +JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 | |
| 362 | +CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar; | |
| 363 | +USERNAME=taohandong | |
| 364 | +OS=Windows_NT | |
| 365 | +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | +--------------- S Y S T E M --------------- | |
| 370 | + | |
| 371 | +OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86) | |
| 372 | + | |
| 373 | +CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx | |
| 374 | + | |
| 375 | +Memory: 4k page, physical 8218728k(434472k free), swap 19673296k(3597812k free) | |
| 376 | + | |
| 377 | +vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010) | |
| 378 | + | |
| 379 | +time: Mon Sep 02 16:04:17 2019 | |
| 380 | +elapsed time: 12 seconds (0d 0h 0m 12s) | |
| 381 | + | ... | ... |
cloud/haikang/hs_err_pid1984.log
| ... | ... | @@ -1,380 +0,0 @@ |
| 1 | -# | |
| 2 | -# A fatal error has been detected by the Java Runtime Environment: | |
| 3 | -# | |
| 4 | -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000021b2643f, pid=1984, tid=0x0000000000003cbc | |
| 5 | -# | |
| 6 | -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13) | |
| 7 | -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops) | |
| 8 | -# Problematic frame: | |
| 9 | -# C [HCEHomeAlarm.DLL+0x2643f] | |
| 10 | -# | |
| 11 | -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows | |
| 12 | -# | |
| 13 | -# If you would like to submit a bug report, please visit: | |
| 14 | -# http://bugreport.java.com/bugreport/crash.jsp | |
| 15 | -# | |
| 16 | - | |
| 17 | ---------------- T H R E A D --------------- | |
| 18 | - | |
| 19 | -Current thread (0x0000000017948800): VMThread [stack: 0x0000000019630000,0x0000000019730000] [id=15548] | |
| 20 | - | |
| 21 | -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000 | |
| 22 | - | |
| 23 | -Registers: | |
| 24 | -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000 | |
| 25 | -RSP=0x000000001972f410, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x0000000000696e50 | |
| 26 | -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x000000001972f4a0 | |
| 27 | -R12=0x0000000000663820, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x00000000006638d0 | |
| 28 | -RIP=0x0000000021b2643f, EFLAGS=0x0000000000010202 | |
| 29 | - | |
| 30 | -Top of Stack: (sp=0x000000001972f410) | |
| 31 | -0x000000001972f410: 0000000022b73cd0 00007ff8179607cd | |
| 32 | -0x000000001972f420: 000000000066dd50 0000001f00620000 | |
| 33 | -0x000000001972f430: 0000000000696e50 0000000021bbcb11 | |
| 34 | -0x000000001972f440: 0000000000000000 0000000000000000 | |
| 35 | -0x000000001972f450: 000000000066dcd0 000000151795fba1 | |
| 36 | -0x000000001972f460: 000000000070bce0 0000000021b26bf2 | |
| 37 | -0x000000001972f470: 0000000000000000 0000000000000001 | |
| 38 | -0x000000001972f480: 0000000000000000 0000000000663820 | |
| 39 | -0x000000001972f490: 0000000000000001 0000000021b26620 | |
| 40 | -0x000000001972f4a0: 0000000000000000 000000000070bce0 | |
| 41 | -0x000000001972f4b0: 0000000000663820 0000000000000000 | |
| 42 | -0x000000001972f4c0: 0000000000686320 00000000177d5400 | |
| 43 | -0x000000001972f4d0: 000000000071d230 0000000021b25cc8 | |
| 44 | -0x000000001972f4e0: 00000000177d5400 000000000070bce0 | |
| 45 | -0x000000001972f4f0: 0000000000000000 0000000000000000 | |
| 46 | -0x000000001972f500: 000000000071d230 0000000021bbdb04 | |
| 47 | - | |
| 48 | -Instructions: (pc=0x0000000021b2643f) | |
| 49 | -0x0000000021b2641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc | |
| 50 | -0x0000000021b2642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20 | |
| 51 | -0x0000000021b2643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0 | |
| 52 | -0x0000000021b2644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba | |
| 53 | - | |
| 54 | - | |
| 55 | -Register to memory mapping: | |
| 56 | - | |
| 57 | -RAX=0x0000000000000001 is an unknown value | |
| 58 | -RBX=0x0000000000000000 is an unknown value | |
| 59 | -RCX=0x0000000000000000 is an unknown value | |
| 60 | -RDX=0x0000000000000000 is an unknown value | |
| 61 | -RSP=0x000000001972f410 is an unknown value | |
| 62 | -RBP=0x0000000000000000 is an unknown value | |
| 63 | -RSI=0x0000000000000000 is an unknown value | |
| 64 | -RDI=0x0000000000696e50 is an unknown value | |
| 65 | -R8 =0x0000000000000001 is an unknown value | |
| 66 | -R9 =0x0000000000000001 is an unknown value | |
| 67 | -R10=0x0000000000008000 is an unknown value | |
| 68 | -R11=0x000000001972f4a0 is an unknown value | |
| 69 | -R12=0x0000000000663820 is an unknown value | |
| 70 | -R13=0x0000000000000000 is an unknown value | |
| 71 | -R14=0x0000000000000001 is an unknown value | |
| 72 | -R15=0x00000000006638d0 is an unknown value | |
| 73 | - | |
| 74 | - | |
| 75 | -Stack: [0x0000000019630000,0x0000000019730000], sp=0x000000001972f410, free space=1021k | |
| 76 | -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |
| 77 | - | |
| 78 | -VM_Operation (0x000000000292ef30): Exit, mode: safepoint, requested by thread 0x0000000002933000 | |
| 79 | - | |
| 80 | - | |
| 81 | ---------------- P R O C E S S --------------- | |
| 82 | - | |
| 83 | -Java Threads: ( => current thread ) | |
| 84 | - 0x000000001e5e8800 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=16004, stack(0x00000000232d0000,0x00000000233d0000)] | |
| 85 | - 0x0000000019a0b000 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=2420, stack(0x000000001a590000,0x000000001a690000)] | |
| 86 | - 0x000000001995f000 JavaThread "Service Thread" daemon [_thread_blocked, id=9268, stack(0x000000001a390000,0x000000001a490000)] | |
| 87 | - 0x0000000019917000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=18348, stack(0x000000001a290000,0x000000001a390000)] | |
| 88 | - 0x00000000198c9800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=11476, stack(0x000000001a190000,0x000000001a290000)] | |
| 89 | - 0x00000000198c5000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=21008, stack(0x000000001a090000,0x000000001a190000)] | |
| 90 | - 0x00000000198c2000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=18152, stack(0x0000000019f90000,0x000000001a090000)] | |
| 91 | - 0x000000001986a000 JavaThread "Attach Listener" daemon [_thread_blocked, id=17752, stack(0x0000000019e90000,0x0000000019f90000)] | |
| 92 | - 0x0000000019869000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=13000, stack(0x0000000019d90000,0x0000000019e90000)] | |
| 93 | - 0x0000000017953800 JavaThread "Finalizer" daemon [_thread_blocked, id=19424, stack(0x0000000019c30000,0x0000000019d30000)] | |
| 94 | - 0x0000000002a28800 JavaThread "Reference Handler" daemon [_thread_blocked, id=10312, stack(0x0000000019730000,0x0000000019830000)] | |
| 95 | - 0x0000000002933000 JavaThread "main" [_thread_blocked, id=8952, stack(0x0000000002830000,0x0000000002930000)] | |
| 96 | - | |
| 97 | -Other Threads: | |
| 98 | -=>0x0000000017948800 VMThread [stack: 0x0000000019630000,0x0000000019730000] [id=15548] | |
| 99 | - | |
| 100 | -VM state:at safepoint (shutting down) | |
| 101 | - | |
| 102 | -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) | |
| 103 | -[0x000000000282d870] Threads_lock - owner thread: 0x0000000017948800 | |
| 104 | - | |
| 105 | -Heap: | |
| 106 | - PSYoungGen total 138240K, used 41947K [0x00000000d6300000, 0x00000000e4780000, 0x0000000100000000) | |
| 107 | - eden space 129024K, 25% used [0x00000000d6300000,0x00000000d82fb8d8,0x00000000de100000) | |
| 108 | - from space 9216K, 99% used [0x00000000de100000,0x00000000de9fb570,0x00000000dea00000) | |
| 109 | - to space 10752K, 0% used [0x00000000e3d00000,0x00000000e3d00000,0x00000000e4780000) | |
| 110 | - ParOldGen total 46592K, used 7501K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000) | |
| 111 | - object space 46592K, 16% used [0x0000000082800000,0x0000000082f53758,0x0000000085580000) | |
| 112 | - Metaspace used 34134K, capacity 35704K, committed 35836K, reserved 1081344K | |
| 113 | - class space used 4507K, capacity 4790K, committed 4860K, reserved 1048576K | |
| 114 | - | |
| 115 | -Card table byte_map: [0x0000000011df0000,0x00000000121e0000] byte_map_base: 0x00000000119dc000 | |
| 116 | - | |
| 117 | -Marking Bits: (ParMarkBitMap*) 0x000000005ca12d00 | |
| 118 | - Begin Bits: [0x0000000012c80000, 0x0000000014be0000) | |
| 119 | - End Bits: [0x0000000014be0000, 0x0000000016b40000) | |
| 120 | - | |
| 121 | -Polling page: 0x0000000000610000 | |
| 122 | - | |
| 123 | -CodeCache: size=245760Kb used=12413Kb max_used=12438Kb free=233346Kb | |
| 124 | - bounds [0x0000000002a30000, 0x0000000003670000, 0x0000000011a30000] | |
| 125 | - total_blobs=3721 nmethods=3298 adapters=334 | |
| 126 | - compilation: enabled | |
| 127 | - | |
| 128 | -Compilation events (10 events): | |
| 129 | -Event: 3.146 Thread 0x0000000019917000 3299 3 java.util.logging.LogManager::access$100 (4 bytes) | |
| 130 | -Event: 3.146 Thread 0x0000000019917000 nmethod 3299 0x000000000362f010 code [0x000000000362f160, 0x000000000362f290] | |
| 131 | -Event: 3.146 Thread 0x0000000019917000 3300 3 java.util.logging.LogManager$LoggerContext::requiresDefaultLoggers (29 bytes) | |
| 132 | -Event: 3.146 Thread 0x0000000019917000 nmethod 3300 0x000000000362e990 code [0x000000000362eb00, 0x000000000362ef28] | |
| 133 | -Event: 3.147 Thread 0x0000000019917000 3301 1 java.util.concurrent.ConcurrentHashMap$MapEntry::getValue (5 bytes) | |
| 134 | -Event: 3.147 Thread 0x0000000019917000 nmethod 3301 0x000000000362dc50 code [0x000000000362dda0, 0x000000000362deb0] | |
| 135 | -Event: 3.148 Thread 0x0000000019917000 3302 1 ch.qos.logback.core.pattern.Converter::getNext (5 bytes) | |
| 136 | -Event: 3.148 Thread 0x0000000019917000 nmethod 3302 0x000000000362d990 code [0x000000000362dae0, 0x000000000362dbf0] | |
| 137 | -Event: 3.148 Thread 0x0000000019917000 3303 ! 3 java.util.concurrent.ConcurrentHashMap::clear (176 bytes) | |
| 138 | -Event: 3.149 Thread 0x0000000019917000 nmethod 3303 0x000000000362a990 code [0x000000000362aba0, 0x000000000362b938] | |
| 139 | - | |
| 140 | -GC Heap History (10 events): | |
| 141 | -Event: 1.351 GC heap before | |
| 142 | -{Heap before GC invocations=4 (full 0): | |
| 143 | - PSYoungGen total 37888K, used 30114K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000) | |
| 144 | - eden space 32768K, 76% used [0x00000000d6300000,0x00000000d7b706d8,0x00000000d8300000) | |
| 145 | - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87f8330,0x00000000d8800000) | |
| 146 | - to space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000) | |
| 147 | - ParOldGen total 86016K, used 3943K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 148 | - object space 86016K, 4% used [0x0000000082800000,0x0000000082bd9fa8,0x0000000087c00000) | |
| 149 | - Metaspace used 20631K, capacity 21244K, committed 21504K, reserved 1069056K | |
| 150 | - class space used 2645K, capacity 2802K, committed 2816K, reserved 1048576K | |
| 151 | -Event: 1.356 GC heap after | |
| 152 | -Heap after GC invocations=4 (full 0): | |
| 153 | - PSYoungGen total 70656K, used 5109K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000) | |
| 154 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 155 | - from space 5120K, 99% used [0x00000000da800000,0x00000000dacfd688,0x00000000dad00000) | |
| 156 | - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 157 | - ParOldGen total 86016K, used 6483K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 158 | - object space 86016K, 7% used [0x0000000082800000,0x0000000082e54e80,0x0000000087c00000) | |
| 159 | - Metaspace used 20631K, capacity 21244K, committed 21504K, reserved 1069056K | |
| 160 | - class space used 2645K, capacity 2802K, committed 2816K, reserved 1048576K | |
| 161 | -} | |
| 162 | -Event: 1.365 GC heap before | |
| 163 | -{Heap before GC invocations=5 (full 0): | |
| 164 | - PSYoungGen total 70656K, used 7831K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000) | |
| 165 | - eden space 65536K, 4% used [0x00000000d6300000,0x00000000d65a8670,0x00000000da300000) | |
| 166 | - from space 5120K, 99% used [0x00000000da800000,0x00000000dacfd688,0x00000000dad00000) | |
| 167 | - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 168 | - ParOldGen total 86016K, used 6483K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 169 | - object space 86016K, 7% used [0x0000000082800000,0x0000000082e54e80,0x0000000087c00000) | |
| 170 | - Metaspace used 20924K, capacity 21468K, committed 21628K, reserved 1069056K | |
| 171 | - class space used 2678K, capacity 2834K, committed 2940K, reserved 1048576K | |
| 172 | -Event: 1.369 GC heap after | |
| 173 | -Heap after GC invocations=5 (full 0): | |
| 174 | - PSYoungGen total 70656K, used 5114K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000) | |
| 175 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 176 | - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fe8a0,0x00000000da800000) | |
| 177 | - to space 8192K, 0% used [0x00000000deb00000,0x00000000deb00000,0x00000000df300000) | |
| 178 | - ParOldGen total 86016K, used 6764K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 179 | - object space 86016K, 7% used [0x0000000082800000,0x0000000082e9b3f8,0x0000000087c00000) | |
| 180 | - Metaspace used 20924K, capacity 21468K, committed 21628K, reserved 1069056K | |
| 181 | - class space used 2678K, capacity 2834K, committed 2940K, reserved 1048576K | |
| 182 | -} | |
| 183 | -Event: 1.369 GC heap before | |
| 184 | -{Heap before GC invocations=6 (full 1): | |
| 185 | - PSYoungGen total 70656K, used 5114K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000) | |
| 186 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 187 | - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fe8a0,0x00000000da800000) | |
| 188 | - to space 8192K, 0% used [0x00000000deb00000,0x00000000deb00000,0x00000000df300000) | |
| 189 | - ParOldGen total 86016K, used 6764K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 190 | - object space 86016K, 7% used [0x0000000082800000,0x0000000082e9b3f8,0x0000000087c00000) | |
| 191 | - Metaspace used 20924K, capacity 21468K, committed 21628K, reserved 1069056K | |
| 192 | - class space used 2678K, capacity 2834K, committed 2940K, reserved 1048576K | |
| 193 | -Event: 1.388 GC heap after | |
| 194 | -Heap after GC invocations=6 (full 1): | |
| 195 | - PSYoungGen total 70656K, used 0K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000) | |
| 196 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 197 | - from space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 198 | - to space 8192K, 0% used [0x00000000deb00000,0x00000000deb00000,0x00000000df300000) | |
| 199 | - ParOldGen total 46592K, used 5459K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000) | |
| 200 | - object space 46592K, 11% used [0x0000000082800000,0x0000000082d54e80,0x0000000085580000) | |
| 201 | - Metaspace used 20924K, capacity 21468K, committed 21628K, reserved 1069056K | |
| 202 | - class space used 2678K, capacity 2834K, committed 2940K, reserved 1048576K | |
| 203 | -} | |
| 204 | -Event: 1.918 GC heap before | |
| 205 | -{Heap before GC invocations=7 (full 1): | |
| 206 | - PSYoungGen total 70656K, used 65536K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000) | |
| 207 | - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000) | |
| 208 | - from space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 209 | - to space 8192K, 0% used [0x00000000deb00000,0x00000000deb00000,0x00000000df300000) | |
| 210 | - ParOldGen total 46592K, used 5459K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000) | |
| 211 | - object space 46592K, 11% used [0x0000000082800000,0x0000000082d54e80,0x0000000085580000) | |
| 212 | - Metaspace used 27784K, capacity 28630K, committed 28924K, reserved 1075200K | |
| 213 | - class space used 3562K, capacity 3741K, committed 3836K, reserved 1048576K | |
| 214 | -Event: 1.925 GC heap after | |
| 215 | -Heap after GC invocations=7 (full 1): | |
| 216 | - PSYoungGen total 127488K, used 8177K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000) | |
| 217 | - eden space 119296K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dd780000) | |
| 218 | - from space 8192K, 99% used [0x00000000deb00000,0x00000000df2fc400,0x00000000df300000) | |
| 219 | - to space 9216K, 0% used [0x00000000de100000,0x00000000de100000,0x00000000dea00000) | |
| 220 | - ParOldGen total 46592K, used 5607K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000) | |
| 221 | - object space 46592K, 12% used [0x0000000082800000,0x0000000082d79df0,0x0000000085580000) | |
| 222 | - Metaspace used 27784K, capacity 28630K, committed 28924K, reserved 1075200K | |
| 223 | - class space used 3562K, capacity 3741K, committed 3836K, reserved 1048576K | |
| 224 | -} | |
| 225 | -Event: 2.851 GC heap before | |
| 226 | -{Heap before GC invocations=8 (full 1): | |
| 227 | - PSYoungGen total 127488K, used 127473K [0x00000000d6300000, 0x00000000df300000, 0x0000000100000000) | |
| 228 | - eden space 119296K, 100% used [0x00000000d6300000,0x00000000dd780000,0x00000000dd780000) | |
| 229 | - from space 8192K, 99% used [0x00000000deb00000,0x00000000df2fc400,0x00000000df300000) | |
| 230 | - to space 9216K, 0% used [0x00000000de100000,0x00000000de100000,0x00000000dea00000) | |
| 231 | - ParOldGen total 46592K, used 5607K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000) | |
| 232 | - object space 46592K, 12% used [0x0000000082800000,0x0000000082d79df0,0x0000000085580000) | |
| 233 | - Metaspace used 32166K, capacity 33744K, committed 33916K, reserved 1079296K | |
| 234 | - class space used 4145K, capacity 4448K, committed 4476K, reserved 1048576K | |
| 235 | -Event: 2.860 GC heap after | |
| 236 | -Heap after GC invocations=8 (full 1): | |
| 237 | - PSYoungGen total 138240K, used 9197K [0x00000000d6300000, 0x00000000e4780000, 0x0000000100000000) | |
| 238 | - eden space 129024K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000de100000) | |
| 239 | - from space 9216K, 99% used [0x00000000de100000,0x00000000de9fb570,0x00000000dea00000) | |
| 240 | - to space 10752K, 0% used [0x00000000e3d00000,0x00000000e3d00000,0x00000000e4780000) | |
| 241 | - ParOldGen total 46592K, used 7501K [0x0000000082800000, 0x0000000085580000, 0x00000000d6300000) | |
| 242 | - object space 46592K, 16% used [0x0000000082800000,0x0000000082f53758,0x0000000085580000) | |
| 243 | - Metaspace used 32166K, capacity 33744K, committed 33916K, reserved 1079296K | |
| 244 | - class space used 4145K, capacity 4448K, committed 4476K, reserved 1048576K | |
| 245 | -} | |
| 246 | - | |
| 247 | -Deoptimization events (10 events): | |
| 248 | -Event: 2.592 Thread 0x0000000002933000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000035203a0 method=java.lang.reflect.Array.newInstance(Ljava/lang/Class;I)Ljava/lang/Object; @ 2 | |
| 249 | -Event: 2.592 Thread 0x0000000002933000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000035203a0 method=java.lang.reflect.Array.newInstance(Ljava/lang/Class;I)Ljava/lang/Object; @ 2 | |
| 250 | -Event: 2.592 Thread 0x0000000002933000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000035203a0 method=java.lang.reflect.Array.newInstance(Ljava/lang/Class;I)Ljava/lang/Object; @ 2 | |
| 251 | -Event: 2.643 Thread 0x0000000002933000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000034b7c64 method=org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(Ljava/lang/String;Lorg/springframework/core/ResolvableType;)Z @ 66 | |
| 252 | -Event: 2.913 Thread 0x0000000002933000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003575b54 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.clear()V @ 4 | |
| 253 | -Event: 2.988 Thread 0x0000000002933000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000000002da396c method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63 | |
| 254 | -Event: 3.035 Thread 0x0000000002933000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x000000000347e67c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 255 | -Event: 3.036 Thread 0x0000000002933000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x000000000347e67c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 256 | -Event: 3.036 Thread 0x0000000002933000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x000000000347e67c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 257 | -Event: 3.036 Thread 0x0000000002933000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x000000000347e67c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 258 | - | |
| 259 | -Classes redefined (0 events): | |
| 260 | -No events | |
| 261 | - | |
| 262 | -Internal exceptions (10 events): | |
| 263 | -Event: 2.899 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/core/env/EnvironmentCapableCustomizer> (0x00000000d6a547c8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 264 | -Event: 2.900 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/context/ServletContextAwareCustomizer> (0x00000000d6a69b08) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c | |
| 265 | -Event: 2.900 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/AwareCustomizer> (0x00000000d6a7c330) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210 | |
| 266 | -Event: 2.900 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/InitializingBeanCustomizer> (0x00000000d6a8fd18) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp | |
| 267 | -Event: 2.900 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/DisposableBeanCustomizer> (0x00000000d6aa3418) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 268 | -Event: 2.902 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d6acbf30) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 269 | -Event: 2.903 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/support/StandardServletMultipartResolverCustomizer> (0x00000000d6ae80f8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\class | |
| 270 | -Event: 2.903 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/MultipartResolverCustomizer> (0x00000000d6b00f18) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c | |
| 271 | -Event: 2.971 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d6e35598) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 272 | -Event: 2.972 Thread 0x0000000002933000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000d6e4b040) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 273 | - | |
| 274 | -Events (10 events): | |
| 275 | -Event: 3.145 Thread 0x000000001ff36000 Thread added: 0x000000001ff36000 | |
| 276 | -Event: 3.145 Thread 0x000000001e7fd800 Thread added: 0x000000001e7fd800 | |
| 277 | -Event: 3.145 Thread 0x000000001e7fd800 Thread exited: 0x000000001e7fd800 | |
| 278 | -Event: 3.146 loading class org/springframework/context/support/DefaultLifecycleProcessor | |
| 279 | -Event: 3.146 loading class org/springframework/context/support/DefaultLifecycleProcessor done | |
| 280 | -Event: 3.148 Thread 0x000000001ff36000 Thread exited: 0x000000001ff36000 | |
| 281 | -Event: 3.148 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator | |
| 282 | -Event: 3.148 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator done | |
| 283 | -Event: 3.149 Thread 0x0000000019ac9800 Thread exited: 0x0000000019ac9800 | |
| 284 | -Event: 3.150 Executing VM operation: Exit | |
| 285 | - | |
| 286 | - | |
| 287 | -Dynamic libraries: | |
| 288 | -0x00007ff7b7a80000 - 0x00007ff7b7ab7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe | |
| 289 | -0x00007ff817920000 - 0x00007ff817b10000 C:\WINDOWS\SYSTEM32\ntdll.dll | |
| 290 | -0x00007ff815d40000 - 0x00007ff815df2000 C:\WINDOWS\System32\KERNEL32.DLL | |
| 291 | -0x00007ff8156c0000 - 0x00007ff815963000 C:\WINDOWS\System32\KERNELBASE.dll | |
| 292 | -0x00007ff816600000 - 0x00007ff8166a3000 C:\WINDOWS\System32\ADVAPI32.dll | |
| 293 | -0x00007ff817570000 - 0x00007ff81760e000 C:\WINDOWS\System32\msvcrt.dll | |
| 294 | -0x00007ff816f10000 - 0x00007ff816fa7000 C:\WINDOWS\System32\sechost.dll | |
| 295 | -0x00007ff817420000 - 0x00007ff817540000 C:\WINDOWS\System32\RPCRT4.dll | |
| 296 | -0x00007ff815b90000 - 0x00007ff815d23000 C:\WINDOWS\System32\USER32.dll | |
| 297 | -0x00007ff815030000 - 0x00007ff815051000 C:\WINDOWS\System32\win32u.dll | |
| 298 | -0x00007ff816830000 - 0x00007ff816856000 C:\WINDOWS\System32\GDI32.dll | |
| 299 | -0x00007ff8154f0000 - 0x00007ff815684000 C:\WINDOWS\System32\gdi32full.dll | |
| 300 | -0x00007ff815450000 - 0x00007ff8154ee000 C:\WINDOWS\System32\msvcp_win.dll | |
| 301 | -0x00007ff815190000 - 0x00007ff81528a000 C:\WINDOWS\System32\ucrtbase.dll | |
| 302 | -0x00007ffffbbb0000 - 0x00007ffffbe35000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll | |
| 303 | -0x00007ff817080000 - 0x00007ff8173b6000 C:\WINDOWS\System32\combase.dll | |
| 304 | -0x00007ff815060000 - 0x00007ff8150e0000 C:\WINDOWS\System32\bcryptPrimitives.dll | |
| 305 | -0x00007ff817540000 - 0x00007ff81756e000 C:\WINDOWS\System32\IMM32.DLL | |
| 306 | -0x000000005caa0000 - 0x000000005cb72000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll | |
| 307 | -0x000000005c1f0000 - 0x000000005ca92000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll | |
| 308 | -0x00007ff815ef0000 - 0x00007ff815ef8000 C:\WINDOWS\System32\PSAPI.DLL | |
| 309 | -0x00007ff8002c0000 - 0x00007ff8002c9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll | |
| 310 | -0x00007ff80f370000 - 0x00007ff80f394000 C:\WINDOWS\SYSTEM32\WINMM.dll | |
| 311 | -0x00007ff8176c0000 - 0x00007ff81772f000 C:\WINDOWS\System32\WS2_32.dll | |
| 312 | -0x00007ff80b780000 - 0x00007ff80b78a000 C:\WINDOWS\SYSTEM32\VERSION.dll | |
| 313 | -0x00007ff80efa0000 - 0x00007ff80efcd000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll | |
| 314 | -0x00007ff815290000 - 0x00007ff8152da000 C:\WINDOWS\System32\cfgmgr32.dll | |
| 315 | -0x000000005c1e0000 - 0x000000005c1ef000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll | |
| 316 | -0x000000005c1b0000 - 0x000000005c1d9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll | |
| 317 | -0x000000005c190000 - 0x000000005c1a6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll | |
| 318 | -0x00007ff815f00000 - 0x00007ff8165e2000 C:\WINDOWS\System32\SHELL32.dll | |
| 319 | -0x00007ff8166b0000 - 0x00007ff816759000 C:\WINDOWS\System32\shcore.dll | |
| 320 | -0x00007ff8148b0000 - 0x00007ff81502c000 C:\WINDOWS\System32\windows.storage.dll | |
| 321 | -0x00007ff814890000 - 0x00007ff8148af000 C:\WINDOWS\System32\profapi.dll | |
| 322 | -0x00007ff814800000 - 0x00007ff81484a000 C:\WINDOWS\System32\powrprof.dll | |
| 323 | -0x00007ff8147f0000 - 0x00007ff814800000 C:\WINDOWS\System32\UMPDC.dll | |
| 324 | -0x00007ff815e90000 - 0x00007ff815ee2000 C:\WINDOWS\System32\shlwapi.dll | |
| 325 | -0x00007ff814850000 - 0x00007ff814861000 C:\WINDOWS\System32\kernel.appcore.dll | |
| 326 | -0x00007ff815430000 - 0x00007ff815447000 C:\WINDOWS\System32\cryptsp.dll | |
| 327 | -0x000000005c140000 - 0x000000005c14d000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll | |
| 328 | -0x000000005c170000 - 0x000000005c18a000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll | |
| 329 | -0x00007ff814060000 - 0x00007ff8140c7000 C:\WINDOWS\system32\mswsock.dll | |
| 330 | -0x000000005c090000 - 0x000000005c0a1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll | |
| 331 | -0x00007fffee0e0000 - 0x00007fffee0f6000 C:\WINDOWS\system32\napinsp.dll | |
| 332 | -0x00007fffee0c0000 - 0x00007fffee0da000 C:\WINDOWS\system32\pnrpnsp.dll | |
| 333 | -0x00007ff813db0000 - 0x00007ff813e7a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll | |
| 334 | -0x00007ff815d30000 - 0x00007ff815d38000 C:\WINDOWS\System32\NSI.dll | |
| 335 | -0x00007ff813d70000 - 0x00007ff813daa000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL | |
| 336 | -0x00007fffee750000 - 0x00007fffee75e000 C:\WINDOWS\System32\winrnr.dll | |
| 337 | -0x00007ff811110000 - 0x00007ff81112c000 C:\WINDOWS\system32\NLAapi.dll | |
| 338 | -0x00007fffee0a0000 - 0x00007fffee0b5000 C:\WINDOWS\system32\wshbth.dll | |
| 339 | -0x00007ff80b540000 - 0x00007ff80b54a000 C:\Windows\System32\rasadhlp.dll | |
| 340 | -0x00007ff80c3b0000 - 0x00007ff80c427000 C:\WINDOWS\System32\fwpuclnt.dll | |
| 341 | -0x00007ff815690000 - 0x00007ff8156b6000 C:\WINDOWS\System32\bcrypt.dll | |
| 342 | -0x00007ff813bd0000 - 0x00007ff813c03000 C:\WINDOWS\system32\rsaenh.dll | |
| 343 | -0x00007ff814710000 - 0x00007ff814735000 C:\WINDOWS\SYSTEM32\USERENV.dll | |
| 344 | -0x00007ff814230000 - 0x00007ff81423c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll | |
| 345 | -0x00007ff80cab0000 - 0x00007ff80cac6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL | |
| 346 | -0x00007ff80cf90000 - 0x00007ff80cfac000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL | |
| 347 | -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna3609965866630778086.tmp | |
| 348 | -0x00000000201e0000 - 0x00000000205ab000 C:\lib\HCEHomeCMS.DLL | |
| 349 | -0x0000000021b00000 - 0x0000000021e8f000 C:\lib\HCEHomeAlarm.DLL | |
| 350 | -0x0000000021e90000 - 0x0000000022080000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll | |
| 351 | -0x00007ff805bc0000 - 0x00007ff805bf2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll | |
| 352 | -0x00007ff813110000 - 0x00007ff813304000 C:\WINDOWS\SYSTEM32\dbghelp.dll | |
| 353 | - | |
| 354 | -VM Arguments: | |
| 355 | -java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5565956513346082042\surefirebooter8213148981028682932.jar C:\Users\taohandong\AppData\Local\Temp\surefire5565956513346082042 2019-08-21T16-56-18_299-jvmRun1 surefire7701440492205456597tmp surefire_0377257057114899889tmp | |
| 356 | -java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5565956513346082042\surefirebooter8213148981028682932.jar | |
| 357 | -Launcher Type: SUN_STANDARD | |
| 358 | - | |
| 359 | -Environment Variables: | |
| 360 | -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 | |
| 361 | -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar; | |
| 362 | -USERNAME=taohandong | |
| 363 | -OS=Windows_NT | |
| 364 | -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel | |
| 365 | - | |
| 366 | - | |
| 367 | - | |
| 368 | ---------------- S Y S T E M --------------- | |
| 369 | - | |
| 370 | -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86) | |
| 371 | - | |
| 372 | -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx | |
| 373 | - | |
| 374 | -Memory: 4k page, physical 8218728k(962076k free), swap 16922824k(2676600k free) | |
| 375 | - | |
| 376 | -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010) | |
| 377 | - | |
| 378 | -time: Wed Aug 21 16:56:22 2019 | |
| 379 | -elapsed time: 3 seconds (0d 0h 0m 3s) | |
| 380 | - |
cloud/haikang/hs_err_pid22004.log
| ... | ... | @@ -1,384 +0,0 @@ |
| 1 | -# | |
| 2 | -# A fatal error has been detected by the Java Runtime Environment: | |
| 3 | -# | |
| 4 | -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000221f643f, pid=22004, tid=0x0000000000000870 | |
| 5 | -# | |
| 6 | -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13) | |
| 7 | -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops) | |
| 8 | -# Problematic frame: | |
| 9 | -# C [HCEHomeAlarm.DLL+0x2643f] | |
| 10 | -# | |
| 11 | -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows | |
| 12 | -# | |
| 13 | -# If you would like to submit a bug report, please visit: | |
| 14 | -# http://bugreport.java.com/bugreport/crash.jsp | |
| 15 | -# | |
| 16 | - | |
| 17 | ---------------- T H R E A D --------------- | |
| 18 | - | |
| 19 | -Current thread (0x0000000018199800): VMThread [stack: 0x0000000019e60000,0x0000000019f60000] [id=2160] | |
| 20 | - | |
| 21 | -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000 | |
| 22 | - | |
| 23 | -Registers: | |
| 24 | -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000 | |
| 25 | -RSP=0x0000000019f5f1c0, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x0000000000d8ee10 | |
| 26 | -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x0000000019f5f250 | |
| 27 | -R12=0x0000000000d85a00, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x0000000000d85ab0 | |
| 28 | -RIP=0x00000000221f643f, EFLAGS=0x0000000000010206 | |
| 29 | - | |
| 30 | -Top of Stack: (sp=0x0000000019f5f1c0) | |
| 31 | -0x0000000019f5f1c0: 000000002368efb0 00007ffbf9de07cd | |
| 32 | -0x0000000019f5f1d0: 0000000000ce5290 0000000c00c90000 | |
| 33 | -0x0000000019f5f1e0: 0000000000d8ee10 000000002228cb11 | |
| 34 | -0x0000000019f5f1f0: 0000000000000000 0000000000000000 | |
| 35 | -0x0000000019f5f200: 0000000000cdb920 0000001ef9ddfba1 | |
| 36 | -0x0000000019f5f210: 0000000000d11f60 00000000221f6bf2 | |
| 37 | -0x0000000019f5f220: 0000000000000000 0000000000000001 | |
| 38 | -0x0000000019f5f230: 0000000000000000 0000000000d85a00 | |
| 39 | -0x0000000019f5f240: 0000000000000001 00000000221f6620 | |
| 40 | -0x0000000019f5f250: 0000000000000000 0000000000d11f60 | |
| 41 | -0x0000000019f5f260: 0000000000d85a00 0000000000000000 | |
| 42 | -0x0000000019f5f270: 0000000000d07f50 0000000018025500 | |
| 43 | -0x0000000019f5f280: 0000000022b4c280 00000000221f5cc8 | |
| 44 | -0x0000000019f5f290: 0000000018025500 0000000000d11f60 | |
| 45 | -0x0000000019f5f2a0: 0000000000000000 0000000000000000 | |
| 46 | -0x0000000019f5f2b0: 0000000022b4c280 000000002228db04 | |
| 47 | - | |
| 48 | -Instructions: (pc=0x00000000221f643f) | |
| 49 | -0x00000000221f641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc | |
| 50 | -0x00000000221f642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20 | |
| 51 | -0x00000000221f643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0 | |
| 52 | -0x00000000221f644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba | |
| 53 | - | |
| 54 | - | |
| 55 | -Register to memory mapping: | |
| 56 | - | |
| 57 | -RAX=0x0000000000000001 is an unknown value | |
| 58 | -RBX=0x0000000000000000 is an unknown value | |
| 59 | -RCX=0x0000000000000000 is an unknown value | |
| 60 | -RDX=0x0000000000000000 is an unknown value | |
| 61 | -RSP=0x0000000019f5f1c0 is an unknown value | |
| 62 | -RBP=0x0000000000000000 is an unknown value | |
| 63 | -RSI=0x0000000000000000 is an unknown value | |
| 64 | -RDI=0x0000000000d8ee10 is an unknown value | |
| 65 | -R8 =0x0000000000000001 is an unknown value | |
| 66 | -R9 =0x0000000000000001 is an unknown value | |
| 67 | -R10=0x0000000000008000 is an unknown value | |
| 68 | -R11=0x0000000019f5f250 is an unknown value | |
| 69 | -R12=0x0000000000d85a00 is an unknown value | |
| 70 | -R13=0x0000000000000000 is an unknown value | |
| 71 | -R14=0x0000000000000001 is an unknown value | |
| 72 | -R15=0x0000000000d85ab0 is an unknown value | |
| 73 | - | |
| 74 | - | |
| 75 | -Stack: [0x0000000019e60000,0x0000000019f60000], sp=0x0000000019f5f1c0, free space=1020k | |
| 76 | -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |
| 77 | - | |
| 78 | -VM_Operation (0x0000000002fdef10): Exit, mode: safepoint, requested by thread 0x0000000002fe7000 | |
| 79 | - | |
| 80 | - | |
| 81 | ---------------- P R O C E S S --------------- | |
| 82 | - | |
| 83 | -Java Threads: ( => current thread ) | |
| 84 | - 0x000000001a1b5000 JavaThread "Service Thread" daemon [_thread_blocked, id=22420, stack(0x000000001ac60000,0x000000001ad60000)] | |
| 85 | - 0x000000001a141800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=9276, stack(0x000000001ab60000,0x000000001ac60000)] | |
| 86 | - 0x000000001a136800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=25160, stack(0x000000001aa60000,0x000000001ab60000)] | |
| 87 | - 0x000000001a124800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=1524, stack(0x000000001a960000,0x000000001aa60000)] | |
| 88 | - 0x000000001a12b800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=12112, stack(0x000000001a860000,0x000000001a960000)] | |
| 89 | - 0x000000001a10f000 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=17780, stack(0x000000001a760000,0x000000001a860000)] | |
| 90 | - 0x000000001a0f6000 JavaThread "Attach Listener" daemon [_thread_blocked, id=15920, stack(0x000000001a660000,0x000000001a760000)] | |
| 91 | - 0x00000000030de000 JavaThread "Finalizer" daemon [_thread_blocked, id=18620, stack(0x000000001a460000,0x000000001a560000)] | |
| 92 | - 0x00000000030dd000 JavaThread "Reference Handler" daemon [_thread_blocked, id=23200, stack(0x0000000019f60000,0x000000001a060000)] | |
| 93 | - 0x0000000002fe7000 JavaThread "main" [_thread_blocked, id=18820, stack(0x0000000002ee0000,0x0000000002fe0000)] | |
| 94 | - | |
| 95 | -Other Threads: | |
| 96 | -=>0x0000000018199800 VMThread [stack: 0x0000000019e60000,0x0000000019f60000] [id=2160] | |
| 97 | - | |
| 98 | -VM state:at safepoint (shutting down) | |
| 99 | - | |
| 100 | -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) | |
| 101 | -[0x0000000002fe4020] Threads_lock - owner thread: 0x0000000018199800 | |
| 102 | - | |
| 103 | -Heap: | |
| 104 | - PSYoungGen total 175104K, used 147088K [0x00000000d6300000, 0x00000000e4400000, 0x0000000100000000) | |
| 105 | - eden space 164864K, 89% used [0x00000000d6300000,0x00000000df2a43e8,0x00000000e0400000) | |
| 106 | - from space 10240K, 0% used [0x00000000e1000000,0x00000000e1000000,0x00000000e1a00000) | |
| 107 | - to space 12288K, 0% used [0x00000000e0400000,0x00000000e0400000,0x00000000e1000000) | |
| 108 | - ParOldGen total 83968K, used 16324K [0x0000000082800000, 0x0000000087a00000, 0x00000000d6300000) | |
| 109 | - object space 83968K, 19% used [0x0000000082800000,0x00000000837f1338,0x0000000087a00000) | |
| 110 | - Metaspace used 42663K, capacity 44358K, committed 44632K, reserved 1087488K | |
| 111 | - class space used 5518K, capacity 5851K, committed 5976K, reserved 1048576K | |
| 112 | - | |
| 113 | -Card table byte_map: [0x0000000012670000,0x0000000012a60000] byte_map_base: 0x000000001225c000 | |
| 114 | - | |
| 115 | -Marking Bits: (ParMarkBitMap*) 0x000000006d7b2d00 | |
| 116 | - Begin Bits: [0x0000000013500000, 0x0000000015460000) | |
| 117 | - End Bits: [0x0000000015460000, 0x00000000173c0000) | |
| 118 | - | |
| 119 | -Polling page: 0x0000000001180000 | |
| 120 | - | |
| 121 | -CodeCache: size=245760Kb used=15344Kb max_used=16192Kb free=230415Kb | |
| 122 | - bounds [0x00000000032b0000, 0x0000000004290000, 0x00000000122b0000] | |
| 123 | - total_blobs=4448 nmethods=3951 adapters=409 | |
| 124 | - compilation: enabled | |
| 125 | - | |
| 126 | -Compilation events (10 events): | |
| 127 | -Event: 13.293 Thread 0x000000001a141800 4259 3 java.lang.StringBuilder::append (6 bytes) | |
| 128 | -Event: 13.294 Thread 0x000000001a141800 nmethod 4259 0x0000000003659bd0 code [0x0000000003659d40, 0x0000000003659fa8] | |
| 129 | -Event: 13.294 Thread 0x000000001a141800 4261 3 java.lang.invoke.MethodHandles$Lookup::getDirectMethodForConstant (70 bytes) | |
| 130 | -Event: 13.296 Thread 0x000000001a141800 nmethod 4261 0x0000000004277ed0 code [0x0000000004278140, 0x0000000004279048] | |
| 131 | -Event: 13.296 Thread 0x000000001a141800 4263 1 java.util.concurrent.ConcurrentHashMap$MapEntry::getValue (5 bytes) | |
| 132 | -Event: 13.297 Thread 0x000000001a141800 nmethod 4263 0x00000000035d5f50 code [0x00000000035d60a0, 0x00000000035d61b0] | |
| 133 | -Event: 13.298 Thread 0x000000001a141800 4264 ! 3 java.util.concurrent.ConcurrentHashMap::clear (176 bytes) | |
| 134 | -Event: 13.300 Thread 0x000000001a141800 nmethod 4264 0x00000000033dc210 code [0x00000000033dc400, 0x00000000033dd0d8] | |
| 135 | -Event: 13.300 Thread 0x000000001a141800 4265 3 java.io.OutputStream::flush (1 bytes) | |
| 136 | -Event: 13.301 Thread 0x000000001a141800 nmethod 4265 0x00000000034d7110 code [0x00000000034d7260, 0x00000000034d73b0] | |
| 137 | - | |
| 138 | -GC Heap History (10 events): | |
| 139 | -Event: 2.529 GC heap before | |
| 140 | -{Heap before GC invocations=6 (full 1): | |
| 141 | - PSYoungGen total 70656K, used 5113K [0x00000000d6300000, 0x00000000df200000, 0x0000000100000000) | |
| 142 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 143 | - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fe520,0x00000000da800000) | |
| 144 | - to space 7680K, 0% used [0x00000000dea80000,0x00000000dea80000,0x00000000df200000) | |
| 145 | - ParOldGen total 86016K, used 5366K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 146 | - object space 86016K, 6% used [0x0000000082800000,0x0000000082d3db10,0x0000000087c00000) | |
| 147 | - Metaspace used 20622K, capacity 21174K, committed 21248K, reserved 1067008K | |
| 148 | - class space used 2662K, capacity 2801K, committed 2816K, reserved 1048576K | |
| 149 | -Event: 2.565 GC heap after | |
| 150 | -Heap after GC invocations=6 (full 1): | |
| 151 | - PSYoungGen total 70656K, used 0K [0x00000000d6300000, 0x00000000df200000, 0x0000000100000000) | |
| 152 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 153 | - from space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 154 | - to space 7680K, 0% used [0x00000000dea80000,0x00000000dea80000,0x00000000df200000) | |
| 155 | - ParOldGen total 53248K, used 6211K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000) | |
| 156 | - object space 53248K, 11% used [0x0000000082800000,0x0000000082e10c38,0x0000000085c00000) | |
| 157 | - Metaspace used 20622K, capacity 21174K, committed 21248K, reserved 1067008K | |
| 158 | - class space used 2662K, capacity 2801K, committed 2816K, reserved 1048576K | |
| 159 | -} | |
| 160 | -Event: 3.166 GC heap before | |
| 161 | -{Heap before GC invocations=7 (full 1): | |
| 162 | - PSYoungGen total 70656K, used 65536K [0x00000000d6300000, 0x00000000df200000, 0x0000000100000000) | |
| 163 | - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000) | |
| 164 | - from space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 165 | - to space 7680K, 0% used [0x00000000dea80000,0x00000000dea80000,0x00000000df200000) | |
| 166 | - ParOldGen total 53248K, used 6211K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000) | |
| 167 | - object space 53248K, 11% used [0x0000000082800000,0x0000000082e10c38,0x0000000085c00000) | |
| 168 | - Metaspace used 25556K, capacity 26402K, committed 26624K, reserved 1073152K | |
| 169 | - class space used 3295K, capacity 3515K, committed 3584K, reserved 1048576K | |
| 170 | -Event: 3.176 GC heap after | |
| 171 | -Heap after GC invocations=7 (full 1): | |
| 172 | - PSYoungGen total 113664K, used 6723K [0x00000000d6300000, 0x00000000df180000, 0x0000000100000000) | |
| 173 | - eden space 106496K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dcb00000) | |
| 174 | - from space 7168K, 93% used [0x00000000dea80000,0x00000000df110cb8,0x00000000df180000) | |
| 175 | - to space 8192K, 0% used [0x00000000de180000,0x00000000de180000,0x00000000de980000) | |
| 176 | - ParOldGen total 53248K, used 6283K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000) | |
| 177 | - object space 53248K, 11% used [0x0000000082800000,0x0000000082e22c48,0x0000000085c00000) | |
| 178 | - Metaspace used 25556K, capacity 26402K, committed 26624K, reserved 1073152K | |
| 179 | - class space used 3295K, capacity 3515K, committed 3584K, reserved 1048576K | |
| 180 | -} | |
| 181 | -Event: 7.676 GC heap before | |
| 182 | -{Heap before GC invocations=8 (full 1): | |
| 183 | - PSYoungGen total 113664K, used 113219K [0x00000000d6300000, 0x00000000df180000, 0x0000000100000000) | |
| 184 | - eden space 106496K, 100% used [0x00000000d6300000,0x00000000dcb00000,0x00000000dcb00000) | |
| 185 | - from space 7168K, 93% used [0x00000000dea80000,0x00000000df110cb8,0x00000000df180000) | |
| 186 | - to space 8192K, 0% used [0x00000000de180000,0x00000000de180000,0x00000000de980000) | |
| 187 | - ParOldGen total 53248K, used 6283K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000) | |
| 188 | - object space 53248K, 11% used [0x0000000082800000,0x0000000082e22c48,0x0000000085c00000) | |
| 189 | - Metaspace used 32645K, capacity 33996K, committed 34176K, reserved 1079296K | |
| 190 | - class space used 4200K, capacity 4474K, committed 4480K, reserved 1048576K | |
| 191 | -Event: 7.689 GC heap after | |
| 192 | -Heap after GC invocations=8 (full 1): | |
| 193 | - PSYoungGen total 137728K, used 8176K [0x00000000d6300000, 0x00000000e1a00000, 0x0000000100000000) | |
| 194 | - eden space 129536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000de180000) | |
| 195 | - from space 8192K, 99% used [0x00000000de180000,0x00000000de97c030,0x00000000de980000) | |
| 196 | - to space 10240K, 0% used [0x00000000e1000000,0x00000000e1000000,0x00000000e1a00000) | |
| 197 | - ParOldGen total 53248K, used 9624K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000) | |
| 198 | - object space 53248K, 18% used [0x0000000082800000,0x00000000831661c8,0x0000000085c00000) | |
| 199 | - Metaspace used 32645K, capacity 33996K, committed 34176K, reserved 1079296K | |
| 200 | - class space used 4200K, capacity 4474K, committed 4480K, reserved 1048576K | |
| 201 | -} | |
| 202 | -Event: 8.166 GC heap before | |
| 203 | -{Heap before GC invocations=9 (full 1): | |
| 204 | - PSYoungGen total 137728K, used 74794K [0x00000000d6300000, 0x00000000e1a00000, 0x0000000100000000) | |
| 205 | - eden space 129536K, 51% used [0x00000000d6300000,0x00000000da40e808,0x00000000de180000) | |
| 206 | - from space 8192K, 99% used [0x00000000de180000,0x00000000de97c030,0x00000000de980000) | |
| 207 | - to space 10240K, 0% used [0x00000000e1000000,0x00000000e1000000,0x00000000e1a00000) | |
| 208 | - ParOldGen total 53248K, used 9624K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000) | |
| 209 | - object space 53248K, 18% used [0x0000000082800000,0x00000000831661c8,0x0000000085c00000) | |
| 210 | - Metaspace used 33921K, capacity 35352K, committed 35416K, reserved 1079296K | |
| 211 | - class space used 4360K, capacity 4640K, committed 4696K, reserved 1048576K | |
| 212 | -Event: 8.180 GC heap after | |
| 213 | -Heap after GC invocations=9 (full 1): | |
| 214 | - PSYoungGen total 175104K, used 10212K [0x00000000d6300000, 0x00000000e4400000, 0x0000000100000000) | |
| 215 | - eden space 164864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e0400000) | |
| 216 | - from space 10240K, 99% used [0x00000000e1000000,0x00000000e19f9040,0x00000000e1a00000) | |
| 217 | - to space 12288K, 0% used [0x00000000e0400000,0x00000000e0400000,0x00000000e1000000) | |
| 218 | - ParOldGen total 53248K, used 11027K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000) | |
| 219 | - object space 53248K, 20% used [0x0000000082800000,0x00000000832c4ca8,0x0000000085c00000) | |
| 220 | - Metaspace used 33921K, capacity 35352K, committed 35416K, reserved 1079296K | |
| 221 | - class space used 4360K, capacity 4640K, committed 4696K, reserved 1048576K | |
| 222 | -} | |
| 223 | -Event: 8.180 GC heap before | |
| 224 | -{Heap before GC invocations=10 (full 2): | |
| 225 | - PSYoungGen total 175104K, used 10212K [0x00000000d6300000, 0x00000000e4400000, 0x0000000100000000) | |
| 226 | - eden space 164864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e0400000) | |
| 227 | - from space 10240K, 99% used [0x00000000e1000000,0x00000000e19f9040,0x00000000e1a00000) | |
| 228 | - to space 12288K, 0% used [0x00000000e0400000,0x00000000e0400000,0x00000000e1000000) | |
| 229 | - ParOldGen total 53248K, used 11027K [0x0000000082800000, 0x0000000085c00000, 0x00000000d6300000) | |
| 230 | - object space 53248K, 20% used [0x0000000082800000,0x00000000832c4ca8,0x0000000085c00000) | |
| 231 | - Metaspace used 33921K, capacity 35352K, committed 35416K, reserved 1079296K | |
| 232 | - class space used 4360K, capacity 4640K, committed 4696K, reserved 1048576K | |
| 233 | -Event: 8.271 GC heap after | |
| 234 | -Heap after GC invocations=10 (full 2): | |
| 235 | - PSYoungGen total 175104K, used 0K [0x00000000d6300000, 0x00000000e4400000, 0x0000000100000000) | |
| 236 | - eden space 164864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e0400000) | |
| 237 | - from space 10240K, 0% used [0x00000000e1000000,0x00000000e1000000,0x00000000e1a00000) | |
| 238 | - to space 12288K, 0% used [0x00000000e0400000,0x00000000e0400000,0x00000000e1000000) | |
| 239 | - ParOldGen total 83968K, used 16324K [0x0000000082800000, 0x0000000087a00000, 0x00000000d6300000) | |
| 240 | - object space 83968K, 19% used [0x0000000082800000,0x00000000837f1338,0x0000000087a00000) | |
| 241 | - Metaspace used 33921K, capacity 35352K, committed 35416K, reserved 1079296K | |
| 242 | - class space used 4360K, capacity 4640K, committed 4696K, reserved 1048576K | |
| 243 | -} | |
| 244 | - | |
| 245 | -Deoptimization events (10 events): | |
| 246 | -Event: 12.831 Thread 0x0000000002fe7000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003eaf94c method=java.util.jar.JarFile.maybeInstantiateVerifier()V @ 79 | |
| 247 | -Event: 12.834 Thread 0x0000000002fe7000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003833a2c method=java.net.URL.<init>(Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V @ 504 | |
| 248 | -Event: 12.838 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003833d90 method=sun.net.www.protocol.jar.Handler.parseURL(Ljava/net/URL;Ljava/lang/String;II)V @ 94 | |
| 249 | -Event: 12.847 Thread 0x0000000002fe7000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x00000000038bfd10 method=java.util.Properties$LineReader.readLine()I @ 410 | |
| 250 | -Event: 13.071 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000423a388 method=java.lang.StringCoding$StringDecoder.decode([BII)[C @ 33 | |
| 251 | -Event: 13.102 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003dd5388 method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 162 | |
| 252 | -Event: 13.103 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000036c7c74 method=java.util.HashMap.resize()[Ljava/util/HashMap$Node; @ 206 | |
| 253 | -Event: 13.130 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000004243760 method=java.lang.StringCoding$StringDecoder.decode([BII)[C @ 33 | |
| 254 | -Event: 13.130 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000423711c method=java.lang.StringCoding$StringDecoder.decode([BII)[C @ 33 | |
| 255 | -Event: 13.234 Thread 0x0000000002fe7000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000004175ae4 method=java.util.regex.Pattern$Curly.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 45 | |
| 256 | - | |
| 257 | -Classes redefined (0 events): | |
| 258 | -No events | |
| 259 | - | |
| 260 | -Internal exceptions (10 events): | |
| 261 | -Event: 9.075 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/InitializingBeanCustomizer> (0x00000000db6488d0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp | |
| 262 | -Event: 9.075 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/DisposableBeanCustomizer> (0x00000000db65fae0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 263 | -Event: 9.084 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000db6fd4b8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 264 | -Event: 9.085 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/support/StandardServletMultipartResolverCustomizer> (0x00000000db71ec60) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\class | |
| 265 | -Event: 9.086 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/MultipartResolverCustomizer> (0x00000000db73bb38) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c | |
| 266 | -Event: 12.217 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000dbb020a0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 267 | -Event: 12.217 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000dbb1b720) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 268 | -Event: 12.489 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000dccf4fe0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 269 | -Event: 12.490 Thread 0x0000000002fe7000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/bean/AttendanceBeanCustomizer> (0x00000000dcd0d128) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210 | |
| 270 | -Event: 13.150 Thread 0x000000001a1c2800 Exception <a 'java/lang/InterruptedException': sleep interrupted> (0x00000000de471178) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\prims\jvm.cpp, line 3273] | |
| 271 | - | |
| 272 | -Events (10 events): | |
| 273 | -Event: 13.303 Executing VM operation: RevokeBias | |
| 274 | -Event: 13.303 Executing VM operation: RevokeBias done | |
| 275 | -Event: 13.304 Executing VM operation: BulkRevokeBias | |
| 276 | -Event: 13.304 Executing VM operation: BulkRevokeBias done | |
| 277 | -Event: 13.305 Thread 0x000000001a1c7000 Thread exited: 0x000000001a1c7000 | |
| 278 | -Event: 13.309 loading class java/lang/ProcessImpl$2 | |
| 279 | -Event: 13.309 loading class java/lang/ProcessImpl$2 done | |
| 280 | -Event: 13.309 Thread 0x000000001a1c5800 Thread exited: 0x000000001a1c5800 | |
| 281 | -Event: 13.310 Thread 0x000000001a0f4000 Thread exited: 0x000000001a0f4000 | |
| 282 | -Event: 13.310 Executing VM operation: Exit | |
| 283 | - | |
| 284 | - | |
| 285 | -Dynamic libraries: | |
| 286 | -0x00007ff619d90000 - 0x00007ff619dc7000 C:\Program Files\Java\jdk1.8.0_181\bin\java.exe | |
| 287 | -0x00007ffbf9da0000 - 0x00007ffbf9f90000 C:\WINDOWS\SYSTEM32\ntdll.dll | |
| 288 | -0x00007ffbf9210000 - 0x00007ffbf92c2000 C:\WINDOWS\System32\KERNEL32.DLL | |
| 289 | -0x00007ffbf7750000 - 0x00007ffbf79f3000 C:\WINDOWS\System32\KERNELBASE.dll | |
| 290 | -0x00007ffbf9c30000 - 0x00007ffbf9cd3000 C:\WINDOWS\System32\ADVAPI32.dll | |
| 291 | -0x00007ffbf9330000 - 0x00007ffbf93ce000 C:\WINDOWS\System32\msvcrt.dll | |
| 292 | -0x00007ffbf9ae0000 - 0x00007ffbf9b77000 C:\WINDOWS\System32\sechost.dll | |
| 293 | -0x00007ffbf8050000 - 0x00007ffbf8170000 C:\WINDOWS\System32\RPCRT4.dll | |
| 294 | -0x00007ffbf8170000 - 0x00007ffbf8303000 C:\WINDOWS\System32\USER32.dll | |
| 295 | -0x00007ffbf74b0000 - 0x00007ffbf74d1000 C:\WINDOWS\System32\win32u.dll | |
| 296 | -0x00007ffbf85d0000 - 0x00007ffbf85f6000 C:\WINDOWS\System32\GDI32.dll | |
| 297 | -0x00007ffbf7a00000 - 0x00007ffbf7b94000 C:\WINDOWS\System32\gdi32full.dll | |
| 298 | -0x00007ffbf76b0000 - 0x00007ffbf774e000 C:\WINDOWS\System32\msvcp_win.dll | |
| 299 | -0x00007ffbf75b0000 - 0x00007ffbf76aa000 C:\WINDOWS\System32\ucrtbase.dll | |
| 300 | -0x00007ffbddc80000 - 0x00007ffbddf05000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll | |
| 301 | -0x00007ffbf96f0000 - 0x00007ffbf9a26000 C:\WINDOWS\System32\combase.dll | |
| 302 | -0x00007ffbf7510000 - 0x00007ffbf7590000 C:\WINDOWS\System32\bcryptPrimitives.dll | |
| 303 | -0x00007ffbf93d0000 - 0x00007ffbf93fe000 C:\WINDOWS\System32\IMM32.DLL | |
| 304 | -0x000000006d840000 - 0x000000006d912000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll | |
| 305 | -0x000000006cf90000 - 0x000000006d832000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll | |
| 306 | -0x00007ffbf83e0000 - 0x00007ffbf83e8000 C:\WINDOWS\System32\PSAPI.DLL | |
| 307 | -0x00007ffbf1c20000 - 0x00007ffbf1c44000 C:\WINDOWS\SYSTEM32\WINMM.dll | |
| 308 | -0x00007ffbe28a0000 - 0x00007ffbe28a9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll | |
| 309 | -0x00007ffbf9400000 - 0x00007ffbf946f000 C:\WINDOWS\System32\WS2_32.dll | |
| 310 | -0x00007ffbee7a0000 - 0x00007ffbee7aa000 C:\WINDOWS\SYSTEM32\VERSION.dll | |
| 311 | -0x00007ffbf1b60000 - 0x00007ffbf1b8d000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll | |
| 312 | -0x00007ffbf7ba0000 - 0x00007ffbf7bea000 C:\WINDOWS\System32\cfgmgr32.dll | |
| 313 | -0x000000006cf80000 - 0x000000006cf8f000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll | |
| 314 | -0x000000006cf50000 - 0x000000006cf79000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll | |
| 315 | -0x000000006af80000 - 0x000000006afa3000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\instrument.dll | |
| 316 | -0x000000006cf30000 - 0x000000006cf46000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll | |
| 317 | -0x00007ffbf8600000 - 0x00007ffbf8ce2000 C:\WINDOWS\System32\SHELL32.dll | |
| 318 | -0x00007ffbf8cf0000 - 0x00007ffbf8d99000 C:\WINDOWS\System32\shcore.dll | |
| 319 | -0x00007ffbf6d30000 - 0x00007ffbf74ac000 C:\WINDOWS\System32\windows.storage.dll | |
| 320 | -0x00007ffbf6c80000 - 0x00007ffbf6c9f000 C:\WINDOWS\System32\profapi.dll | |
| 321 | -0x00007ffbf6ce0000 - 0x00007ffbf6d2a000 C:\WINDOWS\System32\powrprof.dll | |
| 322 | -0x00007ffbf6c70000 - 0x00007ffbf6c80000 C:\WINDOWS\System32\UMPDC.dll | |
| 323 | -0x00007ffbf7ff0000 - 0x00007ffbf8042000 C:\WINDOWS\System32\shlwapi.dll | |
| 324 | -0x00007ffbf6ca0000 - 0x00007ffbf6cb1000 C:\WINDOWS\System32\kernel.appcore.dll | |
| 325 | -0x00007ffbf7590000 - 0x00007ffbf75a7000 C:\WINDOWS\System32\cryptsp.dll | |
| 326 | -0x000000006ce60000 - 0x000000006ce7a000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll | |
| 327 | -0x00007ffbf64e0000 - 0x00007ffbf6547000 C:\WINDOWS\system32\mswsock.dll | |
| 328 | -0x000000006ce30000 - 0x000000006ce41000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll | |
| 329 | -0x000000006ce50000 - 0x000000006ce5d000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll | |
| 330 | -0x00007ffbccb40000 - 0x00007ffbccb56000 C:\WINDOWS\system32\napinsp.dll | |
| 331 | -0x00007ffbccb00000 - 0x00007ffbccb1a000 C:\WINDOWS\system32\pnrpnsp.dll | |
| 332 | -0x00007ffbf6230000 - 0x00007ffbf62fa000 C:\WINDOWS\SYSTEM32\DNSAPI.dll | |
| 333 | -0x00007ffbf9c20000 - 0x00007ffbf9c28000 C:\WINDOWS\System32\NSI.dll | |
| 334 | -0x00007ffbf61f0000 - 0x00007ffbf622a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL | |
| 335 | -0x00007ffbccaf0000 - 0x00007ffbccafe000 C:\WINDOWS\System32\winrnr.dll | |
| 336 | -0x00007ffbf4030000 - 0x00007ffbf404c000 C:\WINDOWS\system32\NLAapi.dll | |
| 337 | -0x00007ffbccab0000 - 0x00007ffbccac5000 C:\WINDOWS\system32\wshbth.dll | |
| 338 | -0x00007ffbe6680000 - 0x00007ffbe668a000 C:\Windows\System32\rasadhlp.dll | |
| 339 | -0x00007ffbeecb0000 - 0x00007ffbeed27000 C:\WINDOWS\System32\fwpuclnt.dll | |
| 340 | -0x00007ffbf74e0000 - 0x00007ffbf7506000 C:\WINDOWS\System32\bcrypt.dll | |
| 341 | -0x00007ffbf6050000 - 0x00007ffbf6083000 C:\WINDOWS\system32\rsaenh.dll | |
| 342 | -0x00007ffbf6b90000 - 0x00007ffbf6bb5000 C:\WINDOWS\SYSTEM32\USERENV.dll | |
| 343 | -0x00007ffbf66b0000 - 0x00007ffbf66bc000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll | |
| 344 | -0x00007ffbef950000 - 0x00007ffbef966000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL | |
| 345 | -0x00007ffbf0aa0000 - 0x00007ffbf0abc000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL | |
| 346 | -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna4968776932763510600.tmp | |
| 347 | -0x0000000020c50000 - 0x000000002101b000 C:\lib\HCEHomeCMS.DLL | |
| 348 | -0x00000000221d0000 - 0x000000002255f000 C:\lib\HCEHomeAlarm.DLL | |
| 349 | -0x0000000022560000 - 0x0000000022750000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll | |
| 350 | -0x00007ffbc00e0000 - 0x00007ffbc0112000 C:\Program Files\Intel\WiFi\bin\zlib1.dll | |
| 351 | -0x000000006c800000 - 0x000000006c824000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunec.dll | |
| 352 | -0x000000006c380000 - 0x000000006c38b000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunmscapi.dll | |
| 353 | -0x00007ffbf7d00000 - 0x00007ffbf7e49000 C:\WINDOWS\System32\CRYPT32.dll | |
| 354 | -0x00007ffbf6cc0000 - 0x00007ffbf6cd2000 C:\WINDOWS\System32\MSASN1.dll | |
| 355 | -0x00007ffbf4bc0000 - 0x00007ffbf4db4000 C:\WINDOWS\SYSTEM32\dbghelp.dll | |
| 356 | - | |
| 357 | -VM Arguments: | |
| 358 | -jvm_args: -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\lib\idea_rt.jar=60274:C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\bin -Dfile.encoding=UTF-8 | |
| 359 | -java_command: com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 com.sincere.haikang.HaikangApplicationTests,contextLoads | |
| 360 | -java_class_path (initial): C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\lib\idea_rt.jar;C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\plugins\junit\lib\junit-rt.jar;C:\TaoHandong\工具类软件\IntelliJ IDEA 2018.3\plugins\junit\lib\junit5-rt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\rt.jar;C:\TaoHandong\Java_Code\mycloud\cloud\haikang\target\test-classes;C:\TaoHandong\Java_Code\mycloud\cloud\haikang\target\classes;C:\Users\taohandong\.m2\repository\org\springframework\boot\spring-boot-starter\2.1.7.RELEASE\spring-boot-starter-2.1.7.RELEASE.jar;C:\Users\taohandong\.m2\repository\org\springframework\boot\spring-boot\2.1.7.RELEASE\spring-boot-2.1.7.RELEASE.jar;C:\Users\taohandong\.m2\repository\org\springframework\sp | |
| 361 | -Launcher Type: SUN_STANDARD | |
| 362 | - | |
| 363 | -Environment Variables: | |
| 364 | -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 | |
| 365 | -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar; | |
| 366 | -USERNAME=taohandong | |
| 367 | -OS=Windows_NT | |
| 368 | -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel | |
| 369 | - | |
| 370 | - | |
| 371 | - | |
| 372 | ---------------- S Y S T E M --------------- | |
| 373 | - | |
| 374 | -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86) | |
| 375 | - | |
| 376 | -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx | |
| 377 | - | |
| 378 | -Memory: 4k page, physical 8218728k(475884k free), swap 17090008k(2497472k free) | |
| 379 | - | |
| 380 | -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010) | |
| 381 | - | |
| 382 | -time: Fri Aug 23 11:03:44 2019 | |
| 383 | -elapsed time: 13 seconds (0d 0h 0m 13s) | |
| 384 | - |
cloud/haikang/hs_err_pid2220.log
| ... | ... | @@ -1,380 +0,0 @@ |
| 1 | -# | |
| 2 | -# A fatal error has been detected by the Java Runtime Environment: | |
| 3 | -# | |
| 4 | -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000202d643f, pid=2220, tid=0x00000000000039a0 | |
| 5 | -# | |
| 6 | -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13) | |
| 7 | -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops) | |
| 8 | -# Problematic frame: | |
| 9 | -# C [HCEHomeAlarm.DLL+0x2643f] | |
| 10 | -# | |
| 11 | -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows | |
| 12 | -# | |
| 13 | -# If you would like to submit a bug report, please visit: | |
| 14 | -# http://bugreport.java.com/bugreport/crash.jsp | |
| 15 | -# | |
| 16 | - | |
| 17 | ---------------- T H R E A D --------------- | |
| 18 | - | |
| 19 | -Current thread (0x00000000181f8800): VMThread [stack: 0x0000000019ef0000,0x0000000019ff0000] [id=14752] | |
| 20 | - | |
| 21 | -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000 | |
| 22 | - | |
| 23 | -Registers: | |
| 24 | -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000 | |
| 25 | -RSP=0x0000000019fef120, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x000000001ea9ee20 | |
| 26 | -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x0000000019fef1b0 | |
| 27 | -R12=0x0000000001094d60, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x0000000001094e10 | |
| 28 | -RIP=0x00000000202d643f, EFLAGS=0x0000000000010202 | |
| 29 | - | |
| 30 | -Top of Stack: (sp=0x0000000019fef120) | |
| 31 | -0x0000000019fef120: 000000002235e890 00007ff8179607cd | |
| 32 | -0x0000000019fef130: 00000000010a97c0 0000002501040000 | |
| 33 | -0x0000000019fef140: 000000001ea9ee20 000000002036cb11 | |
| 34 | -0x0000000019fef150: 0000000000000000 0000000000000000 | |
| 35 | -0x0000000019fef160: 00000000010a9700 000000071795fba1 | |
| 36 | -0x0000000019fef170: 000000001e9b56e0 00000000202d6bf2 | |
| 37 | -0x0000000019fef180: 0000000000000000 0000000000000001 | |
| 38 | -0x0000000019fef190: 0000000000000000 0000000001094d60 | |
| 39 | -0x0000000019fef1a0: 0000000000000001 00000000202d6620 | |
| 40 | -0x0000000019fef1b0: 0000000000000000 000000001e9b56e0 | |
| 41 | -0x0000000019fef1c0: 0000000001094d60 0000000000000000 | |
| 42 | -0x0000000019fef1d0: 00000000010b6270 0000000018085400 | |
| 43 | -0x0000000019fef1e0: 0000000021cbf470 00000000202d5cc8 | |
| 44 | -0x0000000019fef1f0: 0000000018085400 000000001e9b56e0 | |
| 45 | -0x0000000019fef200: 0000000000000000 0000000000000000 | |
| 46 | -0x0000000019fef210: 0000000021cbf470 000000002036db04 | |
| 47 | - | |
| 48 | -Instructions: (pc=0x00000000202d643f) | |
| 49 | -0x00000000202d641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc | |
| 50 | -0x00000000202d642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20 | |
| 51 | -0x00000000202d643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0 | |
| 52 | -0x00000000202d644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba | |
| 53 | - | |
| 54 | - | |
| 55 | -Register to memory mapping: | |
| 56 | - | |
| 57 | -RAX=0x0000000000000001 is an unknown value | |
| 58 | -RBX=0x0000000000000000 is an unknown value | |
| 59 | -RCX=0x0000000000000000 is an unknown value | |
| 60 | -RDX=0x0000000000000000 is an unknown value | |
| 61 | -RSP=0x0000000019fef120 is an unknown value | |
| 62 | -RBP=0x0000000000000000 is an unknown value | |
| 63 | -RSI=0x0000000000000000 is an unknown value | |
| 64 | -RDI=0x000000001ea9ee20 is an unknown value | |
| 65 | -R8 =0x0000000000000001 is an unknown value | |
| 66 | -R9 =0x0000000000000001 is an unknown value | |
| 67 | -R10=0x0000000000008000 is an unknown value | |
| 68 | -R11=0x0000000019fef1b0 is an unknown value | |
| 69 | -R12=0x0000000001094d60 is an unknown value | |
| 70 | -R13=0x0000000000000000 is an unknown value | |
| 71 | -R14=0x0000000000000001 is an unknown value | |
| 72 | -R15=0x0000000001094e10 is an unknown value | |
| 73 | - | |
| 74 | - | |
| 75 | -Stack: [0x0000000019ef0000,0x0000000019ff0000], sp=0x0000000019fef120, free space=1020k | |
| 76 | -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |
| 77 | - | |
| 78 | -VM_Operation (0x00000000031ff360): Exit, mode: safepoint, requested by thread 0x0000000003213000 | |
| 79 | - | |
| 80 | - | |
| 81 | ---------------- P R O C E S S --------------- | |
| 82 | - | |
| 83 | -Java Threads: ( => current thread ) | |
| 84 | - 0x000000001faa3800 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=11540, stack(0x0000000022eb0000,0x0000000022fb0000)] | |
| 85 | - 0x000000001a2f1000 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=16836, stack(0x000000001ae50000,0x000000001af50000)] | |
| 86 | - 0x000000001a20f000 JavaThread "Service Thread" daemon [_thread_blocked, id=21452, stack(0x000000001ac50000,0x000000001ad50000)] | |
| 87 | - 0x000000001a189800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=7672, stack(0x000000001ab50000,0x000000001ac50000)] | |
| 88 | - 0x000000001a181800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=20328, stack(0x000000001aa50000,0x000000001ab50000)] | |
| 89 | - 0x000000001a180800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=19344, stack(0x000000001a950000,0x000000001aa50000)] | |
| 90 | - 0x000000001a17e000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=13628, stack(0x000000001a850000,0x000000001a950000)] | |
| 91 | - 0x000000001a129800 JavaThread "Attach Listener" daemon [_thread_blocked, id=5136, stack(0x000000001a750000,0x000000001a850000)] | |
| 92 | - 0x000000001a128000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=14660, stack(0x000000001a650000,0x000000001a750000)] | |
| 93 | - 0x000000001a110800 JavaThread "Finalizer" daemon [_thread_blocked, id=8776, stack(0x000000001a4f0000,0x000000001a5f0000)] | |
| 94 | - 0x00000000181fd800 JavaThread "Reference Handler" daemon [_thread_blocked, id=19528, stack(0x0000000019ff0000,0x000000001a0f0000)] | |
| 95 | - 0x0000000003213000 JavaThread "main" [_thread_blocked, id=10968, stack(0x0000000003100000,0x0000000003200000)] | |
| 96 | - | |
| 97 | -Other Threads: | |
| 98 | -=>0x00000000181f8800 VMThread [stack: 0x0000000019ef0000,0x0000000019ff0000] [id=14752] | |
| 99 | - | |
| 100 | -VM state:at safepoint (shutting down) | |
| 101 | - | |
| 102 | -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) | |
| 103 | -[0x000000000320e370] Threads_lock - owner thread: 0x00000000181f8800 | |
| 104 | - | |
| 105 | -Heap: | |
| 106 | - PSYoungGen total 111616K, used 8881K [0x00000000d6300000, 0x00000000e0c00000, 0x0000000100000000) | |
| 107 | - eden space 102400K, 8% used [0x00000000d6300000,0x00000000d6bac558,0x00000000dc700000) | |
| 108 | - from space 9216K, 0% used [0x00000000dc700000,0x00000000dc700000,0x00000000dd000000) | |
| 109 | - to space 9728K, 0% used [0x00000000e0280000,0x00000000e0280000,0x00000000e0c00000) | |
| 110 | - ParOldGen total 88576K, used 13311K [0x0000000082800000, 0x0000000087e80000, 0x00000000d6300000) | |
| 111 | - object space 88576K, 15% used [0x0000000082800000,0x00000000834ffcb8,0x0000000087e80000) | |
| 112 | - Metaspace used 34107K, capacity 35636K, committed 35880K, reserved 1081344K | |
| 113 | - class space used 4507K, capacity 4790K, committed 4912K, reserved 1048576K | |
| 114 | - | |
| 115 | -Card table byte_map: [0x00000000126d0000,0x0000000012ac0000] byte_map_base: 0x00000000122bc000 | |
| 116 | - | |
| 117 | -Marking Bits: (ParMarkBitMap*) 0x000000005ca12d00 | |
| 118 | - Begin Bits: [0x0000000013560000, 0x00000000154c0000) | |
| 119 | - End Bits: [0x00000000154c0000, 0x0000000017420000) | |
| 120 | - | |
| 121 | -Polling page: 0x0000000001480000 | |
| 122 | - | |
| 123 | -CodeCache: size=245760Kb used=12251Kb max_used=12277Kb free=233508Kb | |
| 124 | - bounds [0x0000000003310000, 0x0000000003f20000, 0x0000000012310000] | |
| 125 | - total_blobs=3746 nmethods=3324 adapters=334 | |
| 126 | - compilation: enabled | |
| 127 | - | |
| 128 | -Compilation events (10 events): | |
| 129 | -Event: 3.100 Thread 0x000000001a189800 3323 3 java.util.logging.LogManager::access$100 (4 bytes) | |
| 130 | -Event: 3.100 Thread 0x000000001a189800 nmethod 3323 0x0000000003ec7b90 code [0x0000000003ec7ce0, 0x0000000003ec7e10] | |
| 131 | -Event: 3.100 Thread 0x000000001a189800 3325 3 java.util.HashSet::remove (20 bytes) | |
| 132 | -Event: 3.100 Thread 0x000000001a189800 nmethod 3325 0x0000000003ec2090 code [0x0000000003ec2200, 0x0000000003ec2488] | |
| 133 | -Event: 3.101 Thread 0x000000001a189800 3324 3 java.util.logging.LogManager$LoggerContext::requiresDefaultLoggers (29 bytes) | |
| 134 | -Event: 3.101 Thread 0x000000001a189800 nmethod 3324 0x0000000003edb7d0 code [0x0000000003edb940, 0x0000000003edbd68] | |
| 135 | -Event: 3.101 Thread 0x000000001a189800 3326 1 java.util.concurrent.ConcurrentHashMap$MapEntry::getValue (5 bytes) | |
| 136 | -Event: 3.101 Thread 0x000000001a189800 nmethod 3326 0x0000000003ec1dd0 code [0x0000000003ec1f20, 0x0000000003ec2030] | |
| 137 | -Event: 3.102 Thread 0x000000001a189800 3327 1 ch.qos.logback.core.pattern.Converter::getNext (5 bytes) | |
| 138 | -Event: 3.102 Thread 0x000000001a189800 nmethod 3327 0x0000000003ec1a50 code [0x0000000003ec1ba0, 0x0000000003ec1cb0] | |
| 139 | - | |
| 140 | -GC Heap History (10 events): | |
| 141 | -Event: 1.083 GC heap before | |
| 142 | -{Heap before GC invocations=5 (full 1): | |
| 143 | - PSYoungGen total 70656K, used 5107K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000) | |
| 144 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 145 | - from space 5120K, 99% used [0x00000000da800000,0x00000000dacfce08,0x00000000dad00000) | |
| 146 | - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 147 | - ParOldGen total 86016K, used 6531K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 148 | - object space 86016K, 7% used [0x0000000082800000,0x0000000082e60d98,0x0000000087c00000) | |
| 149 | - Metaspace used 20671K, capacity 21230K, committed 21296K, reserved 1067008K | |
| 150 | - class space used 2664K, capacity 2841K, committed 2864K, reserved 1048576K | |
| 151 | -Event: 1.105 GC heap after | |
| 152 | -Heap after GC invocations=5 (full 1): | |
| 153 | - PSYoungGen total 70656K, used 0K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000) | |
| 154 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 155 | - from space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000) | |
| 156 | - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 157 | - ParOldGen total 56832K, used 7412K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 158 | - object space 56832K, 13% used [0x0000000082800000,0x0000000082f3d390,0x0000000085f80000) | |
| 159 | - Metaspace used 20671K, capacity 21230K, committed 21296K, reserved 1067008K | |
| 160 | - class space used 2664K, capacity 2841K, committed 2864K, reserved 1048576K | |
| 161 | -} | |
| 162 | -Event: 1.573 GC heap before | |
| 163 | -{Heap before GC invocations=6 (full 1): | |
| 164 | - PSYoungGen total 70656K, used 65536K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000) | |
| 165 | - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000) | |
| 166 | - from space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000) | |
| 167 | - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 168 | - ParOldGen total 56832K, used 7412K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 169 | - object space 56832K, 13% used [0x0000000082800000,0x0000000082f3d390,0x0000000085f80000) | |
| 170 | - Metaspace used 27692K, capacity 28498K, committed 28592K, reserved 1075200K | |
| 171 | - class space used 3554K, capacity 3741K, committed 3760K, reserved 1048576K | |
| 172 | -Event: 1.588 GC heap after | |
| 173 | -Heap after GC invocations=6 (full 1): | |
| 174 | - PSYoungGen total 70656K, used 5096K [0x00000000d6300000, 0x00000000dda00000, 0x0000000100000000) | |
| 175 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 176 | - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fa378,0x00000000da800000) | |
| 177 | - to space 8704K, 0% used [0x00000000dd180000,0x00000000dd180000,0x00000000dda00000) | |
| 178 | - ParOldGen total 56832K, used 10658K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 179 | - object space 56832K, 18% used [0x0000000082800000,0x00000000832688b0,0x0000000085f80000) | |
| 180 | - Metaspace used 27692K, capacity 28498K, committed 28592K, reserved 1075200K | |
| 181 | - class space used 3554K, capacity 3741K, committed 3760K, reserved 1048576K | |
| 182 | -} | |
| 183 | -Event: 2.312 GC heap before | |
| 184 | -{Heap before GC invocations=7 (full 1): | |
| 185 | - PSYoungGen total 70656K, used 70632K [0x00000000d6300000, 0x00000000dda00000, 0x0000000100000000) | |
| 186 | - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000) | |
| 187 | - from space 5120K, 99% used [0x00000000da300000,0x00000000da7fa378,0x00000000da800000) | |
| 188 | - to space 8704K, 0% used [0x00000000dd180000,0x00000000dd180000,0x00000000dda00000) | |
| 189 | - ParOldGen total 56832K, used 10658K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 190 | - object space 56832K, 18% used [0x0000000082800000,0x00000000832688b0,0x0000000085f80000) | |
| 191 | - Metaspace used 30879K, capacity 32242K, committed 32432K, reserved 1077248K | |
| 192 | - class space used 3976K, capacity 4245K, committed 4272K, reserved 1048576K | |
| 193 | -Event: 2.318 GC heap after | |
| 194 | -Heap after GC invocations=7 (full 1): | |
| 195 | - PSYoungGen total 109056K, used 7659K [0x00000000d6300000, 0x00000000dd900000, 0x0000000100000000) | |
| 196 | - eden space 101376K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc600000) | |
| 197 | - from space 7680K, 99% used [0x00000000dd180000,0x00000000dd8fafe8,0x00000000dd900000) | |
| 198 | - to space 9216K, 0% used [0x00000000dc700000,0x00000000dc700000,0x00000000dd000000) | |
| 199 | - ParOldGen total 56832K, used 10666K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 200 | - object space 56832K, 18% used [0x0000000082800000,0x000000008326a8b0,0x0000000085f80000) | |
| 201 | - Metaspace used 30879K, capacity 32242K, committed 32432K, reserved 1077248K | |
| 202 | - class space used 3976K, capacity 4245K, committed 4272K, reserved 1048576K | |
| 203 | -} | |
| 204 | -Event: 2.980 GC heap before | |
| 205 | -{Heap before GC invocations=8 (full 1): | |
| 206 | - PSYoungGen total 109056K, used 88026K [0x00000000d6300000, 0x00000000dd900000, 0x0000000100000000) | |
| 207 | - eden space 101376K, 79% used [0x00000000d6300000,0x00000000db17b858,0x00000000dc600000) | |
| 208 | - from space 7680K, 99% used [0x00000000dd180000,0x00000000dd8fafe8,0x00000000dd900000) | |
| 209 | - to space 9216K, 0% used [0x00000000dc700000,0x00000000dc700000,0x00000000dd000000) | |
| 210 | - ParOldGen total 56832K, used 10666K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 211 | - object space 56832K, 18% used [0x0000000082800000,0x000000008326a8b0,0x0000000085f80000) | |
| 212 | - Metaspace used 33936K, capacity 35464K, committed 35496K, reserved 1079296K | |
| 213 | - class space used 4465K, capacity 4754K, committed 4784K, reserved 1048576K | |
| 214 | -Event: 2.989 GC heap after | |
| 215 | -Heap after GC invocations=8 (full 1): | |
| 216 | - PSYoungGen total 111616K, used 9192K [0x00000000d6300000, 0x00000000e0c00000, 0x0000000100000000) | |
| 217 | - eden space 102400K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc700000) | |
| 218 | - from space 9216K, 99% used [0x00000000dc700000,0x00000000dcffa070,0x00000000dd000000) | |
| 219 | - to space 9728K, 0% used [0x00000000e0280000,0x00000000e0280000,0x00000000e0c00000) | |
| 220 | - ParOldGen total 56832K, used 10912K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 221 | - object space 56832K, 19% used [0x0000000082800000,0x00000000832a83d0,0x0000000085f80000) | |
| 222 | - Metaspace used 33936K, capacity 35464K, committed 35496K, reserved 1079296K | |
| 223 | - class space used 4465K, capacity 4754K, committed 4784K, reserved 1048576K | |
| 224 | -} | |
| 225 | -Event: 2.989 GC heap before | |
| 226 | -{Heap before GC invocations=9 (full 2): | |
| 227 | - PSYoungGen total 111616K, used 9192K [0x00000000d6300000, 0x00000000e0c00000, 0x0000000100000000) | |
| 228 | - eden space 102400K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc700000) | |
| 229 | - from space 9216K, 99% used [0x00000000dc700000,0x00000000dcffa070,0x00000000dd000000) | |
| 230 | - to space 9728K, 0% used [0x00000000e0280000,0x00000000e0280000,0x00000000e0c00000) | |
| 231 | - ParOldGen total 56832K, used 10912K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 232 | - object space 56832K, 19% used [0x0000000082800000,0x00000000832a83d0,0x0000000085f80000) | |
| 233 | - Metaspace used 33936K, capacity 35464K, committed 35496K, reserved 1079296K | |
| 234 | - class space used 4465K, capacity 4754K, committed 4784K, reserved 1048576K | |
| 235 | -Event: 3.040 GC heap after | |
| 236 | -Heap after GC invocations=9 (full 2): | |
| 237 | - PSYoungGen total 111616K, used 0K [0x00000000d6300000, 0x00000000e0c00000, 0x0000000100000000) | |
| 238 | - eden space 102400K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc700000) | |
| 239 | - from space 9216K, 0% used [0x00000000dc700000,0x00000000dc700000,0x00000000dd000000) | |
| 240 | - to space 9728K, 0% used [0x00000000e0280000,0x00000000e0280000,0x00000000e0c00000) | |
| 241 | - ParOldGen total 88576K, used 13311K [0x0000000082800000, 0x0000000087e80000, 0x00000000d6300000) | |
| 242 | - object space 88576K, 15% used [0x0000000082800000,0x00000000834ffcb8,0x0000000087e80000) | |
| 243 | - Metaspace used 33936K, capacity 35464K, committed 35496K, reserved 1079296K | |
| 244 | - class space used 4465K, capacity 4754K, committed 4784K, reserved 1048576K | |
| 245 | -} | |
| 246 | - | |
| 247 | -Deoptimization events (10 events): | |
| 248 | -Event: 2.432 Thread 0x0000000003213000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003d49134 method=org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(Ljava/lang/String;Lorg/springframework/core/ResolvableType;)Z @ 66 | |
| 249 | -Event: 2.702 Thread 0x0000000003213000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003dadbd4 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.clear()V @ 4 | |
| 250 | -Event: 2.800 Thread 0x0000000003213000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000000003680850 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63 | |
| 251 | -Event: 2.882 Thread 0x0000000003213000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003b4fe14 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 252 | -Event: 2.882 Thread 0x0000000003213000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003cfda7c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 253 | -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003b4fe14 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 254 | -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003cfda7c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 255 | -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003b4fe14 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 256 | -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003cfda7c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 257 | -Event: 2.884 Thread 0x0000000003213000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003cfda7c method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 258 | - | |
| 259 | -Classes redefined (0 events): | |
| 260 | -No events | |
| 261 | - | |
| 262 | -Internal exceptions (10 events): | |
| 263 | -Event: 2.677 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/core/env/EnvironmentCapableCustomizer> (0x00000000da064e40) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 264 | -Event: 2.678 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/context/ServletContextAwareCustomizer> (0x00000000da079f98) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c | |
| 265 | -Event: 2.678 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/AwareCustomizer> (0x00000000da08c6a0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210 | |
| 266 | -Event: 2.678 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/InitializingBeanCustomizer> (0x00000000da0a0088) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp | |
| 267 | -Event: 2.679 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/DisposableBeanCustomizer> (0x00000000da0b3660) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 268 | -Event: 2.681 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000da0dc050) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 269 | -Event: 2.681 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/support/StandardServletMultipartResolverCustomizer> (0x00000000da0f8218) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\class | |
| 270 | -Event: 2.682 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/MultipartResolverCustomizer> (0x00000000da111038) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c | |
| 271 | -Event: 2.769 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000da4443d8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 272 | -Event: 2.770 Thread 0x0000000003213000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000da459e80) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 273 | - | |
| 274 | -Events (10 events): | |
| 275 | -Event: 3.098 Thread 0x000000001be98000 Thread added: 0x000000001be98000 | |
| 276 | -Event: 3.099 Thread 0x0000000023360800 Thread added: 0x0000000023360800 | |
| 277 | -Event: 3.099 Thread 0x000000001a411800 Thread exited: 0x000000001a411800 | |
| 278 | -Event: 3.100 loading class org/springframework/context/support/DefaultLifecycleProcessor | |
| 279 | -Event: 3.100 loading class org/springframework/context/support/DefaultLifecycleProcessor done | |
| 280 | -Event: 3.101 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator | |
| 281 | -Event: 3.101 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator done | |
| 282 | -Event: 3.102 Thread 0x0000000023360800 Thread exited: 0x0000000023360800 | |
| 283 | -Event: 3.102 Thread 0x000000001be98000 Thread exited: 0x000000001be98000 | |
| 284 | -Event: 3.103 Executing VM operation: Exit | |
| 285 | - | |
| 286 | - | |
| 287 | -Dynamic libraries: | |
| 288 | -0x00007ff7b7a80000 - 0x00007ff7b7ab7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe | |
| 289 | -0x00007ff817920000 - 0x00007ff817b10000 C:\WINDOWS\SYSTEM32\ntdll.dll | |
| 290 | -0x00007ff815d40000 - 0x00007ff815df2000 C:\WINDOWS\System32\KERNEL32.DLL | |
| 291 | -0x00007ff8156c0000 - 0x00007ff815963000 C:\WINDOWS\System32\KERNELBASE.dll | |
| 292 | -0x00007ff816600000 - 0x00007ff8166a3000 C:\WINDOWS\System32\ADVAPI32.dll | |
| 293 | -0x00007ff817570000 - 0x00007ff81760e000 C:\WINDOWS\System32\msvcrt.dll | |
| 294 | -0x00007ff816f10000 - 0x00007ff816fa7000 C:\WINDOWS\System32\sechost.dll | |
| 295 | -0x00007ff817420000 - 0x00007ff817540000 C:\WINDOWS\System32\RPCRT4.dll | |
| 296 | -0x00007ff815b90000 - 0x00007ff815d23000 C:\WINDOWS\System32\USER32.dll | |
| 297 | -0x00007ff815030000 - 0x00007ff815051000 C:\WINDOWS\System32\win32u.dll | |
| 298 | -0x00007ff816830000 - 0x00007ff816856000 C:\WINDOWS\System32\GDI32.dll | |
| 299 | -0x00007ff8154f0000 - 0x00007ff815684000 C:\WINDOWS\System32\gdi32full.dll | |
| 300 | -0x00007ff815450000 - 0x00007ff8154ee000 C:\WINDOWS\System32\msvcp_win.dll | |
| 301 | -0x00007ff815190000 - 0x00007ff81528a000 C:\WINDOWS\System32\ucrtbase.dll | |
| 302 | -0x00007ffffbbb0000 - 0x00007ffffbe35000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll | |
| 303 | -0x00007ff817080000 - 0x00007ff8173b6000 C:\WINDOWS\System32\combase.dll | |
| 304 | -0x00007ff815060000 - 0x00007ff8150e0000 C:\WINDOWS\System32\bcryptPrimitives.dll | |
| 305 | -0x00007ff817540000 - 0x00007ff81756e000 C:\WINDOWS\System32\IMM32.DLL | |
| 306 | -0x000000005caa0000 - 0x000000005cb72000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll | |
| 307 | -0x000000005c1f0000 - 0x000000005ca92000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll | |
| 308 | -0x00007ff815ef0000 - 0x00007ff815ef8000 C:\WINDOWS\System32\PSAPI.DLL | |
| 309 | -0x00007ff8002c0000 - 0x00007ff8002c9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll | |
| 310 | -0x00007ff80f370000 - 0x00007ff80f394000 C:\WINDOWS\SYSTEM32\WINMM.dll | |
| 311 | -0x00007ff80b780000 - 0x00007ff80b78a000 C:\WINDOWS\SYSTEM32\VERSION.dll | |
| 312 | -0x00007ff8176c0000 - 0x00007ff81772f000 C:\WINDOWS\System32\WS2_32.dll | |
| 313 | -0x00007ff80efa0000 - 0x00007ff80efcd000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll | |
| 314 | -0x00007ff815290000 - 0x00007ff8152da000 C:\WINDOWS\System32\cfgmgr32.dll | |
| 315 | -0x000000005c1e0000 - 0x000000005c1ef000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll | |
| 316 | -0x000000005c1b0000 - 0x000000005c1d9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll | |
| 317 | -0x000000005c190000 - 0x000000005c1a6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll | |
| 318 | -0x00007ff815f00000 - 0x00007ff8165e2000 C:\WINDOWS\System32\SHELL32.dll | |
| 319 | -0x00007ff8166b0000 - 0x00007ff816759000 C:\WINDOWS\System32\shcore.dll | |
| 320 | -0x00007ff8148b0000 - 0x00007ff81502c000 C:\WINDOWS\System32\windows.storage.dll | |
| 321 | -0x00007ff814890000 - 0x00007ff8148af000 C:\WINDOWS\System32\profapi.dll | |
| 322 | -0x00007ff814800000 - 0x00007ff81484a000 C:\WINDOWS\System32\powrprof.dll | |
| 323 | -0x00007ff8147f0000 - 0x00007ff814800000 C:\WINDOWS\System32\UMPDC.dll | |
| 324 | -0x00007ff815e90000 - 0x00007ff815ee2000 C:\WINDOWS\System32\shlwapi.dll | |
| 325 | -0x00007ff814850000 - 0x00007ff814861000 C:\WINDOWS\System32\kernel.appcore.dll | |
| 326 | -0x00007ff815430000 - 0x00007ff815447000 C:\WINDOWS\System32\cryptsp.dll | |
| 327 | -0x000000005c140000 - 0x000000005c14d000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll | |
| 328 | -0x000000005c170000 - 0x000000005c18a000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll | |
| 329 | -0x00007ff814060000 - 0x00007ff8140c7000 C:\WINDOWS\system32\mswsock.dll | |
| 330 | -0x000000005c090000 - 0x000000005c0a1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll | |
| 331 | -0x00007fffee0e0000 - 0x00007fffee0f6000 C:\WINDOWS\system32\napinsp.dll | |
| 332 | -0x00007fffee0c0000 - 0x00007fffee0da000 C:\WINDOWS\system32\pnrpnsp.dll | |
| 333 | -0x00007ff813db0000 - 0x00007ff813e7a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll | |
| 334 | -0x00007ff815d30000 - 0x00007ff815d38000 C:\WINDOWS\System32\NSI.dll | |
| 335 | -0x00007ff813d70000 - 0x00007ff813daa000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL | |
| 336 | -0x00007fffee750000 - 0x00007fffee75e000 C:\WINDOWS\System32\winrnr.dll | |
| 337 | -0x00007ff811110000 - 0x00007ff81112c000 C:\WINDOWS\system32\NLAapi.dll | |
| 338 | -0x00007fffee0a0000 - 0x00007fffee0b5000 C:\WINDOWS\system32\wshbth.dll | |
| 339 | -0x00007ff80b540000 - 0x00007ff80b54a000 C:\Windows\System32\rasadhlp.dll | |
| 340 | -0x00007ff80c3b0000 - 0x00007ff80c427000 C:\WINDOWS\System32\fwpuclnt.dll | |
| 341 | -0x00007ff815690000 - 0x00007ff8156b6000 C:\WINDOWS\System32\bcrypt.dll | |
| 342 | -0x00007ff813bd0000 - 0x00007ff813c03000 C:\WINDOWS\system32\rsaenh.dll | |
| 343 | -0x00007ff814710000 - 0x00007ff814735000 C:\WINDOWS\SYSTEM32\USERENV.dll | |
| 344 | -0x00007ff814230000 - 0x00007ff81423c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll | |
| 345 | -0x00007ff80cab0000 - 0x00007ff80cac6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL | |
| 346 | -0x00007ff80cf90000 - 0x00007ff80cfac000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL | |
| 347 | -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna6229618121822811211.tmp | |
| 348 | -0x000000001fee0000 - 0x00000000202ab000 C:\lib\HCEHomeCMS.DLL | |
| 349 | -0x00000000202b0000 - 0x000000002063f000 C:\lib\HCEHomeAlarm.DLL | |
| 350 | -0x000000001eb20000 - 0x000000001ed10000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll | |
| 351 | -0x00007ff801bb0000 - 0x00007ff801be2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll | |
| 352 | -0x00007ff813110000 - 0x00007ff813304000 C:\WINDOWS\SYSTEM32\dbghelp.dll | |
| 353 | - | |
| 354 | -VM Arguments: | |
| 355 | -java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire8591824099827451907\surefirebooter8042244932869339815.jar C:\Users\taohandong\AppData\Local\Temp\surefire8591824099827451907 2019-08-21T16-53-47_705-jvmRun1 surefire1883532276891060710tmp surefire_04853208368878475862tmp | |
| 356 | -java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire8591824099827451907\surefirebooter8042244932869339815.jar | |
| 357 | -Launcher Type: SUN_STANDARD | |
| 358 | - | |
| 359 | -Environment Variables: | |
| 360 | -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 | |
| 361 | -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar; | |
| 362 | -USERNAME=taohandong | |
| 363 | -OS=Windows_NT | |
| 364 | -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel | |
| 365 | - | |
| 366 | - | |
| 367 | - | |
| 368 | ---------------- S Y S T E M --------------- | |
| 369 | - | |
| 370 | -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86) | |
| 371 | - | |
| 372 | -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx | |
| 373 | - | |
| 374 | -Memory: 4k page, physical 8218728k(850576k free), swap 16922824k(2204356k free) | |
| 375 | - | |
| 376 | -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010) | |
| 377 | - | |
| 378 | -time: Wed Aug 21 16:53:51 2019 | |
| 379 | -elapsed time: 3 seconds (0d 0h 0m 3s) | |
| 380 | - |
| ... | ... | @@ -0,0 +1,381 @@ |
| 1 | +# | |
| 2 | +# A fatal error has been detected by the Java Runtime Environment: | |
| 3 | +# | |
| 4 | +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000242d643f, pid=2388, tid=0x0000000000005bd0 | |
| 5 | +# | |
| 6 | +# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13) | |
| 7 | +# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops) | |
| 8 | +# Problematic frame: | |
| 9 | +# C [HCEHomeAlarm.DLL+0x2643f] | |
| 10 | +# | |
| 11 | +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows | |
| 12 | +# | |
| 13 | +# If you would like to submit a bug report, please visit: | |
| 14 | +# http://bugreport.java.com/bugreport/crash.jsp | |
| 15 | +# | |
| 16 | + | |
| 17 | +--------------- T H R E A D --------------- | |
| 18 | + | |
| 19 | +Current thread (0x00000000184d9800): VMThread [stack: 0x000000001a1b0000,0x000000001a2b0000] [id=23504] | |
| 20 | + | |
| 21 | +siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000 | |
| 22 | + | |
| 23 | +Registers: | |
| 24 | +RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000 | |
| 25 | +RSP=0x000000001a2af2f0, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x00000000011fcbf0 | |
| 26 | +R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x000000001a2af380 | |
| 27 | +R12=0x00000000011f97b0, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x00000000011f9860 | |
| 28 | +RIP=0x00000000242d643f, EFLAGS=0x0000000000010206 | |
| 29 | + | |
| 30 | +Top of Stack: (sp=0x000000001a2af2f0) | |
| 31 | +0x000000001a2af2f0: 0000000026d9f430 00007ffec8fe07cd | |
| 32 | +0x000000001a2af300: 0000000001242f70 00000026011b0000 | |
| 33 | +0x000000001a2af310: 00000000011fcbf0 000000002436cb11 | |
| 34 | +0x000000001a2af320: 0000000000000000 0000000000000000 | |
| 35 | +0x000000001a2af330: 0000000001205100 00000034c8fdfba1 | |
| 36 | +0x000000001a2af340: 00000000241d9750 00000000242d6bf2 | |
| 37 | +0x000000001a2af350: 0000000000000000 0000000000000001 | |
| 38 | +0x000000001a2af360: 0000000000000000 00000000011f97b0 | |
| 39 | +0x000000001a2af370: 0000000000000001 00000000242d6620 | |
| 40 | +0x000000001a2af380: 0000000000000000 00000000241d9750 | |
| 41 | +0x000000001a2af390: 00000000011f97b0 0000000000000000 | |
| 42 | +0x000000001a2af3a0: 000000000123e100 0000000018365400 | |
| 43 | +0x000000001a2af3b0: 00000000012aed20 00000000242d5cc8 | |
| 44 | +0x000000001a2af3c0: 0000000018365400 00000000241d9750 | |
| 45 | +0x000000001a2af3d0: 0000000000000000 0000000000000000 | |
| 46 | +0x000000001a2af3e0: 00000000012aed20 000000002436db04 | |
| 47 | + | |
| 48 | +Instructions: (pc=0x00000000242d643f) | |
| 49 | +0x00000000242d641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc | |
| 50 | +0x00000000242d642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20 | |
| 51 | +0x00000000242d643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0 | |
| 52 | +0x00000000242d644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba | |
| 53 | + | |
| 54 | + | |
| 55 | +Register to memory mapping: | |
| 56 | + | |
| 57 | +RAX=0x0000000000000001 is an unknown value | |
| 58 | +RBX=0x0000000000000000 is an unknown value | |
| 59 | +RCX=0x0000000000000000 is an unknown value | |
| 60 | +RDX=0x0000000000000000 is an unknown value | |
| 61 | +RSP=0x000000001a2af2f0 is an unknown value | |
| 62 | +RBP=0x0000000000000000 is an unknown value | |
| 63 | +RSI=0x0000000000000000 is an unknown value | |
| 64 | +RDI=0x00000000011fcbf0 is an unknown value | |
| 65 | +R8 =0x0000000000000001 is an unknown value | |
| 66 | +R9 =0x0000000000000001 is an unknown value | |
| 67 | +R10=0x0000000000008000 is an unknown value | |
| 68 | +R11=0x000000001a2af380 is an unknown value | |
| 69 | +R12=0x00000000011f97b0 is an unknown value | |
| 70 | +R13=0x0000000000000000 is an unknown value | |
| 71 | +R14=0x0000000000000001 is an unknown value | |
| 72 | +R15=0x00000000011f9860 is an unknown value | |
| 73 | + | |
| 74 | + | |
| 75 | +Stack: [0x000000001a1b0000,0x000000001a2b0000], sp=0x000000001a2af2f0, free space=1020k | |
| 76 | +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |
| 77 | + | |
| 78 | +VM_Operation (0x00000000034ef2f0): Exit, mode: safepoint, requested by thread 0x00000000034f3000 | |
| 79 | + | |
| 80 | + | |
| 81 | +--------------- P R O C E S S --------------- | |
| 82 | + | |
| 83 | +Java Threads: ( => current thread ) | |
| 84 | + 0x000000001fb30000 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=22344, stack(0x00000000278e0000,0x00000000279e0000)] | |
| 85 | + 0x000000001fb33000 JavaThread "scheduling-1" [_thread_blocked, id=21104, stack(0x0000000023c00000,0x0000000023d00000)] | |
| 86 | + 0x000000001a58e800 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=24812, stack(0x000000001b110000,0x000000001b210000)] | |
| 87 | + 0x000000001a4db000 JavaThread "Service Thread" daemon [_thread_blocked, id=18956, stack(0x000000001af10000,0x000000001b010000)] | |
| 88 | + 0x000000001a457000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=19520, stack(0x000000001ae10000,0x000000001af10000)] | |
| 89 | + 0x000000001a451000 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=3572, stack(0x000000001ad10000,0x000000001ae10000)] | |
| 90 | + 0x000000001a443800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=22460, stack(0x000000001ac10000,0x000000001ad10000)] | |
| 91 | + 0x000000001a43d800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=25536, stack(0x000000001ab10000,0x000000001ac10000)] | |
| 92 | + 0x000000001a3e9000 JavaThread "Attach Listener" daemon [_thread_blocked, id=13012, stack(0x000000001aa10000,0x000000001ab10000)] | |
| 93 | + 0x000000001a3d0800 JavaThread "Finalizer" daemon [_thread_blocked, id=21952, stack(0x000000001a7b0000,0x000000001a8b0000)] | |
| 94 | + 0x00000000035e6000 JavaThread "Reference Handler" daemon [_thread_blocked, id=20672, stack(0x000000001a2b0000,0x000000001a3b0000)] | |
| 95 | + 0x00000000034f3000 JavaThread "main" [_thread_blocked, id=21008, stack(0x00000000033f0000,0x00000000034f0000)] | |
| 96 | + | |
| 97 | +Other Threads: | |
| 98 | +=>0x00000000184d9800 VMThread [stack: 0x000000001a1b0000,0x000000001a2b0000] [id=23504] | |
| 99 | + | |
| 100 | +VM state:at safepoint (shutting down) | |
| 101 | + | |
| 102 | +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) | |
| 103 | +[0x00000000033ee540] Threads_lock - owner thread: 0x00000000184d9800 | |
| 104 | + | |
| 105 | +Heap: | |
| 106 | + PSYoungGen total 320000K, used 39081K [0x00000000d6300000, 0x00000000eb080000, 0x0000000100000000) | |
| 107 | + eden space 301568K, 7% used [0x00000000d6300000,0x00000000d7a058b8,0x00000000e8980000) | |
| 108 | + from space 18432K, 84% used [0x00000000e9e00000,0x00000000ead24c68,0x00000000eb000000) | |
| 109 | + to space 19968K, 0% used [0x00000000e8980000,0x00000000e8980000,0x00000000e9d00000) | |
| 110 | + ParOldGen total 81920K, used 26483K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 111 | + object space 81920K, 32% used [0x0000000082800000,0x00000000841dcc80,0x0000000087800000) | |
| 112 | + Metaspace used 54373K, capacity 56636K, committed 56792K, reserved 1097728K | |
| 113 | + class space used 7228K, capacity 7658K, committed 7680K, reserved 1048576K | |
| 114 | + | |
| 115 | +Card table byte_map: [0x00000000129b0000,0x0000000012da0000] byte_map_base: 0x000000001259c000 | |
| 116 | + | |
| 117 | +Marking Bits: (ParMarkBitMap*) 0x0000000074032d00 | |
| 118 | + Begin Bits: [0x0000000013840000, 0x00000000157a0000) | |
| 119 | + End Bits: [0x00000000157a0000, 0x0000000017700000) | |
| 120 | + | |
| 121 | +Polling page: 0x0000000002ef0000 | |
| 122 | + | |
| 123 | +CodeCache: size=245760Kb used=18338Kb max_used=19533Kb free=227421Kb | |
| 124 | + bounds [0x00000000035f0000, 0x0000000004920000, 0x00000000125f0000] | |
| 125 | + total_blobs=5364 nmethods=4864 adapters=409 | |
| 126 | + compilation: enabled | |
| 127 | + | |
| 128 | +Compilation events (10 events): | |
| 129 | +Event: 11.134 Thread 0x000000001a457000 5716 1 java.text.NumberFormat::isGroupingUsed (5 bytes) | |
| 130 | +Event: 11.134 Thread 0x000000001a457000 nmethod 5716 0x0000000003fe7350 code [0x0000000003fe74a0, 0x0000000003fe75b0] | |
| 131 | +Event: 11.134 Thread 0x000000001a457000 5723 1 io.micrometer.shaded.org.pcollections.IntTree::access$200 (5 bytes) | |
| 132 | +Event: 11.134 Thread 0x000000001a457000 nmethod 5723 0x00000000041b8a90 code [0x00000000041b8be0, 0x00000000041b8cd0] | |
| 133 | +Event: 11.134 Thread 0x000000001a457000 5724 1 io.micrometer.shaded.org.pcollections.ConsPStack::access$100 (5 bytes) | |
| 134 | +Event: 11.134 Thread 0x000000001a457000 nmethod 5724 0x00000000041b87d0 code [0x00000000041b8920, 0x00000000041b8a10] | |
| 135 | +Event: 11.134 Thread 0x000000001a457000 5725 1 io.micrometer.shaded.org.pcollections.ConsPStack::access$200 (5 bytes) | |
| 136 | +Event: 11.135 Thread 0x000000001a457000 nmethod 5725 0x00000000041b8510 code [0x00000000041b8660, 0x00000000041b8750] | |
| 137 | +Event: 11.136 Thread 0x000000001a457000 5738 ! 2 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry::destroyBean (385 bytes) | |
| 138 | +Event: 11.138 Thread 0x000000001a457000 nmethod 5738 0x0000000004021cd0 code [0x0000000004022060, 0x00000000040232f8] | |
| 139 | + | |
| 140 | +GC Heap History (10 events): | |
| 141 | +Event: 3.949 GC heap before | |
| 142 | +{Heap before GC invocations=10 (full 2): | |
| 143 | + PSYoungGen total 203776K, used 11751K [0x00000000d6300000, 0x00000000e5200000, 0x0000000100000000) | |
| 144 | + eden space 192000K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e1e80000) | |
| 145 | + from space 11776K, 99% used [0x00000000e2c80000,0x00000000e37f9c28,0x00000000e3800000) | |
| 146 | + to space 14336K, 0% used [0x00000000e1e80000,0x00000000e1e80000,0x00000000e2c80000) | |
| 147 | + ParOldGen total 49152K, used 11215K [0x0000000082800000, 0x0000000085800000, 0x00000000d6300000) | |
| 148 | + object space 49152K, 22% used [0x0000000082800000,0x00000000832f3e08,0x0000000085800000) | |
| 149 | + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K | |
| 150 | + class space used 4450K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 151 | +Event: 4.035 GC heap after | |
| 152 | +Heap after GC invocations=10 (full 2): | |
| 153 | + PSYoungGen total 203776K, used 0K [0x00000000d6300000, 0x00000000e5200000, 0x0000000100000000) | |
| 154 | + eden space 192000K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e1e80000) | |
| 155 | + from space 11776K, 0% used [0x00000000e2c80000,0x00000000e2c80000,0x00000000e3800000) | |
| 156 | + to space 14336K, 0% used [0x00000000e1e80000,0x00000000e1e80000,0x00000000e2c80000) | |
| 157 | + ParOldGen total 81920K, used 18798K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 158 | + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5bbf0,0x0000000087800000) | |
| 159 | + Metaspace used 34327K, capacity 35342K, committed 35416K, reserved 1079296K | |
| 160 | + class space used 4450K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 161 | +} | |
| 162 | +Event: 6.131 GC heap before | |
| 163 | +{Heap before GC invocations=11 (full 2): | |
| 164 | + PSYoungGen total 203776K, used 192000K [0x00000000d6300000, 0x00000000e5200000, 0x0000000100000000) | |
| 165 | + eden space 192000K, 100% used [0x00000000d6300000,0x00000000e1e80000,0x00000000e1e80000) | |
| 166 | + from space 11776K, 0% used [0x00000000e2c80000,0x00000000e2c80000,0x00000000e3800000) | |
| 167 | + to space 14336K, 0% used [0x00000000e1e80000,0x00000000e1e80000,0x00000000e2c80000) | |
| 168 | + ParOldGen total 81920K, used 18798K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 169 | + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5bbf0,0x0000000087800000) | |
| 170 | + Metaspace used 40626K, capacity 41940K, committed 42200K, reserved 1085440K | |
| 171 | + class space used 5256K, capacity 5524K, committed 5632K, reserved 1048576K | |
| 172 | +Event: 6.141 GC heap after | |
| 173 | +Heap after GC invocations=11 (full 2): | |
| 174 | + PSYoungGen total 206336K, used 9447K [0x00000000d6300000, 0x00000000e7000000, 0x0000000100000000) | |
| 175 | + eden space 192000K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e1e80000) | |
| 176 | + from space 14336K, 65% used [0x00000000e1e80000,0x00000000e27b9f98,0x00000000e2c80000) | |
| 177 | + to space 13824K, 0% used [0x00000000e6280000,0x00000000e6280000,0x00000000e7000000) | |
| 178 | + ParOldGen total 81920K, used 18806K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 179 | + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5dbf0,0x0000000087800000) | |
| 180 | + Metaspace used 40626K, capacity 41940K, committed 42200K, reserved 1085440K | |
| 181 | + class space used 5256K, capacity 5524K, committed 5632K, reserved 1048576K | |
| 182 | +} | |
| 183 | +Event: 7.627 GC heap before | |
| 184 | +{Heap before GC invocations=12 (full 2): | |
| 185 | + PSYoungGen total 206336K, used 201447K [0x00000000d6300000, 0x00000000e7000000, 0x0000000100000000) | |
| 186 | + eden space 192000K, 100% used [0x00000000d6300000,0x00000000e1e80000,0x00000000e1e80000) | |
| 187 | + from space 14336K, 65% used [0x00000000e1e80000,0x00000000e27b9f98,0x00000000e2c80000) | |
| 188 | + to space 13824K, 0% used [0x00000000e6280000,0x00000000e6280000,0x00000000e7000000) | |
| 189 | + ParOldGen total 81920K, used 18806K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 190 | + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5dbf0,0x0000000087800000) | |
| 191 | + Metaspace used 44117K, capacity 45638K, committed 45784K, reserved 1089536K | |
| 192 | + class space used 5706K, capacity 6035K, committed 6144K, reserved 1048576K | |
| 193 | +Event: 7.640 GC heap after | |
| 194 | +Heap after GC invocations=12 (full 2): | |
| 195 | + PSYoungGen total 256000K, used 13148K [0x00000000d6300000, 0x00000000e6f80000, 0x0000000100000000) | |
| 196 | + eden space 242688K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e5000000) | |
| 197 | + from space 13312K, 98% used [0x00000000e6280000,0x00000000e6f57070,0x00000000e6f80000) | |
| 198 | + to space 15360K, 0% used [0x00000000e5180000,0x00000000e5180000,0x00000000e6080000) | |
| 199 | + ParOldGen total 81920K, used 18814K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 200 | + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5fbf0,0x0000000087800000) | |
| 201 | + Metaspace used 44117K, capacity 45638K, committed 45784K, reserved 1089536K | |
| 202 | + class space used 5706K, capacity 6035K, committed 6144K, reserved 1048576K | |
| 203 | +} | |
| 204 | +Event: 9.018 GC heap before | |
| 205 | +{Heap before GC invocations=13 (full 2): | |
| 206 | + PSYoungGen total 256000K, used 255836K [0x00000000d6300000, 0x00000000e6f80000, 0x0000000100000000) | |
| 207 | + eden space 242688K, 100% used [0x00000000d6300000,0x00000000e5000000,0x00000000e5000000) | |
| 208 | + from space 13312K, 98% used [0x00000000e6280000,0x00000000e6f57070,0x00000000e6f80000) | |
| 209 | + to space 15360K, 0% used [0x00000000e5180000,0x00000000e5180000,0x00000000e6080000) | |
| 210 | + ParOldGen total 81920K, used 18814K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 211 | + object space 81920K, 22% used [0x0000000082800000,0x0000000083a5fbf0,0x0000000087800000) | |
| 212 | + Metaspace used 47259K, capacity 49276K, committed 49496K, reserved 1091584K | |
| 213 | + class space used 6158K, capacity 6514K, committed 6528K, reserved 1048576K | |
| 214 | +Event: 9.039 GC heap after | |
| 215 | +Heap after GC invocations=13 (full 2): | |
| 216 | + PSYoungGen total 259584K, used 15336K [0x00000000d6300000, 0x00000000eb000000, 0x0000000100000000) | |
| 217 | + eden space 244224K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e5180000) | |
| 218 | + from space 15360K, 99% used [0x00000000e5180000,0x00000000e607a040,0x00000000e6080000) | |
| 219 | + to space 18432K, 0% used [0x00000000e9e00000,0x00000000e9e00000,0x00000000eb000000) | |
| 220 | + ParOldGen total 81920K, used 23103K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 221 | + object space 81920K, 28% used [0x0000000082800000,0x0000000083e8fc30,0x0000000087800000) | |
| 222 | + Metaspace used 47259K, capacity 49276K, committed 49496K, reserved 1091584K | |
| 223 | + class space used 6158K, capacity 6514K, committed 6528K, reserved 1048576K | |
| 224 | +} | |
| 225 | +Event: 11.011 GC heap before | |
| 226 | +{Heap before GC invocations=14 (full 2): | |
| 227 | + PSYoungGen total 259584K, used 259560K [0x00000000d6300000, 0x00000000eb000000, 0x0000000100000000) | |
| 228 | + eden space 244224K, 100% used [0x00000000d6300000,0x00000000e5180000,0x00000000e5180000) | |
| 229 | + from space 15360K, 99% used [0x00000000e5180000,0x00000000e607a040,0x00000000e6080000) | |
| 230 | + to space 18432K, 0% used [0x00000000e9e00000,0x00000000e9e00000,0x00000000eb000000) | |
| 231 | + ParOldGen total 81920K, used 23103K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 232 | + object space 81920K, 28% used [0x0000000082800000,0x0000000083e8fc30,0x0000000087800000) | |
| 233 | + Metaspace used 54084K, capacity 56334K, committed 56536K, reserved 1097728K | |
| 234 | + class space used 7194K, capacity 7583K, committed 7680K, reserved 1048576K | |
| 235 | +Event: 11.031 GC heap after | |
| 236 | +Heap after GC invocations=14 (full 2): | |
| 237 | + PSYoungGen total 320000K, used 15507K [0x00000000d6300000, 0x00000000eb080000, 0x0000000100000000) | |
| 238 | + eden space 301568K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e8980000) | |
| 239 | + from space 18432K, 84% used [0x00000000e9e00000,0x00000000ead24c68,0x00000000eb000000) | |
| 240 | + to space 19968K, 0% used [0x00000000e8980000,0x00000000e8980000,0x00000000e9d00000) | |
| 241 | + ParOldGen total 81920K, used 26483K [0x0000000082800000, 0x0000000087800000, 0x00000000d6300000) | |
| 242 | + object space 81920K, 32% used [0x0000000082800000,0x00000000841dcc80,0x0000000087800000) | |
| 243 | + Metaspace used 54084K, capacity 56334K, committed 56536K, reserved 1097728K | |
| 244 | + class space used 7194K, capacity 7583K, committed 7680K, reserved 1048576K | |
| 245 | +} | |
| 246 | + | |
| 247 | +Deoptimization events (10 events): | |
| 248 | +Event: 10.687 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d4e2d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 249 | +Event: 10.687 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000004309e04 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 250 | +Event: 10.698 Thread 0x00000000034f3000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000000003996050 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63 | |
| 251 | +Event: 10.731 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d4e2d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 252 | +Event: 10.731 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000004309e04 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 253 | +Event: 10.734 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d4e2d4 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 254 | +Event: 10.734 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000004309e04 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 255 | +Event: 10.976 Thread 0x000000001fb33000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000043b1bcc method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7 | |
| 256 | +Event: 10.976 Thread 0x000000001fb33000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003bd54b0 method=java.net.URLStreamHandler.parseURL(Ljava/net/URL;Ljava/lang/String;II)V @ 155 | |
| 257 | +Event: 10.981 Thread 0x000000001fb33000 Uncommon trap: reason=null_check action=make_not_entrant pc=0x00000000043af648 method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7 | |
| 258 | + | |
| 259 | +Classes redefined (0 events): | |
| 260 | +No events | |
| 261 | + | |
| 262 | +Internal exceptions (10 events): | |
| 263 | +Event: 10.188 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e14bdf30) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 264 | +Event: 10.189 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/actuate/autoconfigure/web/server/ManagementServerPropertiesCustomizer> (0x00000000e14fd620) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\shar | |
| 265 | +Event: 10.238 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e17d82e0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 266 | +Event: 10.239 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistrationCustomizer> (0x00000000e1814140) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\clas | |
| 267 | +Event: 10.240 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/serviceregistry/RegistrationCustomizer> (0x00000000e1869450) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDi | |
| 268 | +Event: 10.241 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/ServiceInstanceCustomizer> (0x00000000e1893000) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 269 | +Event: 10.657 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e3a6aad0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 270 | +Event: 10.658 Thread 0x00000000034f3000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000e3a95778) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 271 | +Event: 11.114 Thread 0x000000001fb32000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d74acf90) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 272 | +Event: 11.115 Thread 0x000000001fb32000 Exception <a 'java/lang/ClassNotFoundException': com/netflix/appinfo/ApplicationInfoManagerCustomizer> (0x00000000d74d7da8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 273 | + | |
| 274 | +Events (10 events): | |
| 275 | +Event: 11.136 Executing VM operation: RevokeBias done | |
| 276 | +Event: 11.137 loading class com/microsoft/sqlserver/jdbc/TDSChannel$SSLHandshakeInputStream | |
| 277 | +Event: 11.137 loading class com/microsoft/sqlserver/jdbc/TDSChannel$SSLHandshakeInputStream done | |
| 278 | +Event: 11.138 loading class com/microsoft/sqlserver/jdbc/TDSChannel$ProxyInputStream | |
| 279 | +Event: 11.138 loading class com/microsoft/sqlserver/jdbc/TDSChannel$ProxyInputStream done | |
| 280 | +Event: 11.138 Thread 0x000000001fb32000 Thread exited: 0x000000001fb32000 | |
| 281 | +Event: 11.138 loading class com/microsoft/sqlserver/jdbc/TDSChannel$ProxyOutputStream | |
| 282 | +Event: 11.138 loading class com/microsoft/sqlserver/jdbc/TDSChannel$ProxyOutputStream done | |
| 283 | +Event: 11.139 Thread 0x000000001a3e8000 Thread exited: 0x000000001a3e8000 | |
| 284 | +Event: 11.139 Executing VM operation: Exit | |
| 285 | + | |
| 286 | + | |
| 287 | +Dynamic libraries: | |
| 288 | +0x00007ff68b880000 - 0x00007ff68b8b7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe | |
| 289 | +0x00007ffec8fa0000 - 0x00007ffec9190000 C:\WINDOWS\SYSTEM32\ntdll.dll | |
| 290 | +0x00007ffec7050000 - 0x00007ffec7102000 C:\WINDOWS\System32\KERNEL32.DLL | |
| 291 | +0x00007ffec6b20000 - 0x00007ffec6dc3000 C:\WINDOWS\System32\KERNELBASE.dll | |
| 292 | +0x00007ffec79a0000 - 0x00007ffec7a43000 C:\WINDOWS\System32\ADVAPI32.dll | |
| 293 | +0x00007ffec88e0000 - 0x00007ffec897e000 C:\WINDOWS\System32\msvcrt.dll | |
| 294 | +0x00007ffec7a50000 - 0x00007ffec7ae7000 C:\WINDOWS\System32\sechost.dll | |
| 295 | +0x00007ffec82d0000 - 0x00007ffec83f0000 C:\WINDOWS\System32\RPCRT4.dll | |
| 296 | +0x00007ffec7110000 - 0x00007ffec72a3000 C:\WINDOWS\System32\USER32.dll | |
| 297 | +0x00007ffec66b0000 - 0x00007ffec66d1000 C:\WINDOWS\System32\win32u.dll | |
| 298 | +0x00007ffec89f0000 - 0x00007ffec8a16000 C:\WINDOWS\System32\GDI32.dll | |
| 299 | +0x00007ffec66e0000 - 0x00007ffec6874000 C:\WINDOWS\System32\gdi32full.dll | |
| 300 | +0x00007ffec6f00000 - 0x00007ffec6f9e000 C:\WINDOWS\System32\msvcp_win.dll | |
| 301 | +0x00007ffec6880000 - 0x00007ffec697a000 C:\WINDOWS\System32\ucrtbase.dll | |
| 302 | +0x00007ffeafb50000 - 0x00007ffeafdd5000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll | |
| 303 | +0x00007ffec7d90000 - 0x00007ffec80c6000 C:\WINDOWS\System32\combase.dll | |
| 304 | +0x00007ffec6e80000 - 0x00007ffec6f00000 C:\WINDOWS\System32\bcryptPrimitives.dll | |
| 305 | +0x00007ffec8a40000 - 0x00007ffec8a6e000 C:\WINDOWS\System32\IMM32.DLL | |
| 306 | +0x00000000740c0000 - 0x0000000074192000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll | |
| 307 | +0x0000000073810000 - 0x00000000740b2000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll | |
| 308 | +0x00007ffec88b0000 - 0x00007ffec88b8000 C:\WINDOWS\System32\PSAPI.DLL | |
| 309 | +0x00007ffec1410000 - 0x00007ffec1434000 C:\WINDOWS\SYSTEM32\WINMM.dll | |
| 310 | +0x00007ffeb1890000 - 0x00007ffeb1899000 C:\WINDOWS\SYSTEM32\WSOCK32.dll | |
| 311 | +0x00007ffebcd60000 - 0x00007ffebcd6a000 C:\WINDOWS\SYSTEM32\VERSION.dll | |
| 312 | +0x00007ffec8130000 - 0x00007ffec819f000 C:\WINDOWS\System32\WS2_32.dll | |
| 313 | +0x00007ffec1170000 - 0x00007ffec119d000 C:\WINDOWS\SYSTEM32\winmmbase.dll | |
| 314 | +0x00007ffec6980000 - 0x00007ffec69ca000 C:\WINDOWS\System32\cfgmgr32.dll | |
| 315 | +0x0000000073800000 - 0x000000007380f000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll | |
| 316 | +0x00000000737d0000 - 0x00000000737f9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll | |
| 317 | +0x00000000737b0000 - 0x00000000737c6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll | |
| 318 | +0x00007ffec72b0000 - 0x00007ffec7992000 C:\WINDOWS\System32\SHELL32.dll | |
| 319 | +0x00007ffec8800000 - 0x00007ffec88a9000 C:\WINDOWS\System32\shcore.dll | |
| 320 | +0x00007ffec5f30000 - 0x00007ffec66ac000 C:\WINDOWS\System32\windows.storage.dll | |
| 321 | +0x00007ffec5f10000 - 0x00007ffec5f2f000 C:\WINDOWS\System32\profapi.dll | |
| 322 | +0x00007ffec5ea0000 - 0x00007ffec5eea000 C:\WINDOWS\System32\powrprof.dll | |
| 323 | +0x00007ffec5e70000 - 0x00007ffec5e80000 C:\WINDOWS\System32\UMPDC.dll | |
| 324 | +0x00007ffec86d0000 - 0x00007ffec8722000 C:\WINDOWS\System32\shlwapi.dll | |
| 325 | +0x00007ffec5e80000 - 0x00007ffec5e91000 C:\WINDOWS\System32\kernel.appcore.dll | |
| 326 | +0x00007ffec7000000 - 0x00007ffec7017000 C:\WINDOWS\System32\cryptsp.dll | |
| 327 | +0x00000000736d0000 - 0x00000000736dd000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll | |
| 328 | +0x0000000073790000 - 0x00000000737aa000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll | |
| 329 | +0x00007ffec56e0000 - 0x00007ffec5747000 C:\WINDOWS\system32\mswsock.dll | |
| 330 | +0x00000000736b0000 - 0x00000000736c1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll | |
| 331 | +0x00007ffec53f0000 - 0x00007ffec542a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL | |
| 332 | +0x00007ffec88c0000 - 0x00007ffec88c8000 C:\WINDOWS\System32\NSI.dll | |
| 333 | +0x00007ffebdaa0000 - 0x00007ffebdab6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL | |
| 334 | +0x00007ffebe420000 - 0x00007ffebe43c000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL | |
| 335 | +0x00007ffec5430000 - 0x00007ffec54fa000 C:\WINDOWS\SYSTEM32\DNSAPI.dll | |
| 336 | +0x00007ffeb8da0000 - 0x00007ffeb8daa000 C:\Windows\System32\rasadhlp.dll | |
| 337 | +0x00007ffebce70000 - 0x00007ffebcee7000 C:\WINDOWS\System32\fwpuclnt.dll | |
| 338 | +0x00007ffec7020000 - 0x00007ffec7046000 C:\WINDOWS\System32\bcrypt.dll | |
| 339 | +0x00007ffe9fea0000 - 0x00007ffe9feb6000 C:\WINDOWS\system32\napinsp.dll | |
| 340 | +0x00007ffe9edd0000 - 0x00007ffe9edea000 C:\WINDOWS\system32\pnrpnsp.dll | |
| 341 | +0x00007ffe9ed90000 - 0x00007ffe9ed9e000 C:\WINDOWS\System32\winrnr.dll | |
| 342 | +0x00007ffec2ba0000 - 0x00007ffec2bbc000 C:\WINDOWS\system32\NLAapi.dll | |
| 343 | +0x00007ffe9ed20000 - 0x00007ffe9ed35000 C:\WINDOWS\system32\wshbth.dll | |
| 344 | +0x00007ffec5250000 - 0x00007ffec5283000 C:\WINDOWS\system32\rsaenh.dll | |
| 345 | +0x00007ffec5d90000 - 0x00007ffec5db5000 C:\WINDOWS\SYSTEM32\USERENV.dll | |
| 346 | +0x00007ffec58b0000 - 0x00007ffec58bc000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll | |
| 347 | +0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna8100986033166459603.tmp | |
| 348 | +0x0000000023de0000 - 0x00000000241ab000 C:\lib\HCEHomeCMS.DLL | |
| 349 | +0x00000000242b0000 - 0x000000002463f000 C:\lib\HCEHomeAlarm.DLL | |
| 350 | +0x0000000025880000 - 0x0000000025a70000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll | |
| 351 | +0x00007ffe9bd90000 - 0x00007ffe9bdc2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll | |
| 352 | +0x0000000071e40000 - 0x0000000071e64000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunec.dll | |
| 353 | +0x00007ffec4790000 - 0x00007ffec4984000 C:\WINDOWS\SYSTEM32\dbghelp.dll | |
| 354 | + | |
| 355 | +VM Arguments: | |
| 356 | +java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5118341549890617159\surefirebooter6322013041199057754.jar C:\Users\taohandong\AppData\Local\Temp\surefire5118341549890617159 2019-08-30T14-44-56_302-jvmRun1 surefire2606505243237962518tmp surefire_08682532327525556423tmp | |
| 357 | +java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5118341549890617159\surefirebooter6322013041199057754.jar | |
| 358 | +Launcher Type: SUN_STANDARD | |
| 359 | + | |
| 360 | +Environment Variables: | |
| 361 | +JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 | |
| 362 | +CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar; | |
| 363 | +USERNAME=taohandong | |
| 364 | +OS=Windows_NT | |
| 365 | +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | +--------------- S Y S T E M --------------- | |
| 370 | + | |
| 371 | +OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86) | |
| 372 | + | |
| 373 | +CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx | |
| 374 | + | |
| 375 | +Memory: 4k page, physical 8218728k(921808k free), swap 28521748k(3235836k free) | |
| 376 | + | |
| 377 | +vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010) | |
| 378 | + | |
| 379 | +time: Fri Aug 30 14:45:08 2019 | |
| 380 | +elapsed time: 11 seconds (0d 0h 0m 11s) | |
| 381 | + | ... | ... |
cloud/haikang/hs_err_pid26048.log
| ... | ... | @@ -1,336 +0,0 @@ |
| 1 | -# | |
| 2 | -# A fatal error has been detected by the Java Runtime Environment: | |
| 3 | -# | |
| 4 | -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000001cdf643f, pid=26048, tid=0x0000000000005860 | |
| 5 | -# | |
| 6 | -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13) | |
| 7 | -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops) | |
| 8 | -# Problematic frame: | |
| 9 | -# C [HCEHomeAlarm.DLL+0x2643f] | |
| 10 | -# | |
| 11 | -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows | |
| 12 | -# | |
| 13 | -# If you would like to submit a bug report, please visit: | |
| 14 | -# http://bugreport.java.com/bugreport/crash.jsp | |
| 15 | -# | |
| 16 | - | |
| 17 | ---------------- T H R E A D --------------- | |
| 18 | - | |
| 19 | -Current thread (0x0000000017749000): VMThread [stack: 0x0000000019420000,0x0000000019520000] [id=22624] | |
| 20 | - | |
| 21 | -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000 | |
| 22 | - | |
| 23 | -Registers: | |
| 24 | -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000 | |
| 25 | -RSP=0x000000001951ef50, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x00000000005dc620 | |
| 26 | -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x000000001951efe0 | |
| 27 | -R12=0x00000000005aec10, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x00000000005aecc0 | |
| 28 | -RIP=0x000000001cdf643f, EFLAGS=0x0000000000010206 | |
| 29 | - | |
| 30 | -Top of Stack: (sp=0x000000001951ef50) | |
| 31 | -0x000000001951ef50: 000000001d9ea6a0 00007ffc314807cd | |
| 32 | -0x000000001951ef60: 00000000005ac740 0000000f00560000 | |
| 33 | -0x000000001951ef70: 00000000005dc620 000000001ce8cb11 | |
| 34 | -0x000000001951ef80: 0000000000000000 0000000000000000 | |
| 35 | -0x000000001951ef90: 000000000059fa80 000000253147fba1 | |
| 36 | -0x000000001951efa0: 00000000005d9500 000000001cdf6bf2 | |
| 37 | -0x000000001951efb0: 0000000000000000 0000000000000001 | |
| 38 | -0x000000001951efc0: 0000000000000000 00000000005aec10 | |
| 39 | -0x000000001951efd0: 0000000000000001 000000001cdf6620 | |
| 40 | -0x000000001951efe0: 0000000000000000 00000000005d9500 | |
| 41 | -0x000000001951eff0: 00000000005aec10 0000000000000000 | |
| 42 | -0x000000001951f000: 00000000005a53c0 00000000175d5400 | |
| 43 | -0x000000001951f010: 00000000005d29b0 000000001cdf5cc8 | |
| 44 | -0x000000001951f020: 00000000175d5400 00000000005d9500 | |
| 45 | -0x000000001951f030: 0000000000000000 0000000000000000 | |
| 46 | -0x000000001951f040: 00000000005d29b0 000000001ce8db04 | |
| 47 | - | |
| 48 | -Instructions: (pc=0x000000001cdf643f) | |
| 49 | -0x000000001cdf641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc | |
| 50 | -0x000000001cdf642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20 | |
| 51 | -0x000000001cdf643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0 | |
| 52 | -0x000000001cdf644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba | |
| 53 | - | |
| 54 | - | |
| 55 | -Register to memory mapping: | |
| 56 | - | |
| 57 | -RAX=0x0000000000000001 is an unknown value | |
| 58 | -RBX=0x0000000000000000 is an unknown value | |
| 59 | -RCX=0x0000000000000000 is an unknown value | |
| 60 | -RDX=0x0000000000000000 is an unknown value | |
| 61 | -RSP=0x000000001951ef50 is an unknown value | |
| 62 | -RBP=0x0000000000000000 is an unknown value | |
| 63 | -RSI=0x0000000000000000 is an unknown value | |
| 64 | -RDI=0x00000000005dc620 is an unknown value | |
| 65 | -R8 =0x0000000000000001 is an unknown value | |
| 66 | -R9 =0x0000000000000001 is an unknown value | |
| 67 | -R10=0x0000000000008000 is an unknown value | |
| 68 | -R11=0x000000001951efe0 is an unknown value | |
| 69 | -R12=0x00000000005aec10 is an unknown value | |
| 70 | -R13=0x0000000000000000 is an unknown value | |
| 71 | -R14=0x0000000000000001 is an unknown value | |
| 72 | -R15=0x00000000005aecc0 is an unknown value | |
| 73 | - | |
| 74 | - | |
| 75 | -Stack: [0x0000000019420000,0x0000000019520000], sp=0x000000001951ef50, free space=1019k | |
| 76 | -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |
| 77 | - | |
| 78 | -VM_Operation (0x00000000026cf3d0): Exit, mode: safepoint, requested by thread 0x0000000002763000 | |
| 79 | - | |
| 80 | - | |
| 81 | ---------------- P R O C E S S --------------- | |
| 82 | - | |
| 83 | -Java Threads: ( => current thread ) | |
| 84 | - 0x000000001b2cc800 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=13732, stack(0x000000001e440000,0x000000001e540000)] | |
| 85 | - 0x000000001989c800 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=26928, stack(0x000000001a380000,0x000000001a480000)] | |
| 86 | - 0x0000000019747000 JavaThread "Service Thread" daemon [_thread_blocked, id=26424, stack(0x000000001a180000,0x000000001a280000)] | |
| 87 | - 0x00000000196c3800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=24408, stack(0x000000001a080000,0x000000001a180000)] | |
| 88 | - 0x00000000196ba800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=25900, stack(0x0000000019f80000,0x000000001a080000)] | |
| 89 | - 0x00000000196b5800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=2496, stack(0x0000000019e80000,0x0000000019f80000)] | |
| 90 | - 0x00000000196b2000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=2040, stack(0x0000000019d80000,0x0000000019e80000)] | |
| 91 | - 0x000000001965a000 JavaThread "Attach Listener" daemon [_thread_blocked, id=20100, stack(0x0000000019c80000,0x0000000019d80000)] | |
| 92 | - 0x0000000019640800 JavaThread "Finalizer" daemon [_thread_blocked, id=24112, stack(0x0000000019a20000,0x0000000019b20000)] | |
| 93 | - 0x0000000002857000 JavaThread "Reference Handler" daemon [_thread_blocked, id=17272, stack(0x0000000019520000,0x0000000019620000)] | |
| 94 | - 0x0000000002763000 JavaThread "main" [_thread_blocked, id=27540, stack(0x00000000025d0000,0x00000000026d0000)] | |
| 95 | - | |
| 96 | -Other Threads: | |
| 97 | -=>0x0000000017749000 VMThread [stack: 0x0000000019420000,0x0000000019520000] [id=22624] | |
| 98 | - | |
| 99 | -VM state:at safepoint (shutting down) | |
| 100 | - | |
| 101 | -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) | |
| 102 | -[0x000000000275e3a0] Threads_lock - owner thread: 0x0000000017749000 | |
| 103 | - | |
| 104 | -Heap: | |
| 105 | - PSYoungGen total 37888K, used 22276K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000) | |
| 106 | - eden space 32768K, 52% used [0x00000000d6300000,0x00000000d73c73c8,0x00000000d8300000) | |
| 107 | - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87f9ec0,0x00000000d8800000) | |
| 108 | - to space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000) | |
| 109 | - ParOldGen total 86016K, used 4607K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 110 | - object space 86016K, 5% used [0x0000000082800000,0x0000000082c7fd28,0x0000000087c00000) | |
| 111 | - Metaspace used 20330K, capacity 21108K, committed 21296K, reserved 1067008K | |
| 112 | - class space used 2697K, capacity 2858K, committed 2944K, reserved 1048576K | |
| 113 | - | |
| 114 | -Card table byte_map: [0x0000000011c20000,0x0000000012010000] byte_map_base: 0x000000001180c000 | |
| 115 | - | |
| 116 | -Marking Bits: (ParMarkBitMap*) 0x0000000060112d00 | |
| 117 | - Begin Bits: [0x0000000012ab0000, 0x0000000014a10000) | |
| 118 | - End Bits: [0x0000000014a10000, 0x0000000016970000) | |
| 119 | - | |
| 120 | -Polling page: 0x00000000001f0000 | |
| 121 | - | |
| 122 | -CodeCache: size=245760Kb used=6391Kb max_used=6391Kb free=239368Kb | |
| 123 | - bounds [0x0000000002860000, 0x0000000002eb0000, 0x0000000011860000] | |
| 124 | - total_blobs=2268 nmethods=1888 adapters=292 | |
| 125 | - compilation: enabled | |
| 126 | - | |
| 127 | -Compilation events (10 events): | |
| 128 | -Event: 2.633 Thread 0x00000000196c3800 nmethod 1883 0x0000000002e98650 code [0x0000000002e987a0, 0x0000000002e988d0] | |
| 129 | -Event: 2.633 Thread 0x00000000196c3800 1885 3 java.util.concurrent.ConcurrentHashMap::remove (8 bytes) | |
| 130 | -Event: 2.633 Thread 0x00000000196c3800 nmethod 1885 0x0000000002e98210 code [0x0000000002e98380, 0x0000000002e985a8] | |
| 131 | -Event: 2.633 Thread 0x00000000196c3800 1884 1 org.springframework.beans.factory.support.AbstractBeanDefinition::isLazyInit (5 bytes) | |
| 132 | -Event: 2.633 Thread 0x00000000196c3800 nmethod 1884 0x0000000002e97f50 code [0x0000000002e980a0, 0x0000000002e981b0] | |
| 133 | -Event: 2.634 Thread 0x00000000196c3800 1886 ! 3 java.lang.invoke.MethodHandleNatives::linkMethodHandleConstant (154 bytes) | |
| 134 | -Event: 2.634 Thread 0x00000000196c3800 nmethod 1886 0x0000000002e9e8d0 code [0x0000000002e9eb20, 0x0000000002e9f7b8] | |
| 135 | -Event: 2.634 Thread 0x00000000196c3800 1889 3 java.lang.invoke.LambdaForm$Name::<init> (194 bytes) | |
| 136 | -Event: 2.635 Thread 0x00000000196c3800 nmethod 1889 0x0000000002e9fe10 code [0x0000000002ea0000, 0x0000000002ea08f8] | |
| 137 | -Event: 2.635 Thread 0x00000000196c3800 1887 3 java.lang.invoke.MethodHandles$Lookup::linkMethodHandleConstant (185 bytes) | |
| 138 | - | |
| 139 | -GC Heap History (6 events): | |
| 140 | -Event: 0.984 GC heap before | |
| 141 | -{Heap before GC invocations=1 (full 0): | |
| 142 | - PSYoungGen total 37888K, used 32768K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000) | |
| 143 | - eden space 32768K, 100% used [0x00000000d6300000,0x00000000d8300000,0x00000000d8300000) | |
| 144 | - from space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000) | |
| 145 | - to space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000) | |
| 146 | - ParOldGen total 86016K, used 0K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 147 | - object space 86016K, 0% used [0x0000000082800000,0x0000000082800000,0x0000000087c00000) | |
| 148 | - Metaspace used 10660K, capacity 10938K, committed 11136K, reserved 1058816K | |
| 149 | - class space used 1259K, capacity 1345K, committed 1408K, reserved 1048576K | |
| 150 | -Event: 0.990 GC heap after | |
| 151 | -Heap after GC invocations=1 (full 0): | |
| 152 | - PSYoungGen total 37888K, used 5105K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000) | |
| 153 | - eden space 32768K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000d8300000) | |
| 154 | - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87fc648,0x00000000d8800000) | |
| 155 | - to space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000) | |
| 156 | - ParOldGen total 86016K, used 734K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 157 | - object space 86016K, 0% used [0x0000000082800000,0x00000000828b7948,0x0000000087c00000) | |
| 158 | - Metaspace used 10660K, capacity 10938K, committed 11136K, reserved 1058816K | |
| 159 | - class space used 1259K, capacity 1345K, committed 1408K, reserved 1048576K | |
| 160 | -} | |
| 161 | -Event: 1.568 GC heap before | |
| 162 | -{Heap before GC invocations=2 (full 0): | |
| 163 | - PSYoungGen total 37888K, used 37873K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000) | |
| 164 | - eden space 32768K, 100% used [0x00000000d6300000,0x00000000d8300000,0x00000000d8300000) | |
| 165 | - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87fc648,0x00000000d8800000) | |
| 166 | - to space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000) | |
| 167 | - ParOldGen total 86016K, used 734K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 168 | - object space 86016K, 0% used [0x0000000082800000,0x00000000828b7948,0x0000000087c00000) | |
| 169 | - Metaspace used 15612K, capacity 16162K, committed 16256K, reserved 1062912K | |
| 170 | - class space used 1965K, capacity 2093K, committed 2176K, reserved 1048576K | |
| 171 | -Event: 1.574 GC heap after | |
| 172 | -Heap after GC invocations=2 (full 0): | |
| 173 | - PSYoungGen total 37888K, used 5100K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000) | |
| 174 | - eden space 32768K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000d8300000) | |
| 175 | - from space 5120K, 99% used [0x00000000d8800000,0x00000000d8cfb3d0,0x00000000d8d00000) | |
| 176 | - to space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000) | |
| 177 | - ParOldGen total 86016K, used 2837K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 178 | - object space 86016K, 3% used [0x0000000082800000,0x0000000082ac5640,0x0000000087c00000) | |
| 179 | - Metaspace used 15612K, capacity 16162K, committed 16256K, reserved 1062912K | |
| 180 | - class space used 1965K, capacity 2093K, committed 2176K, reserved 1048576K | |
| 181 | -} | |
| 182 | -Event: 2.407 GC heap before | |
| 183 | -{Heap before GC invocations=3 (full 0): | |
| 184 | - PSYoungGen total 37888K, used 37868K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000) | |
| 185 | - eden space 32768K, 100% used [0x00000000d6300000,0x00000000d8300000,0x00000000d8300000) | |
| 186 | - from space 5120K, 99% used [0x00000000d8800000,0x00000000d8cfb3d0,0x00000000d8d00000) | |
| 187 | - to space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000) | |
| 188 | - ParOldGen total 86016K, used 2837K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 189 | - object space 86016K, 3% used [0x0000000082800000,0x0000000082ac5640,0x0000000087c00000) | |
| 190 | - Metaspace used 18896K, capacity 19682K, committed 19840K, reserved 1067008K | |
| 191 | - class space used 2414K, capacity 2597K, committed 2688K, reserved 1048576K | |
| 192 | -Event: 2.411 GC heap after | |
| 193 | -Heap after GC invocations=3 (full 0): | |
| 194 | - PSYoungGen total 37888K, used 5095K [0x00000000d6300000, 0x00000000d8d00000, 0x0000000100000000) | |
| 195 | - eden space 32768K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000d8300000) | |
| 196 | - from space 5120K, 99% used [0x00000000d8300000,0x00000000d87f9ec0,0x00000000d8800000) | |
| 197 | - to space 5120K, 0% used [0x00000000d8800000,0x00000000d8800000,0x00000000d8d00000) | |
| 198 | - ParOldGen total 86016K, used 4607K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 199 | - object space 86016K, 5% used [0x0000000082800000,0x0000000082c7fd28,0x0000000087c00000) | |
| 200 | - Metaspace used 18896K, capacity 19682K, committed 19840K, reserved 1067008K | |
| 201 | - class space used 2414K, capacity 2597K, committed 2688K, reserved 1048576K | |
| 202 | -} | |
| 203 | - | |
| 204 | -Deoptimization events (10 events): | |
| 205 | -Event: 0.838 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002b0ff8c method=java.io.WinNTFileSystem.normalize(Ljava/lang/String;)Ljava/lang/String; @ 128 | |
| 206 | -Event: 0.839 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002b25594 method=java.lang.String.indexOf([CII[CIII)I @ 3 | |
| 207 | -Event: 0.839 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002a2bb6c method=java.lang.String.indexOf([CII[CIII)I @ 3 | |
| 208 | -Event: 0.954 Thread 0x0000000002763000 Uncommon trap: reason=range_check action=make_not_entrant pc=0x0000000002b07ea0 method=sun.reflect.generics.parser.SignatureParser.current()C @ 34 | |
| 209 | -Event: 1.237 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002a74728 method=java.util.HashMap.hash(Ljava/lang/Object;)I @ 1 | |
| 210 | -Event: 1.394 Thread 0x0000000002763000 Uncommon trap: reason=null_assert action=make_not_entrant pc=0x0000000002b34768 method=java.util.zip.ZipEntry.<init>(Ljava/util/zip/ZipEntry;)V @ 70 | |
| 211 | -Event: 1.406 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002ad88b4 method=java.util.HashMap.hash(Ljava/lang/Object;)I @ 1 | |
| 212 | -Event: 1.673 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002d166cc method=org.springframework.asm.ClassReader.readUTF8(I[C)Ljava/lang/String; @ 7 | |
| 213 | -Event: 1.726 Thread 0x0000000002763000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000002c18534 method=org.springframework.boot.context.properties.source.ConfigurationPropertyName$ElementsParser.isValidChar(CI)Z @ 21 | |
| 214 | -Event: 2.416 Thread 0x0000000002763000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x0000000002bcb010 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63 | |
| 215 | - | |
| 216 | -Classes redefined (0 events): | |
| 217 | -No events | |
| 218 | - | |
| 219 | -Internal exceptions (10 events): | |
| 220 | -Event: 2.322 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/autoconfigure/task/TaskSchedulingAutoConfiguration$$EnhancerBySpringCGLIB$$76c7d0e2Customizer> (0x00000000d7f1ad88) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u18 | |
| 221 | -Event: 2.322 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/context/annotation/ConfigurationClassEnhancer$EnhancedConfigurationCustomizer> (0x00000000d7f390e8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\s | |
| 222 | -Event: 2.322 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/BeanFactoryAwareCustomizer> (0x00000000d7f49098) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp | |
| 223 | -Event: 2.323 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/AwareCustomizer> (0x00000000d7f587d8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210 | |
| 224 | -Event: 2.324 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d7f6b698) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 225 | -Event: 2.324 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/autoconfigure/task/TaskSchedulingPropertiesCustomizer> (0x00000000d7f81bb0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\s | |
| 226 | -Event: 2.330 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d7ff4880) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 227 | -Event: 2.331 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/task/TaskSchedulerBuilderCustomizer> (0x00000000d80079f0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp | |
| 228 | -Event: 2.393 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000d81968b8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 229 | -Event: 2.393 Thread 0x0000000002763000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000d81a87c0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 230 | - | |
| 231 | -Events (10 events): | |
| 232 | -Event: 2.631 Thread 0x0000000019925800 Thread added: 0x0000000019925800 | |
| 233 | -Event: 2.631 Thread 0x000000001b37c000 Thread added: 0x000000001b37c000 | |
| 234 | -Event: 2.631 Thread 0x000000001b271000 Thread added: 0x000000001b271000 | |
| 235 | -Event: 2.631 Thread 0x0000000019925800 Thread exited: 0x0000000019925800 | |
| 236 | -Event: 2.633 loading class org/springframework/context/support/DefaultLifecycleProcessor | |
| 237 | -Event: 2.633 loading class org/springframework/context/support/DefaultLifecycleProcessor done | |
| 238 | -Event: 2.634 Thread 0x000000001b271000 Thread exited: 0x000000001b271000 | |
| 239 | -Event: 2.635 Thread 0x000000001b37c000 Thread exited: 0x000000001b37c000 | |
| 240 | -Event: 2.635 Thread 0x0000000019659000 Thread exited: 0x0000000019659000 | |
| 241 | -Event: 2.635 Executing VM operation: Exit | |
| 242 | - | |
| 243 | - | |
| 244 | -Dynamic libraries: | |
| 245 | -0x00007ff722c60000 - 0x00007ff722c97000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe | |
| 246 | -0x00007ffc31440000 - 0x00007ffc31630000 C:\WINDOWS\SYSTEM32\ntdll.dll | |
| 247 | -0x00007ffc2ff80000 - 0x00007ffc30032000 C:\WINDOWS\System32\KERNEL32.DLL | |
| 248 | -0x00007ffc2e8a0000 - 0x00007ffc2eb43000 C:\WINDOWS\System32\KERNELBASE.dll | |
| 249 | -0x00007ffc308d0000 - 0x00007ffc30973000 C:\WINDOWS\System32\ADVAPI32.dll | |
| 250 | -0x00007ffc30040000 - 0x00007ffc300de000 C:\WINDOWS\System32\msvcrt.dll | |
| 251 | -0x00007ffc303c0000 - 0x00007ffc30457000 C:\WINDOWS\System32\sechost.dll | |
| 252 | -0x00007ffc30740000 - 0x00007ffc30860000 C:\WINDOWS\System32\RPCRT4.dll | |
| 253 | -0x00007ffc30140000 - 0x00007ffc302d3000 C:\WINDOWS\System32\USER32.dll | |
| 254 | -0x00007ffc2e5f0000 - 0x00007ffc2e611000 C:\WINDOWS\System32\win32u.dll | |
| 255 | -0x00007ffc2fbe0000 - 0x00007ffc2fc06000 C:\WINDOWS\System32\GDI32.dll | |
| 256 | -0x00007ffc2f350000 - 0x00007ffc2f4e4000 C:\WINDOWS\System32\gdi32full.dll | |
| 257 | -0x00007ffc2e3d0000 - 0x00007ffc2e46e000 C:\WINDOWS\System32\msvcp_win.dll | |
| 258 | -0x00007ffc2e4f0000 - 0x00007ffc2e5ea000 C:\WINDOWS\System32\ucrtbase.dll | |
| 259 | -0x00007ffc2d820000 - 0x00007ffc2daa5000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll | |
| 260 | -0x00007ffc2fc10000 - 0x00007ffc2ff46000 C:\WINDOWS\System32\combase.dll | |
| 261 | -0x00007ffc2e470000 - 0x00007ffc2e4f0000 C:\WINDOWS\System32\bcryptPrimitives.dll | |
| 262 | -0x00007ffc2ff50000 - 0x00007ffc2ff7e000 C:\WINDOWS\System32\IMM32.DLL | |
| 263 | -0x00000000601a0000 - 0x0000000060272000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll | |
| 264 | -0x000000005f8f0000 - 0x0000000060192000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll | |
| 265 | -0x00007ffc30e00000 - 0x00007ffc30e08000 C:\WINDOWS\System32\PSAPI.DLL | |
| 266 | -0x00007ffc24e00000 - 0x00007ffc24e0a000 C:\WINDOWS\SYSTEM32\VERSION.dll | |
| 267 | -0x00007ffc28560000 - 0x00007ffc28584000 C:\WINDOWS\SYSTEM32\WINMM.dll | |
| 268 | -0x00007ffc19c40000 - 0x00007ffc19c49000 C:\WINDOWS\SYSTEM32\WSOCK32.dll | |
| 269 | -0x00007ffc30350000 - 0x00007ffc303bf000 C:\WINDOWS\System32\WS2_32.dll | |
| 270 | -0x00007ffc28520000 - 0x00007ffc2854d000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll | |
| 271 | -0x00007ffc2eb50000 - 0x00007ffc2eb9a000 C:\WINDOWS\System32\cfgmgr32.dll | |
| 272 | -0x000000005f8e0000 - 0x000000005f8ef000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll | |
| 273 | -0x000000005f8b0000 - 0x000000005f8d9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll | |
| 274 | -0x000000005f890000 - 0x000000005f8a6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll | |
| 275 | -0x00007ffc2f4f0000 - 0x00007ffc2fbd2000 C:\WINDOWS\System32\SHELL32.dll | |
| 276 | -0x00007ffc30530000 - 0x00007ffc305d9000 C:\WINDOWS\System32\shcore.dll | |
| 277 | -0x00007ffc2eba0000 - 0x00007ffc2f31c000 C:\WINDOWS\System32\windows.storage.dll | |
| 278 | -0x00007ffc2e360000 - 0x00007ffc2e37f000 C:\WINDOWS\System32\profapi.dll | |
| 279 | -0x00007ffc2e380000 - 0x00007ffc2e3ca000 C:\WINDOWS\System32\powrprof.dll | |
| 280 | -0x00007ffc2e310000 - 0x00007ffc2e320000 C:\WINDOWS\System32\UMPDC.dll | |
| 281 | -0x00007ffc30da0000 - 0x00007ffc30df2000 C:\WINDOWS\System32\shlwapi.dll | |
| 282 | -0x00007ffc2e340000 - 0x00007ffc2e351000 C:\WINDOWS\System32\kernel.appcore.dll | |
| 283 | -0x00007ffc2e680000 - 0x00007ffc2e697000 C:\WINDOWS\System32\cryptsp.dll | |
| 284 | -0x000000005f7b0000 - 0x000000005f7bd000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll | |
| 285 | -0x000000005f7c0000 - 0x000000005f7da000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll | |
| 286 | -0x00007ffc2d500000 - 0x00007ffc2d567000 C:\WINDOWS\system32\mswsock.dll | |
| 287 | -0x000000005f790000 - 0x000000005f7a1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll | |
| 288 | -0x00007ffc04d70000 - 0x00007ffc04d86000 C:\WINDOWS\system32\napinsp.dll | |
| 289 | -0x00007ffc04d50000 - 0x00007ffc04d6a000 C:\WINDOWS\system32\pnrpnsp.dll | |
| 290 | -0x00007ffc2d250000 - 0x00007ffc2d31a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll | |
| 291 | -0x00007ffc30f00000 - 0x00007ffc30f08000 C:\WINDOWS\System32\NSI.dll | |
| 292 | -0x00007ffc2d210000 - 0x00007ffc2d24a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL | |
| 293 | -0x00007ffc04d40000 - 0x00007ffc04d4e000 C:\WINDOWS\System32\winrnr.dll | |
| 294 | -0x00007ffc2a940000 - 0x00007ffc2a95c000 C:\WINDOWS\system32\NLAapi.dll | |
| 295 | -0x00007ffc04ce0000 - 0x00007ffc04cf5000 C:\WINDOWS\system32\wshbth.dll | |
| 296 | -0x00007ffc1f350000 - 0x00007ffc1f35a000 C:\Windows\System32\rasadhlp.dll | |
| 297 | -0x00007ffc24e10000 - 0x00007ffc24e87000 C:\WINDOWS\System32\fwpuclnt.dll | |
| 298 | -0x00007ffc2f320000 - 0x00007ffc2f346000 C:\WINDOWS\System32\bcrypt.dll | |
| 299 | -0x00007ffc2d070000 - 0x00007ffc2d0a3000 C:\WINDOWS\system32\rsaenh.dll | |
| 300 | -0x00007ffc2e230000 - 0x00007ffc2e255000 C:\WINDOWS\SYSTEM32\USERENV.dll | |
| 301 | -0x00007ffc2d6d0000 - 0x00007ffc2d6dc000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll | |
| 302 | -0x00007ffc25c10000 - 0x00007ffc25c26000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL | |
| 303 | -0x00007ffc26470000 - 0x00007ffc2648c000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL | |
| 304 | -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna8652228221886876039.tmp | |
| 305 | -0x000000001c900000 - 0x000000001cccb000 C:\lib\HCEHomeCMS.DLL | |
| 306 | -0x000000001cdd0000 - 0x000000001d15f000 C:\lib\HCEHomeAlarm.DLL | |
| 307 | -0x00007ffbfa990000 - 0x00007ffbfa9c2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll | |
| 308 | -0x00007ffc2de30000 - 0x00007ffc2e024000 C:\WINDOWS\SYSTEM32\dbghelp.dll | |
| 309 | - | |
| 310 | -VM Arguments: | |
| 311 | -java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire6445573542193290882\surefirebooter5783795620507769886.jar C:\Users\taohandong\AppData\Local\Temp\surefire6445573542193290882 2019-08-19T16-38-56_903-jvmRun1 surefire449728521128991711tmp surefire_03055783089077713138tmp | |
| 312 | -java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire6445573542193290882\surefirebooter5783795620507769886.jar | |
| 313 | -Launcher Type: SUN_STANDARD | |
| 314 | - | |
| 315 | -Environment Variables: | |
| 316 | -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 | |
| 317 | -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar; | |
| 318 | -USERNAME=taohandong | |
| 319 | -OS=Windows_NT | |
| 320 | -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel | |
| 321 | - | |
| 322 | - | |
| 323 | - | |
| 324 | ---------------- S Y S T E M --------------- | |
| 325 | - | |
| 326 | -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86) | |
| 327 | - | |
| 328 | -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx | |
| 329 | - | |
| 330 | -Memory: 4k page, physical 8218728k(544920k free), swap 22852040k(3365576k free) | |
| 331 | - | |
| 332 | -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010) | |
| 333 | - | |
| 334 | -time: Mon Aug 19 16:39:00 2019 | |
| 335 | -elapsed time: 3 seconds (0d 0h 0m 3s) | |
| 336 | - |
| ... | ... | @@ -0,0 +1,381 @@ |
| 1 | +# | |
| 2 | +# A fatal error has been detected by the Java Runtime Environment: | |
| 3 | +# | |
| 4 | +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000220e643f, pid=29688, tid=0x0000000000005d10 | |
| 5 | +# | |
| 6 | +# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13) | |
| 7 | +# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops) | |
| 8 | +# Problematic frame: | |
| 9 | +# C [HCEHomeAlarm.DLL+0x2643f] | |
| 10 | +# | |
| 11 | +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows | |
| 12 | +# | |
| 13 | +# If you would like to submit a bug report, please visit: | |
| 14 | +# http://bugreport.java.com/bugreport/crash.jsp | |
| 15 | +# | |
| 16 | + | |
| 17 | +--------------- T H R E A D --------------- | |
| 18 | + | |
| 19 | +Current thread (0x00000000178c9800): VMThread [stack: 0x00000000195b0000,0x00000000196b0000] [id=23824] | |
| 20 | + | |
| 21 | +siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000 | |
| 22 | + | |
| 23 | +Registers: | |
| 24 | +RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000 | |
| 25 | +RSP=0x00000000196af220, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x00000000006abe30 | |
| 26 | +R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x00000000196af2b0 | |
| 27 | +R12=0x000000000067c470, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x000000000067c520 | |
| 28 | +RIP=0x00000000220e643f, EFLAGS=0x0000000000010202 | |
| 29 | + | |
| 30 | +Top of Stack: (sp=0x00000000196af220) | |
| 31 | +0x00000000196af220: 00000000263a3f60 00007ffec8fe07cd | |
| 32 | +0x00000000196af230: 00000000006b30f0 0000001800630000 | |
| 33 | +0x00000000196af240: 00000000006abe30 000000002217cb11 | |
| 34 | +0x00000000196af250: 0000000000000000 0000000000000000 | |
| 35 | +0x00000000196af260: 000000000067e730 00000038c8fdfba1 | |
| 36 | +0x00000000196af270: 0000000020668e00 00000000220e6bf2 | |
| 37 | +0x00000000196af280: 0000000000000000 0000000000000001 | |
| 38 | +0x00000000196af290: 0000000000000000 000000000067c470 | |
| 39 | +0x00000000196af2a0: 0000000000000001 00000000220e6620 | |
| 40 | +0x00000000196af2b0: 0000000000000000 0000000020668e00 | |
| 41 | +0x00000000196af2c0: 000000000067c470 0000000000000000 | |
| 42 | +0x00000000196af2d0: 00000000006b8fc0 0000000017755500 | |
| 43 | +0x00000000196af2e0: 0000000000723570 00000000220e5cc8 | |
| 44 | +0x00000000196af2f0: 0000000017755500 0000000020668e00 | |
| 45 | +0x00000000196af300: 0000000000000000 0000000000000000 | |
| 46 | +0x00000000196af310: 0000000000723570 000000002217db04 | |
| 47 | + | |
| 48 | +Instructions: (pc=0x00000000220e643f) | |
| 49 | +0x00000000220e641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc | |
| 50 | +0x00000000220e642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20 | |
| 51 | +0x00000000220e643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0 | |
| 52 | +0x00000000220e644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba | |
| 53 | + | |
| 54 | + | |
| 55 | +Register to memory mapping: | |
| 56 | + | |
| 57 | +RAX=0x0000000000000001 is an unknown value | |
| 58 | +RBX=0x0000000000000000 is an unknown value | |
| 59 | +RCX=0x0000000000000000 is an unknown value | |
| 60 | +RDX=0x0000000000000000 is an unknown value | |
| 61 | +RSP=0x00000000196af220 is an unknown value | |
| 62 | +RBP=0x0000000000000000 is an unknown value | |
| 63 | +RSI=0x0000000000000000 is an unknown value | |
| 64 | +RDI=0x00000000006abe30 is an unknown value | |
| 65 | +R8 =0x0000000000000001 is an unknown value | |
| 66 | +R9 =0x0000000000000001 is an unknown value | |
| 67 | +R10=0x0000000000008000 is an unknown value | |
| 68 | +R11=0x00000000196af2b0 is an unknown value | |
| 69 | +R12=0x000000000067c470 is an unknown value | |
| 70 | +R13=0x0000000000000000 is an unknown value | |
| 71 | +R14=0x0000000000000001 is an unknown value | |
| 72 | +R15=0x000000000067c520 is an unknown value | |
| 73 | + | |
| 74 | + | |
| 75 | +Stack: [0x00000000195b0000,0x00000000196b0000], sp=0x00000000196af220, free space=1020k | |
| 76 | +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |
| 77 | + | |
| 78 | +VM_Operation (0x00000000028dedb0): Exit, mode: safepoint, requested by thread 0x00000000028e3000 | |
| 79 | + | |
| 80 | + | |
| 81 | +--------------- P R O C E S S --------------- | |
| 82 | + | |
| 83 | +Java Threads: ( => current thread ) | |
| 84 | + 0x0000000020b35000 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=27240, stack(0x00000000244d0000,0x00000000245d0000)] | |
| 85 | + 0x0000000020b34800 JavaThread "scheduling-1" [_thread_blocked, id=17392, stack(0x00000000241a0000,0x00000000242a0000)] | |
| 86 | + 0x000000001993e000 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=28448, stack(0x000000001a4c0000,0x000000001a5c0000)] | |
| 87 | + 0x00000000198cd800 JavaThread "Service Thread" daemon [_thread_blocked, id=25192, stack(0x000000001a2c0000,0x000000001a3c0000)] | |
| 88 | + 0x0000000019851000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=16784, stack(0x000000001a1c0000,0x000000001a2c0000)] | |
| 89 | + 0x000000001984a000 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=22272, stack(0x000000001a0c0000,0x000000001a1c0000)] | |
| 90 | + 0x0000000019846000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=10608, stack(0x0000000019fc0000,0x000000001a0c0000)] | |
| 91 | + 0x0000000019840800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=24008, stack(0x0000000019ec0000,0x0000000019fc0000)] | |
| 92 | + 0x000000001983d800 JavaThread "Attach Listener" daemon [_thread_blocked, id=4792, stack(0x0000000019dc0000,0x0000000019ec0000)] | |
| 93 | + 0x00000000197d0800 JavaThread "Finalizer" daemon [_thread_blocked, id=19876, stack(0x0000000019bb0000,0x0000000019cb0000)] | |
| 94 | + 0x00000000029d6000 JavaThread "Reference Handler" daemon [_thread_blocked, id=13224, stack(0x00000000196b0000,0x00000000197b0000)] | |
| 95 | + 0x00000000028e3000 JavaThread "main" [_thread_blocked, id=13392, stack(0x00000000027e0000,0x00000000028e0000)] | |
| 96 | + | |
| 97 | +Other Threads: | |
| 98 | +=>0x00000000178c9800 VMThread [stack: 0x00000000195b0000,0x00000000196b0000] [id=23824] | |
| 99 | + | |
| 100 | +VM state:at safepoint (shutting down) | |
| 101 | + | |
| 102 | +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) | |
| 103 | +[0x00000000027de140] Threads_lock - owner thread: 0x00000000178c9800 | |
| 104 | + | |
| 105 | +Heap: | |
| 106 | + PSYoungGen total 273408K, used 244067K [0x00000000d6300000, 0x00000000ec180000, 0x0000000100000000) | |
| 107 | + eden space 258048K, 88% used [0x00000000d6300000,0x00000000e425efb8,0x00000000e5f00000) | |
| 108 | + from space 15360K, 99% used [0x00000000e5f00000,0x00000000e6dfa040,0x00000000e6e00000) | |
| 109 | + to space 18944K, 0% used [0x00000000eaf00000,0x00000000eaf00000,0x00000000ec180000) | |
| 110 | + ParOldGen total 80384K, used 23484K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000) | |
| 111 | + object space 80384K, 29% used [0x0000000082800000,0x0000000083eef3a8,0x0000000087680000) | |
| 112 | + Metaspace used 54553K, capacity 56888K, committed 57048K, reserved 1099776K | |
| 113 | + class space used 7242K, capacity 7658K, committed 7680K, reserved 1048576K | |
| 114 | + | |
| 115 | +Card table byte_map: [0x0000000011da0000,0x0000000012190000] byte_map_base: 0x000000001198c000 | |
| 116 | + | |
| 117 | +Marking Bits: (ParMarkBitMap*) 0x0000000074032d00 | |
| 118 | + Begin Bits: [0x0000000012c30000, 0x0000000014b90000) | |
| 119 | + End Bits: [0x0000000014b90000, 0x0000000016af0000) | |
| 120 | + | |
| 121 | +Polling page: 0x0000000002710000 | |
| 122 | + | |
| 123 | +CodeCache: size=245760Kb used=19524Kb max_used=20049Kb free=226235Kb | |
| 124 | + bounds [0x00000000029e0000, 0x0000000003dc0000, 0x00000000119e0000] | |
| 125 | + total_blobs=5402 nmethods=4902 adapters=411 | |
| 126 | + compilation: enabled | |
| 127 | + | |
| 128 | +Compilation events (10 events): | |
| 129 | +Event: 12.123 Thread 0x0000000019851000 5744 2 org.springframework.beans.factory.support.DefaultListableBeanFactory$$Lambda$113/1856158867::get$Lambda (9 bytes) | |
| 130 | +Event: 12.123 Thread 0x0000000019851000 nmethod 5744 0x0000000003ae8950 code [0x0000000003ae8aa0, 0x0000000003ae8c30] | |
| 131 | +Event: 12.123 Thread 0x0000000019851000 5745 2 org.springframework.beans.factory.support.DefaultListableBeanFactory$$Lambda$113/1856158867::<init> (10 bytes) | |
| 132 | +Event: 12.123 Thread 0x0000000019851000 nmethod 5745 0x0000000002e3d850 code [0x0000000002e3d9a0, 0x0000000002e3db10] | |
| 133 | +Event: 12.123 Thread 0x0000000019851000 5735 1 io.micrometer.shaded.org.pcollections.IntTree::access$200 (5 bytes) | |
| 134 | +Event: 12.123 Thread 0x0000000019851000 nmethod 5735 0x0000000003257a50 code [0x0000000003257ba0, 0x0000000003257c90] | |
| 135 | +Event: 12.123 Thread 0x0000000019851000 5736 1 io.micrometer.shaded.org.pcollections.ConsPStack::access$100 (5 bytes) | |
| 136 | +Event: 12.124 Thread 0x0000000019851000 nmethod 5736 0x0000000003990c50 code [0x0000000003990da0, 0x0000000003990e90] | |
| 137 | +Event: 12.124 Thread 0x0000000019851000 5737 1 io.micrometer.shaded.org.pcollections.ConsPStack::access$200 (5 bytes) | |
| 138 | +Event: 12.124 Thread 0x0000000019851000 nmethod 5737 0x0000000002b7ec50 code [0x0000000002b7eda0, 0x0000000002b7ee90] | |
| 139 | + | |
| 140 | +GC Heap History (10 events): | |
| 141 | +Event: 3.798 GC heap before | |
| 142 | +{Heap before GC invocations=9 (full 1): | |
| 143 | + PSYoungGen total 138752K, used 111258K [0x00000000d6300000, 0x00000000e4100000, 0x0000000100000000) | |
| 144 | + eden space 129536K, 78% used [0x00000000d6300000,0x00000000dc6abbe0,0x00000000de180000) | |
| 145 | + from space 9216K, 99% used [0x00000000de180000,0x00000000dea7aef0,0x00000000dea80000) | |
| 146 | + to space 11776K, 0% used [0x00000000e3580000,0x00000000e3580000,0x00000000e4100000) | |
| 147 | + ParOldGen total 48128K, used 9131K [0x0000000082800000, 0x0000000085700000, 0x00000000d6300000) | |
| 148 | + object space 48128K, 18% used [0x0000000082800000,0x00000000830eade8,0x0000000085700000) | |
| 149 | + Metaspace used 34326K, capacity 35338K, committed 35416K, reserved 1079296K | |
| 150 | + class space used 4451K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 151 | +Event: 3.808 GC heap after | |
| 152 | +Heap after GC invocations=9 (full 1): | |
| 153 | + PSYoungGen total 212992K, used 11752K [0x00000000d6300000, 0x00000000e5780000, 0x0000000100000000) | |
| 154 | + eden space 201216K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2780000) | |
| 155 | + from space 11776K, 99% used [0x00000000e3580000,0x00000000e40fa080,0x00000000e4100000) | |
| 156 | + to space 14336K, 0% used [0x00000000e2780000,0x00000000e2780000,0x00000000e3580000) | |
| 157 | + ParOldGen total 48128K, used 11434K [0x0000000082800000, 0x0000000085700000, 0x00000000d6300000) | |
| 158 | + object space 48128K, 23% used [0x0000000082800000,0x000000008332ab58,0x0000000085700000) | |
| 159 | + Metaspace used 34326K, capacity 35338K, committed 35416K, reserved 1079296K | |
| 160 | + class space used 4451K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 161 | +} | |
| 162 | +Event: 3.808 GC heap before | |
| 163 | +{Heap before GC invocations=10 (full 2): | |
| 164 | + PSYoungGen total 212992K, used 11752K [0x00000000d6300000, 0x00000000e5780000, 0x0000000100000000) | |
| 165 | + eden space 201216K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2780000) | |
| 166 | + from space 11776K, 99% used [0x00000000e3580000,0x00000000e40fa080,0x00000000e4100000) | |
| 167 | + to space 14336K, 0% used [0x00000000e2780000,0x00000000e2780000,0x00000000e3580000) | |
| 168 | + ParOldGen total 48128K, used 11434K [0x0000000082800000, 0x0000000085700000, 0x00000000d6300000) | |
| 169 | + object space 48128K, 23% used [0x0000000082800000,0x000000008332ab58,0x0000000085700000) | |
| 170 | + Metaspace used 34326K, capacity 35338K, committed 35416K, reserved 1079296K | |
| 171 | + class space used 4451K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 172 | +Event: 3.891 GC heap after | |
| 173 | +Heap after GC invocations=10 (full 2): | |
| 174 | + PSYoungGen total 212992K, used 0K [0x00000000d6300000, 0x00000000e5780000, 0x0000000100000000) | |
| 175 | + eden space 201216K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2780000) | |
| 176 | + from space 11776K, 0% used [0x00000000e3580000,0x00000000e3580000,0x00000000e4100000) | |
| 177 | + to space 14336K, 0% used [0x00000000e2780000,0x00000000e2780000,0x00000000e3580000) | |
| 178 | + ParOldGen total 80384K, used 18660K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000) | |
| 179 | + object space 80384K, 23% used [0x0000000082800000,0x0000000083a392e0,0x0000000087680000) | |
| 180 | + Metaspace used 34326K, capacity 35338K, committed 35416K, reserved 1079296K | |
| 181 | + class space used 4451K, capacity 4681K, committed 4736K, reserved 1048576K | |
| 182 | +} | |
| 183 | +Event: 7.109 GC heap before | |
| 184 | +{Heap before GC invocations=11 (full 2): | |
| 185 | + PSYoungGen total 212992K, used 201216K [0x00000000d6300000, 0x00000000e5780000, 0x0000000100000000) | |
| 186 | + eden space 201216K, 100% used [0x00000000d6300000,0x00000000e2780000,0x00000000e2780000) | |
| 187 | + from space 11776K, 0% used [0x00000000e3580000,0x00000000e3580000,0x00000000e4100000) | |
| 188 | + to space 14336K, 0% used [0x00000000e2780000,0x00000000e2780000,0x00000000e3580000) | |
| 189 | + ParOldGen total 80384K, used 18660K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000) | |
| 190 | + object space 80384K, 23% used [0x0000000082800000,0x0000000083a392e0,0x0000000087680000) | |
| 191 | + Metaspace used 40683K, capacity 41946K, committed 42200K, reserved 1085440K | |
| 192 | + class space used 5265K, capacity 5527K, committed 5632K, reserved 1048576K | |
| 193 | +Event: 7.119 GC heap after | |
| 194 | +Heap after GC invocations=11 (full 2): | |
| 195 | + PSYoungGen total 215552K, used 9569K [0x00000000d6300000, 0x00000000e7d80000, 0x0000000100000000) | |
| 196 | + eden space 201216K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e2780000) | |
| 197 | + from space 14336K, 66% used [0x00000000e2780000,0x00000000e30d8790,0x00000000e3580000) | |
| 198 | + to space 14336K, 0% used [0x00000000e6f80000,0x00000000e6f80000,0x00000000e7d80000) | |
| 199 | + ParOldGen total 80384K, used 18668K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000) | |
| 200 | + object space 80384K, 23% used [0x0000000082800000,0x0000000083a3b2e0,0x0000000087680000) | |
| 201 | + Metaspace used 40683K, capacity 41946K, committed 42200K, reserved 1085440K | |
| 202 | + class space used 5265K, capacity 5527K, committed 5632K, reserved 1048576K | |
| 203 | +} | |
| 204 | +Event: 8.748 GC heap before | |
| 205 | +{Heap before GC invocations=12 (full 2): | |
| 206 | + PSYoungGen total 215552K, used 210785K [0x00000000d6300000, 0x00000000e7d80000, 0x0000000100000000) | |
| 207 | + eden space 201216K, 100% used [0x00000000d6300000,0x00000000e2780000,0x00000000e2780000) | |
| 208 | + from space 14336K, 66% used [0x00000000e2780000,0x00000000e30d8790,0x00000000e3580000) | |
| 209 | + to space 14336K, 0% used [0x00000000e6f80000,0x00000000e6f80000,0x00000000e7d80000) | |
| 210 | + ParOldGen total 80384K, used 18668K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000) | |
| 211 | + object space 80384K, 23% used [0x0000000082800000,0x0000000083a3b2e0,0x0000000087680000) | |
| 212 | + Metaspace used 44288K, capacity 45790K, committed 46040K, reserved 1089536K | |
| 213 | + class space used 5737K, capacity 6057K, committed 6144K, reserved 1048576K | |
| 214 | +Event: 8.765 GC heap after | |
| 215 | +Heap after GC invocations=12 (full 2): | |
| 216 | + PSYoungGen total 269824K, used 13531K [0x00000000d6300000, 0x00000000e7d00000, 0x0000000100000000) | |
| 217 | + eden space 256000K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e5d00000) | |
| 218 | + from space 13824K, 97% used [0x00000000e6f80000,0x00000000e7cb6ec0,0x00000000e7d00000) | |
| 219 | + to space 15360K, 0% used [0x00000000e5f00000,0x00000000e5f00000,0x00000000e6e00000) | |
| 220 | + ParOldGen total 80384K, used 18676K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000) | |
| 221 | + object space 80384K, 23% used [0x0000000082800000,0x0000000083a3d2e0,0x0000000087680000) | |
| 222 | + Metaspace used 44288K, capacity 45790K, committed 46040K, reserved 1089536K | |
| 223 | + class space used 5737K, capacity 6057K, committed 6144K, reserved 1048576K | |
| 224 | +} | |
| 225 | +Event: 10.252 GC heap before | |
| 226 | +{Heap before GC invocations=13 (full 2): | |
| 227 | + PSYoungGen total 269824K, used 269531K [0x00000000d6300000, 0x00000000e7d00000, 0x0000000100000000) | |
| 228 | + eden space 256000K, 100% used [0x00000000d6300000,0x00000000e5d00000,0x00000000e5d00000) | |
| 229 | + from space 13824K, 97% used [0x00000000e6f80000,0x00000000e7cb6ec0,0x00000000e7d00000) | |
| 230 | + to space 15360K, 0% used [0x00000000e5f00000,0x00000000e5f00000,0x00000000e6e00000) | |
| 231 | + ParOldGen total 80384K, used 18676K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000) | |
| 232 | + object space 80384K, 23% used [0x0000000082800000,0x0000000083a3d2e0,0x0000000087680000) | |
| 233 | + Metaspace used 47435K, capacity 49496K, committed 49624K, reserved 1091584K | |
| 234 | + class space used 6188K, capacity 6558K, committed 6656K, reserved 1048576K | |
| 235 | +Event: 10.270 GC heap after | |
| 236 | +Heap after GC invocations=13 (full 2): | |
| 237 | + PSYoungGen total 273408K, used 15336K [0x00000000d6300000, 0x00000000ec180000, 0x0000000100000000) | |
| 238 | + eden space 258048K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000e5f00000) | |
| 239 | + from space 15360K, 99% used [0x00000000e5f00000,0x00000000e6dfa040,0x00000000e6e00000) | |
| 240 | + to space 18944K, 0% used [0x00000000eaf00000,0x00000000eaf00000,0x00000000ec180000) | |
| 241 | + ParOldGen total 80384K, used 23484K [0x0000000082800000, 0x0000000087680000, 0x00000000d6300000) | |
| 242 | + object space 80384K, 29% used [0x0000000082800000,0x0000000083eef3a8,0x0000000087680000) | |
| 243 | + Metaspace used 47435K, capacity 49496K, committed 49624K, reserved 1091584K | |
| 244 | + class space used 6188K, capacity 6558K, committed 6656K, reserved 1048576K | |
| 245 | +} | |
| 246 | + | |
| 247 | +Deoptimization events (10 events): | |
| 248 | +Event: 11.720 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003126854 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 249 | +Event: 11.720 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003582484 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 250 | +Event: 11.755 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003126854 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 251 | +Event: 11.755 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003582484 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 252 | +Event: 11.757 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003126854 method=java.util.AbstractList$Itr.hasNext()Z @ 8 | |
| 253 | +Event: 11.757 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003582484 method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 254 | +Event: 11.983 Thread 0x0000000020b34800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000037a1d4c method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7 | |
| 255 | +Event: 11.983 Thread 0x0000000020b34800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000301e91c method=java.net.URLStreamHandler.parseURL(Ljava/net/URL;Ljava/lang/String;II)V @ 155 | |
| 256 | +Event: 11.991 Thread 0x0000000020b34800 Uncommon trap: reason=null_check action=make_not_entrant pc=0x000000000379f690 method=java.net.URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; @ 7 | |
| 257 | +Event: 12.031 Thread 0x00000000028e3000 Uncommon trap: reason=null_check action=make_not_entrant pc=0x00000000033bb6f4 method=org.springframework.core.annotation.AnnotatedElementUtils.searchWithGetSemanticsInAnnotations(Ljava/lang/reflect/AnnotatedElement;Ljava/util/List;Ljava/util/Set;Ljava/la | |
| 258 | + | |
| 259 | +Classes redefined (0 events): | |
| 260 | +No events | |
| 261 | + | |
| 262 | +Internal exceptions (10 events): | |
| 263 | +Event: 11.287 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/boot/actuate/autoconfigure/web/server/ManagementServerPropertiesCustomizer> (0x00000000df7220f0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\shar | |
| 264 | +Event: 11.314 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000df9ec1f8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 265 | +Event: 11.315 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/netflix/eureka/serviceregistry/EurekaRegistrationCustomizer> (0x00000000dfa28058) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\clas | |
| 266 | +Event: 11.316 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/serviceregistry/RegistrationCustomizer> (0x00000000dfa7d138) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDi | |
| 267 | +Event: 11.317 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/cloud/client/ServiceInstanceCustomizer> (0x00000000dfaa6ce8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 268 | +Event: 11.685 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e1655300) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 269 | +Event: 11.685 Thread 0x00000000028e3000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000e167ffa8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 270 | +Event: 12.031 Thread 0x00000000028e3000 Implicit null exception at 0x00000000033b931a to 0x00000000033bb6c9 | |
| 271 | +Event: 12.106 Thread 0x0000000020b36000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000e3dea878) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 272 | +Event: 12.107 Thread 0x0000000020b36000 Exception <a 'java/lang/ClassNotFoundException': com/netflix/appinfo/ApplicationInfoManagerCustomizer> (0x00000000e3e14ac0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 273 | + | |
| 274 | +Events (10 events): | |
| 275 | +Event: 12.121 Thread 0x0000000019851000 flushing nmethod 0x00000000038a6450 | |
| 276 | +Event: 12.121 Thread 0x0000000019851000 flushing nmethod 0x0000000003990bd0 | |
| 277 | +Event: 12.122 loading class com/sun/crypto/provider/SunJCE$1 | |
| 278 | +Event: 12.122 loading class com/sun/crypto/provider/SunJCE$1 done | |
| 279 | +Event: 12.122 Thread 0x0000000019851000 flushing nmethod 0x0000000003ae8950 | |
| 280 | +Event: 12.122 Thread 0x0000000019851000 flushing nmethod 0x0000000003b2e390 | |
| 281 | +Event: 12.123 Thread 0x0000000019851000 flushing nmethod 0x0000000003bdbf10 | |
| 282 | +Event: 12.123 Thread 0x0000000020b36000 Thread exited: 0x0000000020b36000 | |
| 283 | +Event: 12.123 Thread 0x00000000197e9800 Thread exited: 0x00000000197e9800 | |
| 284 | +Event: 12.124 Executing VM operation: Exit | |
| 285 | + | |
| 286 | + | |
| 287 | +Dynamic libraries: | |
| 288 | +0x00007ff68b880000 - 0x00007ff68b8b7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe | |
| 289 | +0x00007ffec8fa0000 - 0x00007ffec9190000 C:\WINDOWS\SYSTEM32\ntdll.dll | |
| 290 | +0x00007ffec7050000 - 0x00007ffec7102000 C:\WINDOWS\System32\KERNEL32.DLL | |
| 291 | +0x00007ffec6b20000 - 0x00007ffec6dc3000 C:\WINDOWS\System32\KERNELBASE.dll | |
| 292 | +0x00007ffec79a0000 - 0x00007ffec7a43000 C:\WINDOWS\System32\ADVAPI32.dll | |
| 293 | +0x00007ffec88e0000 - 0x00007ffec897e000 C:\WINDOWS\System32\msvcrt.dll | |
| 294 | +0x00007ffec7a50000 - 0x00007ffec7ae7000 C:\WINDOWS\System32\sechost.dll | |
| 295 | +0x00007ffec82d0000 - 0x00007ffec83f0000 C:\WINDOWS\System32\RPCRT4.dll | |
| 296 | +0x00007ffec7110000 - 0x00007ffec72a3000 C:\WINDOWS\System32\USER32.dll | |
| 297 | +0x00007ffec66b0000 - 0x00007ffec66d1000 C:\WINDOWS\System32\win32u.dll | |
| 298 | +0x00007ffec89f0000 - 0x00007ffec8a16000 C:\WINDOWS\System32\GDI32.dll | |
| 299 | +0x00007ffec66e0000 - 0x00007ffec6874000 C:\WINDOWS\System32\gdi32full.dll | |
| 300 | +0x00007ffec6f00000 - 0x00007ffec6f9e000 C:\WINDOWS\System32\msvcp_win.dll | |
| 301 | +0x00007ffec6880000 - 0x00007ffec697a000 C:\WINDOWS\System32\ucrtbase.dll | |
| 302 | +0x00007ffeafb50000 - 0x00007ffeafdd5000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll | |
| 303 | +0x00007ffec7d90000 - 0x00007ffec80c6000 C:\WINDOWS\System32\combase.dll | |
| 304 | +0x00007ffec6e80000 - 0x00007ffec6f00000 C:\WINDOWS\System32\bcryptPrimitives.dll | |
| 305 | +0x00007ffec8a40000 - 0x00007ffec8a6e000 C:\WINDOWS\System32\IMM32.DLL | |
| 306 | +0x00000000740c0000 - 0x0000000074192000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll | |
| 307 | +0x0000000073810000 - 0x00000000740b2000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll | |
| 308 | +0x00007ffec88b0000 - 0x00007ffec88b8000 C:\WINDOWS\System32\PSAPI.DLL | |
| 309 | +0x00007ffec1410000 - 0x00007ffec1434000 C:\WINDOWS\SYSTEM32\WINMM.dll | |
| 310 | +0x00007ffeb1890000 - 0x00007ffeb1899000 C:\WINDOWS\SYSTEM32\WSOCK32.dll | |
| 311 | +0x00007ffebcd60000 - 0x00007ffebcd6a000 C:\WINDOWS\SYSTEM32\VERSION.dll | |
| 312 | +0x00007ffec8130000 - 0x00007ffec819f000 C:\WINDOWS\System32\WS2_32.dll | |
| 313 | +0x00007ffec1170000 - 0x00007ffec119d000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll | |
| 314 | +0x00007ffec6980000 - 0x00007ffec69ca000 C:\WINDOWS\System32\cfgmgr32.dll | |
| 315 | +0x0000000073800000 - 0x000000007380f000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll | |
| 316 | +0x00000000737d0000 - 0x00000000737f9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll | |
| 317 | +0x00000000737b0000 - 0x00000000737c6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll | |
| 318 | +0x00007ffec72b0000 - 0x00007ffec7992000 C:\WINDOWS\System32\SHELL32.dll | |
| 319 | +0x00007ffec8800000 - 0x00007ffec88a9000 C:\WINDOWS\System32\shcore.dll | |
| 320 | +0x00007ffec5f30000 - 0x00007ffec66ac000 C:\WINDOWS\System32\windows.storage.dll | |
| 321 | +0x00007ffec5f10000 - 0x00007ffec5f2f000 C:\WINDOWS\System32\profapi.dll | |
| 322 | +0x00007ffec5ea0000 - 0x00007ffec5eea000 C:\WINDOWS\System32\powrprof.dll | |
| 323 | +0x00007ffec5e70000 - 0x00007ffec5e80000 C:\WINDOWS\System32\UMPDC.dll | |
| 324 | +0x00007ffec86d0000 - 0x00007ffec8722000 C:\WINDOWS\System32\shlwapi.dll | |
| 325 | +0x00007ffec5e80000 - 0x00007ffec5e91000 C:\WINDOWS\System32\kernel.appcore.dll | |
| 326 | +0x00007ffec7000000 - 0x00007ffec7017000 C:\WINDOWS\System32\cryptsp.dll | |
| 327 | +0x00000000736d0000 - 0x00000000736dd000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll | |
| 328 | +0x0000000073790000 - 0x00000000737aa000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll | |
| 329 | +0x00007ffec56e0000 - 0x00007ffec5747000 C:\WINDOWS\system32\mswsock.dll | |
| 330 | +0x00000000736b0000 - 0x00000000736c1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll | |
| 331 | +0x00007ffec53f0000 - 0x00007ffec542a000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL | |
| 332 | +0x00007ffec88c0000 - 0x00007ffec88c8000 C:\WINDOWS\System32\NSI.dll | |
| 333 | +0x00007ffebdaa0000 - 0x00007ffebdab6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL | |
| 334 | +0x00007ffebe420000 - 0x00007ffebe43c000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL | |
| 335 | +0x00007ffec5430000 - 0x00007ffec54fa000 C:\WINDOWS\SYSTEM32\DNSAPI.dll | |
| 336 | +0x00007ffeb8da0000 - 0x00007ffeb8daa000 C:\Windows\System32\rasadhlp.dll | |
| 337 | +0x00007ffebce70000 - 0x00007ffebcee7000 C:\WINDOWS\System32\fwpuclnt.dll | |
| 338 | +0x00007ffec7020000 - 0x00007ffec7046000 C:\WINDOWS\System32\bcrypt.dll | |
| 339 | +0x00007ffe9fea0000 - 0x00007ffe9feb6000 C:\WINDOWS\system32\napinsp.dll | |
| 340 | +0x00007ffe9edd0000 - 0x00007ffe9edea000 C:\WINDOWS\system32\pnrpnsp.dll | |
| 341 | +0x00007ffe9ed90000 - 0x00007ffe9ed9e000 C:\WINDOWS\System32\winrnr.dll | |
| 342 | +0x00007ffec2ba0000 - 0x00007ffec2bbc000 C:\WINDOWS\system32\NLAapi.dll | |
| 343 | +0x00007ffe9ed20000 - 0x00007ffe9ed35000 C:\WINDOWS\system32\wshbth.dll | |
| 344 | +0x00007ffec5250000 - 0x00007ffec5283000 C:\WINDOWS\system32\rsaenh.dll | |
| 345 | +0x00007ffec5d90000 - 0x00007ffec5db5000 C:\WINDOWS\SYSTEM32\USERENV.dll | |
| 346 | +0x00007ffec58b0000 - 0x00007ffec58bc000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll | |
| 347 | +0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna4596171739764217585.tmp | |
| 348 | +0x0000000021cf0000 - 0x00000000220bb000 C:\lib\HCEHomeCMS.DLL | |
| 349 | +0x00000000220c0000 - 0x000000002244f000 C:\lib\HCEHomeAlarm.DLL | |
| 350 | +0x0000000023bb0000 - 0x0000000023da0000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll | |
| 351 | +0x00007ffe9bd90000 - 0x00007ffe9bdc2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll | |
| 352 | +0x0000000071e40000 - 0x0000000071e64000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\sunec.dll | |
| 353 | +0x00007ffec4790000 - 0x00007ffec4984000 C:\WINDOWS\SYSTEM32\dbghelp.dll | |
| 354 | + | |
| 355 | +VM Arguments: | |
| 356 | +java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5663795452921204559\surefirebooter5490973143149834000.jar C:\Users\taohandong\AppData\Local\Temp\surefire5663795452921204559 2019-08-30T14-47-30_089-jvmRun1 surefire2288351008064456144tmp surefire_03777265743351655011tmp | |
| 357 | +java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire5663795452921204559\surefirebooter5490973143149834000.jar | |
| 358 | +Launcher Type: SUN_STANDARD | |
| 359 | + | |
| 360 | +Environment Variables: | |
| 361 | +JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 | |
| 362 | +CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar; | |
| 363 | +USERNAME=taohandong | |
| 364 | +OS=Windows_NT | |
| 365 | +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | +--------------- S Y S T E M --------------- | |
| 370 | + | |
| 371 | +OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86) | |
| 372 | + | |
| 373 | +CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx | |
| 374 | + | |
| 375 | +Memory: 4k page, physical 8218728k(712828k free), swap 28521748k(3226572k free) | |
| 376 | + | |
| 377 | +vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010) | |
| 378 | + | |
| 379 | +time: Fri Aug 30 14:47:43 2019 | |
| 380 | +elapsed time: 12 seconds (0d 0h 0m 12s) | |
| 381 | + | ... | ... |
cloud/haikang/hs_err_pid5804.log
| ... | ... | @@ -1,380 +0,0 @@ |
| 1 | -# | |
| 2 | -# A fatal error has been detected by the Java Runtime Environment: | |
| 3 | -# | |
| 4 | -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000002103643f, pid=5804, tid=0x0000000000005398 | |
| 5 | -# | |
| 6 | -# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13) | |
| 7 | -# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops) | |
| 8 | -# Problematic frame: | |
| 9 | -# C [HCEHomeAlarm.DLL+0x2643f] | |
| 10 | -# | |
| 11 | -# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows | |
| 12 | -# | |
| 13 | -# If you would like to submit a bug report, please visit: | |
| 14 | -# http://bugreport.java.com/bugreport/crash.jsp | |
| 15 | -# | |
| 16 | - | |
| 17 | ---------------- T H R E A D --------------- | |
| 18 | - | |
| 19 | -Current thread (0x0000000017be9800): VMThread [stack: 0x00000000198b0000,0x00000000199b0000] [id=21400] | |
| 20 | - | |
| 21 | -siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000 | |
| 22 | - | |
| 23 | -Registers: | |
| 24 | -RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x0000000000000000, RDX=0x0000000000000000 | |
| 25 | -RSP=0x00000000199af330, RBP=0x0000000000000000, RSI=0x0000000000000000, RDI=0x000000000093cca0 | |
| 26 | -R8 =0x0000000000000001, R9 =0x0000000000000001, R10=0x0000000000008000, R11=0x00000000199af3c0 | |
| 27 | -R12=0x000000000092afe0, R13=0x0000000000000000, R14=0x0000000000000001, R15=0x000000000092b090 | |
| 28 | -RIP=0x000000002103643f, EFLAGS=0x0000000000010206 | |
| 29 | - | |
| 30 | -Top of Stack: (sp=0x00000000199af330) | |
| 31 | -0x00000000199af330: 000000002207d400 00007ff8179607cd | |
| 32 | -0x00000000199af340: 000000000093bd20 00000002008c0000 | |
| 33 | -0x00000000199af350: 000000000093cca0 00000000210ccb11 | |
| 34 | -0x00000000199af360: 0000000000000000 0000000000000000 | |
| 35 | -0x00000000199af370: 00000000009125c0 000000341795fba1 | |
| 36 | -0x00000000199af380: 000000001c9440e0 0000000021036bf2 | |
| 37 | -0x00000000199af390: 0000000000000000 0000000000000001 | |
| 38 | -0x00000000199af3a0: 0000000000000000 000000000092afe0 | |
| 39 | -0x00000000199af3b0: 0000000000000001 0000000021036620 | |
| 40 | -0x00000000199af3c0: 0000000000000000 000000001c9440e0 | |
| 41 | -0x00000000199af3d0: 000000000092afe0 0000000000000000 | |
| 42 | -0x00000000199af3e0: 0000000000942b00 0000000017a756d0 | |
| 43 | -0x00000000199af3f0: 0000000021991200 0000000021035cc8 | |
| 44 | -0x00000000199af400: 0000000017a756d0 000000001c9440e0 | |
| 45 | -0x00000000199af410: 0000000000000000 0000000000000000 | |
| 46 | -0x00000000199af420: 0000000021991200 00000000210cdb04 | |
| 47 | - | |
| 48 | -Instructions: (pc=0x000000002103643f) | |
| 49 | -0x000000002103641f: 38 48 8b 74 24 40 48 83 c4 20 5f c3 cc cc cc cc | |
| 50 | -0x000000002103642f: cc 48 89 5c 24 08 48 89 74 24 10 57 48 83 ec 20 | |
| 51 | -0x000000002103643f: 48 8b 01 41 8b f0 8b da 48 8b f9 ff 50 08 85 c0 | |
| 52 | -0x000000002103644f: 75 48 48 8b 05 78 70 17 00 48 83 f8 ff 74 1f ba | |
| 53 | - | |
| 54 | - | |
| 55 | -Register to memory mapping: | |
| 56 | - | |
| 57 | -RAX=0x0000000000000001 is an unknown value | |
| 58 | -RBX=0x0000000000000000 is an unknown value | |
| 59 | -RCX=0x0000000000000000 is an unknown value | |
| 60 | -RDX=0x0000000000000000 is an unknown value | |
| 61 | -RSP=0x00000000199af330 is an unknown value | |
| 62 | -RBP=0x0000000000000000 is an unknown value | |
| 63 | -RSI=0x0000000000000000 is an unknown value | |
| 64 | -RDI=0x000000000093cca0 is an unknown value | |
| 65 | -R8 =0x0000000000000001 is an unknown value | |
| 66 | -R9 =0x0000000000000001 is an unknown value | |
| 67 | -R10=0x0000000000008000 is an unknown value | |
| 68 | -R11=0x00000000199af3c0 is an unknown value | |
| 69 | -R12=0x000000000092afe0 is an unknown value | |
| 70 | -R13=0x0000000000000000 is an unknown value | |
| 71 | -R14=0x0000000000000001 is an unknown value | |
| 72 | -R15=0x000000000092b090 is an unknown value | |
| 73 | - | |
| 74 | - | |
| 75 | -Stack: [0x00000000198b0000,0x00000000199b0000], sp=0x00000000199af330, free space=1020k | |
| 76 | -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) | |
| 77 | - | |
| 78 | -VM_Operation (0x0000000002b8ed80): Exit, mode: safepoint, requested by thread 0x0000000002c03000 | |
| 79 | - | |
| 80 | - | |
| 81 | ---------------- P R O C E S S --------------- | |
| 82 | - | |
| 83 | -Java Threads: ( => current thread ) | |
| 84 | - 0x000000001e757800 JavaThread "surefire-forkedjvm-last-ditch-daemon-shutdown-thread-30s" daemon [_thread_blocked, id=4628, stack(0x000000001f5d0000,0x000000001f6d0000)] | |
| 85 | - 0x0000000019c8d000 JavaThread "surefire-forkedjvm-command-thread" daemon [_thread_in_native, id=4584, stack(0x000000001a7b0000,0x000000001a8b0000)] | |
| 86 | - 0x0000000019bd8800 JavaThread "Service Thread" daemon [_thread_blocked, id=1544, stack(0x000000001a5b0000,0x000000001a6b0000)] | |
| 87 | - 0x0000000019b4b800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=11108, stack(0x000000001a4b0000,0x000000001a5b0000)] | |
| 88 | - 0x0000000019b44800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=15628, stack(0x000000001a3b0000,0x000000001a4b0000)] | |
| 89 | - 0x0000000019b41800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=21148, stack(0x000000001a2b0000,0x000000001a3b0000)] | |
| 90 | - 0x0000000019b3d800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=19612, stack(0x000000001a1b0000,0x000000001a2b0000)] | |
| 91 | - 0x0000000019ae9000 JavaThread "Attach Listener" daemon [_thread_blocked, id=5504, stack(0x000000001a0b0000,0x000000001a1b0000)] | |
| 92 | - 0x0000000019ae8000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=17668, stack(0x0000000019fb0000,0x000000001a0b0000)] | |
| 93 | - 0x0000000019ad0800 JavaThread "Finalizer" daemon [_thread_blocked, id=18084, stack(0x0000000019eb0000,0x0000000019fb0000)] | |
| 94 | - 0x0000000002cf6000 JavaThread "Reference Handler" daemon [_thread_blocked, id=21476, stack(0x00000000199b0000,0x0000000019ab0000)] | |
| 95 | - 0x0000000002c03000 JavaThread "main" [_thread_blocked, id=128, stack(0x0000000002a90000,0x0000000002b90000)] | |
| 96 | - | |
| 97 | -Other Threads: | |
| 98 | -=>0x0000000017be9800 VMThread [stack: 0x00000000198b0000,0x00000000199b0000] [id=21400] | |
| 99 | - | |
| 100 | -VM state:at safepoint (shutting down) | |
| 101 | - | |
| 102 | -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) | |
| 103 | -[0x0000000002bfe070] Threads_lock - owner thread: 0x0000000017be9800 | |
| 104 | - | |
| 105 | -Heap: | |
| 106 | - PSYoungGen total 110080K, used 8586K [0x00000000d6300000, 0x00000000e0580000, 0x0000000100000000) | |
| 107 | - eden space 100864K, 8% used [0x00000000d6300000,0x00000000d6b62a30,0x00000000dc580000) | |
| 108 | - from space 9216K, 0% used [0x00000000dc580000,0x00000000dc580000,0x00000000dce80000) | |
| 109 | - to space 10240K, 0% used [0x00000000dfb80000,0x00000000dfb80000,0x00000000e0580000) | |
| 110 | - ParOldGen total 87552K, used 13265K [0x0000000082800000, 0x0000000087d80000, 0x00000000d6300000) | |
| 111 | - object space 87552K, 15% used [0x0000000082800000,0x00000000834f4528,0x0000000087d80000) | |
| 112 | - Metaspace used 34115K, capacity 35628K, committed 35800K, reserved 1081344K | |
| 113 | - class space used 4508K, capacity 4790K, committed 4864K, reserved 1048576K | |
| 114 | - | |
| 115 | -Card table byte_map: [0x00000000120c0000,0x00000000124b0000] byte_map_base: 0x0000000011cac000 | |
| 116 | - | |
| 117 | -Marking Bits: (ParMarkBitMap*) 0x000000005ca12d00 | |
| 118 | - Begin Bits: [0x0000000012f50000, 0x0000000014eb0000) | |
| 119 | - End Bits: [0x0000000014eb0000, 0x0000000016e10000) | |
| 120 | - | |
| 121 | -Polling page: 0x00000000008b0000 | |
| 122 | - | |
| 123 | -CodeCache: size=245760Kb used=12489Kb max_used=12525Kb free=233270Kb | |
| 124 | - bounds [0x0000000002d00000, 0x0000000003950000, 0x0000000011d00000] | |
| 125 | - total_blobs=3721 nmethods=3298 adapters=334 | |
| 126 | - compilation: enabled | |
| 127 | - | |
| 128 | -Compilation events (10 events): | |
| 129 | -Event: 4.095 Thread 0x0000000019b4b800 nmethod 3298 0x00000000038f4250 code [0x00000000038f43a0, 0x00000000038f44d0] | |
| 130 | -Event: 4.095 Thread 0x0000000019b4b800 3299 3 java.util.logging.LogManager$LoggerContext::requiresDefaultLoggers (29 bytes) | |
| 131 | -Event: 4.095 Thread 0x0000000019b3d800 3300 4 org.springframework.core.ResolvableType$1::isAssignableFrom (24 bytes) | |
| 132 | -Event: 4.095 Thread 0x0000000019b4b800 nmethod 3299 0x00000000038f77d0 code [0x00000000038f7940, 0x00000000038f7d68] | |
| 133 | -Event: 4.096 Thread 0x0000000019b4b800 3301 1 java.util.concurrent.ConcurrentHashMap$MapEntry::getValue (5 bytes) | |
| 134 | -Event: 4.096 Thread 0x0000000019b4b800 nmethod 3301 0x00000000038f67d0 code [0x00000000038f6920, 0x00000000038f6a30] | |
| 135 | -Event: 4.096 Thread 0x0000000019b4b800 3302 1 ch.qos.logback.core.pattern.Converter::getNext (5 bytes) | |
| 136 | -Event: 4.096 Thread 0x0000000019b4b800 nmethod 3302 0x00000000038f7510 code [0x00000000038f7660, 0x00000000038f7770] | |
| 137 | -Event: 4.097 Thread 0x0000000019b4b800 3303 ! 3 java.util.concurrent.ConcurrentHashMap::clear (176 bytes) | |
| 138 | -Event: 4.098 Thread 0x0000000019b4b800 nmethod 3303 0x00000000038f1b10 code [0x00000000038f1d20, 0x00000000038f2ab8] | |
| 139 | - | |
| 140 | -GC Heap History (10 events): | |
| 141 | -Event: 1.128 GC heap before | |
| 142 | -{Heap before GC invocations=5 (full 1): | |
| 143 | - PSYoungGen total 70656K, used 5119K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000) | |
| 144 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 145 | - from space 5120K, 99% used [0x00000000da800000,0x00000000dacffcc0,0x00000000dad00000) | |
| 146 | - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 147 | - ParOldGen total 86016K, used 6297K [0x0000000082800000, 0x0000000087c00000, 0x00000000d6300000) | |
| 148 | - object space 86016K, 7% used [0x0000000082800000,0x0000000082e26720,0x0000000087c00000) | |
| 149 | - Metaspace used 20641K, capacity 21176K, committed 21248K, reserved 1067008K | |
| 150 | - class space used 2650K, capacity 2802K, committed 2816K, reserved 1048576K | |
| 151 | -Event: 1.151 GC heap after | |
| 152 | -Heap after GC invocations=5 (full 1): | |
| 153 | - PSYoungGen total 70656K, used 0K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000) | |
| 154 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 155 | - from space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000) | |
| 156 | - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 157 | - ParOldGen total 56832K, used 7391K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 158 | - object space 56832K, 13% used [0x0000000082800000,0x0000000082f37fc8,0x0000000085f80000) | |
| 159 | - Metaspace used 20641K, capacity 21176K, committed 21248K, reserved 1067008K | |
| 160 | - class space used 2650K, capacity 2802K, committed 2816K, reserved 1048576K | |
| 161 | -} | |
| 162 | -Event: 1.614 GC heap before | |
| 163 | -{Heap before GC invocations=6 (full 1): | |
| 164 | - PSYoungGen total 70656K, used 65536K [0x00000000d6300000, 0x00000000dad00000, 0x0000000100000000) | |
| 165 | - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000) | |
| 166 | - from space 5120K, 0% used [0x00000000da800000,0x00000000da800000,0x00000000dad00000) | |
| 167 | - to space 5120K, 0% used [0x00000000da300000,0x00000000da300000,0x00000000da800000) | |
| 168 | - ParOldGen total 56832K, used 7391K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 169 | - object space 56832K, 13% used [0x0000000082800000,0x0000000082f37fc8,0x0000000085f80000) | |
| 170 | - Metaspace used 27507K, capacity 28260K, committed 28288K, reserved 1073152K | |
| 171 | - class space used 3531K, capacity 3706K, committed 3712K, reserved 1048576K | |
| 172 | -Event: 1.622 GC heap after | |
| 173 | -Heap after GC invocations=6 (full 1): | |
| 174 | - PSYoungGen total 70656K, used 5118K [0x00000000d6300000, 0x00000000dd800000, 0x0000000100000000) | |
| 175 | - eden space 65536K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000da300000) | |
| 176 | - from space 5120K, 99% used [0x00000000da300000,0x00000000da7ff870,0x00000000da800000) | |
| 177 | - to space 8704K, 0% used [0x00000000dcf80000,0x00000000dcf80000,0x00000000dd800000) | |
| 178 | - ParOldGen total 56832K, used 10601K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 179 | - object space 56832K, 18% used [0x0000000082800000,0x000000008325a5e8,0x0000000085f80000) | |
| 180 | - Metaspace used 27507K, capacity 28260K, committed 28288K, reserved 1073152K | |
| 181 | - class space used 3531K, capacity 3706K, committed 3712K, reserved 1048576K | |
| 182 | -} | |
| 183 | -Event: 3.417 GC heap before | |
| 184 | -{Heap before GC invocations=7 (full 1): | |
| 185 | - PSYoungGen total 70656K, used 70654K [0x00000000d6300000, 0x00000000dd800000, 0x0000000100000000) | |
| 186 | - eden space 65536K, 100% used [0x00000000d6300000,0x00000000da300000,0x00000000da300000) | |
| 187 | - from space 5120K, 99% used [0x00000000da300000,0x00000000da7ff870,0x00000000da800000) | |
| 188 | - to space 8704K, 0% used [0x00000000dcf80000,0x00000000dcf80000,0x00000000dd800000) | |
| 189 | - ParOldGen total 56832K, used 10601K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 190 | - object space 56832K, 18% used [0x0000000082800000,0x000000008325a5e8,0x0000000085f80000) | |
| 191 | - Metaspace used 30824K, capacity 32158K, committed 32512K, reserved 1077248K | |
| 192 | - class space used 3972K, capacity 4243K, committed 4352K, reserved 1048576K | |
| 193 | -Event: 3.422 GC heap after | |
| 194 | -Heap after GC invocations=7 (full 1): | |
| 195 | - PSYoungGen total 106496K, used 7736K [0x00000000d6300000, 0x00000000dd780000, 0x0000000100000000) | |
| 196 | - eden space 98304K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc300000) | |
| 197 | - from space 8192K, 94% used [0x00000000dcf80000,0x00000000dd70e208,0x00000000dd780000) | |
| 198 | - to space 9216K, 0% used [0x00000000dc580000,0x00000000dc580000,0x00000000dce80000) | |
| 199 | - ParOldGen total 56832K, used 10609K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 200 | - object space 56832K, 18% used [0x0000000082800000,0x000000008325c5e8,0x0000000085f80000) | |
| 201 | - Metaspace used 30824K, capacity 32158K, committed 32512K, reserved 1077248K | |
| 202 | - class space used 3972K, capacity 4243K, committed 4352K, reserved 1048576K | |
| 203 | -} | |
| 204 | -Event: 3.985 GC heap before | |
| 205 | -{Heap before GC invocations=8 (full 1): | |
| 206 | - PSYoungGen total 106496K, used 88928K [0x00000000d6300000, 0x00000000dd780000, 0x0000000100000000) | |
| 207 | - eden space 98304K, 82% used [0x00000000d6300000,0x00000000db24a1a0,0x00000000dc300000) | |
| 208 | - from space 8192K, 94% used [0x00000000dcf80000,0x00000000dd70e208,0x00000000dd780000) | |
| 209 | - to space 9216K, 0% used [0x00000000dc580000,0x00000000dc580000,0x00000000dce80000) | |
| 210 | - ParOldGen total 56832K, used 10609K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 211 | - object space 56832K, 18% used [0x0000000082800000,0x000000008325c5e8,0x0000000085f80000) | |
| 212 | - Metaspace used 33846K, capacity 35360K, committed 35416K, reserved 1079296K | |
| 213 | - class space used 4445K, capacity 4722K, committed 4736K, reserved 1048576K | |
| 214 | -Event: 3.994 GC heap after | |
| 215 | -Heap after GC invocations=8 (full 1): | |
| 216 | - PSYoungGen total 110080K, used 9213K [0x00000000d6300000, 0x00000000e0580000, 0x0000000100000000) | |
| 217 | - eden space 100864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc580000) | |
| 218 | - from space 9216K, 99% used [0x00000000dc580000,0x00000000dce7f6c8,0x00000000dce80000) | |
| 219 | - to space 10240K, 0% used [0x00000000dfb80000,0x00000000dfb80000,0x00000000e0580000) | |
| 220 | - ParOldGen total 56832K, used 10895K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 221 | - object space 56832K, 19% used [0x0000000082800000,0x00000000832a3cc0,0x0000000085f80000) | |
| 222 | - Metaspace used 33846K, capacity 35360K, committed 35416K, reserved 1079296K | |
| 223 | - class space used 4445K, capacity 4722K, committed 4736K, reserved 1048576K | |
| 224 | -} | |
| 225 | -Event: 3.994 GC heap before | |
| 226 | -{Heap before GC invocations=9 (full 2): | |
| 227 | - PSYoungGen total 110080K, used 9213K [0x00000000d6300000, 0x00000000e0580000, 0x0000000100000000) | |
| 228 | - eden space 100864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc580000) | |
| 229 | - from space 9216K, 99% used [0x00000000dc580000,0x00000000dce7f6c8,0x00000000dce80000) | |
| 230 | - to space 10240K, 0% used [0x00000000dfb80000,0x00000000dfb80000,0x00000000e0580000) | |
| 231 | - ParOldGen total 56832K, used 10895K [0x0000000082800000, 0x0000000085f80000, 0x00000000d6300000) | |
| 232 | - object space 56832K, 19% used [0x0000000082800000,0x00000000832a3cc0,0x0000000085f80000) | |
| 233 | - Metaspace used 33846K, capacity 35360K, committed 35416K, reserved 1079296K | |
| 234 | - class space used 4445K, capacity 4722K, committed 4736K, reserved 1048576K | |
| 235 | -Event: 4.043 GC heap after | |
| 236 | -Heap after GC invocations=9 (full 2): | |
| 237 | - PSYoungGen total 110080K, used 0K [0x00000000d6300000, 0x00000000e0580000, 0x0000000100000000) | |
| 238 | - eden space 100864K, 0% used [0x00000000d6300000,0x00000000d6300000,0x00000000dc580000) | |
| 239 | - from space 9216K, 0% used [0x00000000dc580000,0x00000000dc580000,0x00000000dce80000) | |
| 240 | - to space 10240K, 0% used [0x00000000dfb80000,0x00000000dfb80000,0x00000000e0580000) | |
| 241 | - ParOldGen total 87552K, used 13265K [0x0000000082800000, 0x0000000087d80000, 0x00000000d6300000) | |
| 242 | - object space 87552K, 15% used [0x0000000082800000,0x00000000834f4528,0x0000000087d80000) | |
| 243 | - Metaspace used 33846K, capacity 35360K, committed 35416K, reserved 1079296K | |
| 244 | - class space used 4445K, capacity 4722K, committed 4736K, reserved 1048576K | |
| 245 | -} | |
| 246 | - | |
| 247 | -Deoptimization events (10 events): | |
| 248 | -Event: 3.280 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000035b9da4 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.findInChain(Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;Ljava/lang/Object;I)Lorg/springframewo | |
| 249 | -Event: 3.343 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000360ed98 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.findInChain(Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;Ljava/lang/Object;I)Lorg/springframewo | |
| 250 | -Event: 3.398 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000035bb154 method=java.lang.reflect.Method.equals(Ljava/lang/Object;)Z @ 1 | |
| 251 | -Event: 3.540 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003775984 method=org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(Ljava/lang/String;Lorg/springframework/core/ResolvableType;)Z @ 66 | |
| 252 | -Event: 3.789 Thread 0x0000000002c03000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003813fd4 method=org.springframework.util.ConcurrentReferenceHashMap$Segment.clear()V @ 4 | |
| 253 | -Event: 3.863 Thread 0x0000000002c03000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x000000000307ed50 method=java.lang.String.regionMatches(ZILjava/lang/String;II)Z @ 63 | |
| 254 | -Event: 3.910 Thread 0x0000000002c03000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003726afc method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 255 | -Event: 3.912 Thread 0x0000000002c03000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003726afc method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 256 | -Event: 3.912 Thread 0x0000000002c03000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003726afc method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 257 | -Event: 3.912 Thread 0x0000000002c03000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x0000000003726afc method=java.util.AbstractList$Itr.next()Ljava/lang/Object; @ 14 | |
| 258 | - | |
| 259 | -Classes redefined (0 events): | |
| 260 | -No events | |
| 261 | - | |
| 262 | -Internal exceptions (10 events): | |
| 263 | -Event: 3.770 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/core/env/EnvironmentCapableCustomizer> (0x00000000da1eadc0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 264 | -Event: 3.770 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/context/ServletContextAwareCustomizer> (0x00000000da1fff18) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c | |
| 265 | -Event: 3.771 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/AwareCustomizer> (0x00000000da212620) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210 | |
| 266 | -Event: 3.771 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/InitializingBeanCustomizer> (0x00000000da226008) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cp | |
| 267 | -Event: 3.771 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/beans/factory/DisposableBeanCustomizer> (0x00000000da2395e0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, | |
| 268 | -Event: 3.774 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000da262588) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 269 | -Event: 3.774 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/support/StandardServletMultipartResolverCustomizer> (0x00000000da27e750) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\class | |
| 270 | -Event: 3.775 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': org/springframework/web/multipart/MultipartResolverCustomizer> (0x00000000da297570) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.c | |
| 271 | -Event: 3.847 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': java/lang/ObjectCustomizer> (0x00000000da5ca5e8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line 210] | |
| 272 | -Event: 3.848 Thread 0x0000000002c03000 Exception <a 'java/lang/ClassNotFoundException': com/sincere/haikang/HaikangApplicationTestsCustomizer> (0x00000000da5e00c8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u181\11358\hotspot\src\share\vm\classfile\systemDictionary.cpp, line | |
| 273 | - | |
| 274 | -Events (10 events): | |
| 275 | -Event: 4.094 Thread 0x000000001e757000 Thread added: 0x000000001e757000 | |
| 276 | -Event: 4.094 Thread 0x000000001e758800 Thread added: 0x000000001e758800 | |
| 277 | -Event: 4.095 Thread 0x000000001e758800 Thread exited: 0x000000001e758800 | |
| 278 | -Event: 4.095 loading class org/springframework/context/support/DefaultLifecycleProcessor | |
| 279 | -Event: 4.095 loading class org/springframework/context/support/DefaultLifecycleProcessor done | |
| 280 | -Event: 4.097 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator | |
| 281 | -Event: 4.097 loading class java/util/concurrent/ConcurrentHashMap$ValueIterator done | |
| 282 | -Event: 4.098 Thread 0x000000001e756000 Thread exited: 0x000000001e756000 | |
| 283 | -Event: 4.098 Thread 0x000000001e757000 Thread exited: 0x000000001e757000 | |
| 284 | -Event: 4.099 Executing VM operation: EnableBiasedLocking | |
| 285 | - | |
| 286 | - | |
| 287 | -Dynamic libraries: | |
| 288 | -0x00007ff7b7a80000 - 0x00007ff7b7ab7000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.exe | |
| 289 | -0x00007ff817920000 - 0x00007ff817b10000 C:\WINDOWS\SYSTEM32\ntdll.dll | |
| 290 | -0x00007ff815d40000 - 0x00007ff815df2000 C:\WINDOWS\System32\KERNEL32.DLL | |
| 291 | -0x00007ff8156c0000 - 0x00007ff815963000 C:\WINDOWS\System32\KERNELBASE.dll | |
| 292 | -0x00007ff816600000 - 0x00007ff8166a3000 C:\WINDOWS\System32\ADVAPI32.dll | |
| 293 | -0x00007ff817570000 - 0x00007ff81760e000 C:\WINDOWS\System32\msvcrt.dll | |
| 294 | -0x00007ff816f10000 - 0x00007ff816fa7000 C:\WINDOWS\System32\sechost.dll | |
| 295 | -0x00007ff817420000 - 0x00007ff817540000 C:\WINDOWS\System32\RPCRT4.dll | |
| 296 | -0x00007ff815b90000 - 0x00007ff815d23000 C:\WINDOWS\System32\USER32.dll | |
| 297 | -0x00007ff815030000 - 0x00007ff815051000 C:\WINDOWS\System32\win32u.dll | |
| 298 | -0x00007ff816830000 - 0x00007ff816856000 C:\WINDOWS\System32\GDI32.dll | |
| 299 | -0x00007ff8154f0000 - 0x00007ff815684000 C:\WINDOWS\System32\gdi32full.dll | |
| 300 | -0x00007ff815450000 - 0x00007ff8154ee000 C:\WINDOWS\System32\msvcp_win.dll | |
| 301 | -0x00007ff815190000 - 0x00007ff81528a000 C:\WINDOWS\System32\ucrtbase.dll | |
| 302 | -0x00007ffffbbb0000 - 0x00007ffffbe35000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.295_none_e6c3acbd13101292\COMCTL32.dll | |
| 303 | -0x00007ff817080000 - 0x00007ff8173b6000 C:\WINDOWS\System32\combase.dll | |
| 304 | -0x00007ff815060000 - 0x00007ff8150e0000 C:\WINDOWS\System32\bcryptPrimitives.dll | |
| 305 | -0x00007ff817540000 - 0x00007ff81756e000 C:\WINDOWS\System32\IMM32.DLL | |
| 306 | -0x000000005caa0000 - 0x000000005cb72000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\msvcr100.dll | |
| 307 | -0x000000005c1f0000 - 0x000000005ca92000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll | |
| 308 | -0x00007ff815ef0000 - 0x00007ff815ef8000 C:\WINDOWS\System32\PSAPI.DLL | |
| 309 | -0x00007ff8002c0000 - 0x00007ff8002c9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll | |
| 310 | -0x00007ff8176c0000 - 0x00007ff81772f000 C:\WINDOWS\System32\WS2_32.dll | |
| 311 | -0x00007ff80b780000 - 0x00007ff80b78a000 C:\WINDOWS\SYSTEM32\VERSION.dll | |
| 312 | -0x00007ff80f370000 - 0x00007ff80f394000 C:\WINDOWS\SYSTEM32\WINMM.dll | |
| 313 | -0x00007ff80efa0000 - 0x00007ff80efcd000 C:\WINDOWS\SYSTEM32\winmmbase.dll | |
| 314 | -0x00007ff815290000 - 0x00007ff8152da000 C:\WINDOWS\System32\cfgmgr32.dll | |
| 315 | -0x000000005c1e0000 - 0x000000005c1ef000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\verify.dll | |
| 316 | -0x000000005c1b0000 - 0x000000005c1d9000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\java.dll | |
| 317 | -0x000000005c190000 - 0x000000005c1a6000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\zip.dll | |
| 318 | -0x00007ff815f00000 - 0x00007ff8165e2000 C:\WINDOWS\System32\SHELL32.dll | |
| 319 | -0x00007ff8166b0000 - 0x00007ff816759000 C:\WINDOWS\System32\shcore.dll | |
| 320 | -0x00007ff8148b0000 - 0x00007ff81502c000 C:\WINDOWS\System32\windows.storage.dll | |
| 321 | -0x00007ff814890000 - 0x00007ff8148af000 C:\WINDOWS\System32\profapi.dll | |
| 322 | -0x00007ff814800000 - 0x00007ff81484a000 C:\WINDOWS\System32\powrprof.dll | |
| 323 | -0x00007ff8147f0000 - 0x00007ff814800000 C:\WINDOWS\System32\UMPDC.dll | |
| 324 | -0x00007ff815e90000 - 0x00007ff815ee2000 C:\WINDOWS\System32\shlwapi.dll | |
| 325 | -0x00007ff814850000 - 0x00007ff814861000 C:\WINDOWS\System32\kernel.appcore.dll | |
| 326 | -0x00007ff815430000 - 0x00007ff815447000 C:\WINDOWS\System32\cryptsp.dll | |
| 327 | -0x000000005c140000 - 0x000000005c14d000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\management.dll | |
| 328 | -0x000000005c170000 - 0x000000005c18a000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\net.dll | |
| 329 | -0x00007ff814060000 - 0x00007ff8140c7000 C:\WINDOWS\system32\mswsock.dll | |
| 330 | -0x000000005c090000 - 0x000000005c0a1000 C:\Program Files\Java\jdk1.8.0_181\jre\bin\nio.dll | |
| 331 | -0x00007fffee0e0000 - 0x00007fffee0f6000 C:\WINDOWS\system32\napinsp.dll | |
| 332 | -0x00007fffee0c0000 - 0x00007fffee0da000 C:\WINDOWS\system32\pnrpnsp.dll | |
| 333 | -0x00007ff813db0000 - 0x00007ff813e7a000 C:\WINDOWS\SYSTEM32\DNSAPI.dll | |
| 334 | -0x00007ff815d30000 - 0x00007ff815d38000 C:\WINDOWS\System32\NSI.dll | |
| 335 | -0x00007ff813d70000 - 0x00007ff813daa000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL | |
| 336 | -0x00007fffee750000 - 0x00007fffee75e000 C:\WINDOWS\System32\winrnr.dll | |
| 337 | -0x00007ff811110000 - 0x00007ff81112c000 C:\WINDOWS\system32\NLAapi.dll | |
| 338 | -0x00007fffee0a0000 - 0x00007fffee0b5000 C:\WINDOWS\system32\wshbth.dll | |
| 339 | -0x00007ff80b540000 - 0x00007ff80b54a000 C:\Windows\System32\rasadhlp.dll | |
| 340 | -0x00007ff80c3b0000 - 0x00007ff80c427000 C:\WINDOWS\System32\fwpuclnt.dll | |
| 341 | -0x00007ff815690000 - 0x00007ff8156b6000 C:\WINDOWS\System32\bcrypt.dll | |
| 342 | -0x00007ff813bd0000 - 0x00007ff813c03000 C:\WINDOWS\system32\rsaenh.dll | |
| 343 | -0x00007ff814710000 - 0x00007ff814735000 C:\WINDOWS\SYSTEM32\USERENV.dll | |
| 344 | -0x00007ff814230000 - 0x00007ff81423c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll | |
| 345 | -0x00007ff80cab0000 - 0x00007ff80cac6000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL | |
| 346 | -0x00007ff80cf90000 - 0x00007ff80cfac000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL | |
| 347 | -0x0000000180000000 - 0x0000000180031000 C:\Users\taohandong\AppData\Local\Temp\jna8573894597523270195.tmp | |
| 348 | -0x0000000020c40000 - 0x000000002100b000 C:\lib\HCEHomeCMS.DLL | |
| 349 | -0x0000000021010000 - 0x000000002139f000 C:\lib\HCEHomeAlarm.DLL | |
| 350 | -0x0000000020730000 - 0x0000000020920000 C:\TaoHandong\Java_Code\apache-tomcat-8.5.34\bin\tcnative-1.dll | |
| 351 | -0x00007ff805a80000 - 0x00007ff805ab2000 C:\Program Files\Intel\WiFi\bin\zlib1.dll | |
| 352 | -0x00007ff813110000 - 0x00007ff813304000 C:\WINDOWS\SYSTEM32\dbghelp.dll | |
| 353 | - | |
| 354 | -VM Arguments: | |
| 355 | -java_command: C:\Users\TAOHAN~1\AppData\Local\Temp\surefire4361925548474029200\surefirebooter6466546106949192259.jar C:\Users\taohandong\AppData\Local\Temp\surefire4361925548474029200 2019-08-21T17-05-37_284-jvmRun1 surefire6910806768415210701tmp surefire_03608835572114943320tmp | |
| 356 | -java_class_path (initial): C:\Users\TAOHAN~1\AppData\Local\Temp\surefire4361925548474029200\surefirebooter6466546106949192259.jar | |
| 357 | -Launcher Type: SUN_STANDARD | |
| 358 | - | |
| 359 | -Environment Variables: | |
| 360 | -JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181 | |
| 361 | -CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_181\lib;C:\Program Files\Java\jdk1.8.0_181\lib\tools.jar; | |
| 362 | -USERNAME=taohandong | |
| 363 | -OS=Windows_NT | |
| 364 | -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel | |
| 365 | - | |
| 366 | - | |
| 367 | - | |
| 368 | ---------------- S Y S T E M --------------- | |
| 369 | - | |
| 370 | -OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.86) | |
| 371 | - | |
| 372 | -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx | |
| 373 | - | |
| 374 | -Memory: 4k page, physical 8218728k(1001364k free), swap 16922824k(2753668k free) | |
| 375 | - | |
| 376 | -vm_info: Java HotSpot(TM) 64-Bit Server VM (25.181-b13) for windows-amd64 JRE (1.8.0_181-b13), built on Jul 7 2018 04:01:33 by "java_re" with MS VC++ 10.0 (VS2010) | |
| 377 | - | |
| 378 | -time: Wed Aug 21 17:05:42 2019 | |
| 379 | -elapsed time: 4 seconds (0d 0h 0m 4s) | |
| 380 | - |
cloud/haikang/pom.xml
| ... | ... | @@ -16,6 +16,7 @@ |
| 16 | 16 | |
| 17 | 17 | <properties> |
| 18 | 18 | <java.version>1.8</java.version> |
| 19 | + <spring-cloud.version>Greenwich.SR1</spring-cloud.version> | |
| 19 | 20 | </properties> |
| 20 | 21 | |
| 21 | 22 | <dependencies> |
| ... | ... | @@ -35,11 +36,23 @@ |
| 35 | 36 | <artifactId>spring-boot-starter-web</artifactId> |
| 36 | 37 | </dependency> |
| 37 | 38 | |
| 38 | - <!--<dependency> | |
| 39 | + <dependency> | |
| 39 | 40 | <groupId>org.springframework.cloud</groupId> |
| 40 | - <artifactId>spring-cloud-starter-eureka-server</artifactId> | |
| 41 | - <version>1.4.7.RELEASE</version> | |
| 42 | - </dependency>--> | |
| 41 | + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | |
| 42 | + <version>2.1.2.RELEASE</version> | |
| 43 | + </dependency> | |
| 44 | + | |
| 45 | + <dependency> | |
| 46 | + <groupId>io.springfox</groupId> | |
| 47 | + <artifactId>springfox-swagger2</artifactId> | |
| 48 | + <version>2.9.2</version> | |
| 49 | + </dependency> | |
| 50 | + | |
| 51 | + <dependency> | |
| 52 | + <groupId>io.springfox</groupId> | |
| 53 | + <artifactId>springfox-swagger-ui</artifactId> | |
| 54 | + <version>2.9.2</version> | |
| 55 | + </dependency> | |
| 43 | 56 | |
| 44 | 57 | <dependency> |
| 45 | 58 | <groupId>com.sun.jna</groupId> |
| ... | ... | @@ -76,9 +89,32 @@ |
| 76 | 89 | <artifactId>spring-boot-starter-jdbc</artifactId> |
| 77 | 90 | <version>2.1.6.RELEASE</version> |
| 78 | 91 | </dependency> |
| 79 | - | |
| 92 | + <!--模拟http请求包--> | |
| 93 | + <dependency> | |
| 94 | + <groupId>org.apache.httpcomponents</groupId> | |
| 95 | + <artifactId>httpclient</artifactId> | |
| 96 | + <version>4.5.3</version> | |
| 97 | + </dependency> | |
| 98 | + <!--Json格式的字符串序列化和反序列化 fastjson--> | |
| 99 | + <dependency> | |
| 100 | + <groupId>com.alibaba</groupId> | |
| 101 | + <artifactId>fastjson</artifactId> | |
| 102 | + <version>1.2.58</version> | |
| 103 | + </dependency> | |
| 80 | 104 | </dependencies> |
| 81 | 105 | |
| 106 | + <dependencyManagement> | |
| 107 | + <dependencies> | |
| 108 | + <dependency> | |
| 109 | + <groupId>org.springframework.cloud</groupId> | |
| 110 | + <artifactId>spring-cloud-dependencies</artifactId> | |
| 111 | + <version>${spring-cloud.version}</version> | |
| 112 | + <type>pom</type> | |
| 113 | + <scope>import</scope> | |
| 114 | + </dependency> | |
| 115 | + </dependencies> | |
| 116 | + </dependencyManagement> | |
| 117 | + | |
| 82 | 118 | <build> |
| 83 | 119 | <plugins> |
| 84 | 120 | <plugin> | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/CMSServer.java
| 1 | 1 | package com.sincere.haikang; |
| 2 | 2 | |
| 3 | +import com.alibaba.fastjson.JSON; | |
| 4 | +import com.alibaba.fastjson.JSONObject; | |
| 5 | +import com.sincere.haikang.bean.AttendanceInfoBean; | |
| 6 | +import com.sincere.haikang.bean.PlaceAttendance; | |
| 7 | +import com.sincere.haikang.dao.DeviceDao; | |
| 3 | 8 | import com.sincere.haikang.libutils.HCEHomeAlarm; |
| 4 | 9 | import com.sincere.haikang.libutils.HCEHomeCMS; |
| 5 | 10 | import com.sincere.haikang.server.AttendanceService; |
| 11 | +import com.sincere.haikang.utils.ApiHelper; | |
| 12 | +import com.sincere.haikang.utils.FileUtils; | |
| 13 | +import com.sun.jna.Memory; | |
| 6 | 14 | import com.sun.jna.NativeLong; |
| 7 | 15 | import com.sun.jna.Pointer; |
| 8 | 16 | import org.springframework.beans.factory.annotation.Autowired; |
| 17 | +import org.springframework.beans.factory.annotation.Value; | |
| 9 | 18 | import org.springframework.boot.ApplicationArguments; |
| 10 | 19 | import org.springframework.boot.ApplicationRunner; |
| 11 | 20 | import org.springframework.stereotype.Component; |
| 21 | +import sun.rmi.runtime.Log; | |
| 12 | 22 | |
| 13 | 23 | import java.io.*; |
| 24 | +import java.math.BigInteger; | |
| 25 | +import java.net.InetAddress; | |
| 26 | +import java.net.UnknownHostException; | |
| 14 | 27 | import java.text.SimpleDateFormat; |
| 28 | +import java.util.Calendar; | |
| 15 | 29 | import java.util.Date; |
| 30 | +import java.util.HashMap; | |
| 31 | +import java.util.Map; | |
| 16 | 32 | |
| 17 | 33 | @Component |
| 18 | 34 | public class CMSServer implements ApplicationRunner { |
| 35 | + | |
| 19 | 36 | @Autowired |
| 20 | 37 | AttendanceService attendanceService; |
| 21 | 38 | |
| 39 | + @Autowired | |
| 40 | + DeviceDao deviceDao; | |
| 41 | + | |
| 22 | 42 | //121.40.109.21 |
| 23 | 43 | |
| 24 | 44 | HCEHomeCMS hCEhomeCMS = HCEHomeCMS.INSTANCE; |
| ... | ... | @@ -31,9 +51,29 @@ public class CMSServer implements ApplicationRunner { |
| 31 | 51 | //注册监听参数 |
| 32 | 52 | static HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM struCMSListenPara = new HCEHomeCMS.NET_EHOME_CMS_LISTEN_PARAM(); |
| 33 | 53 | |
| 34 | - // private String ip = "121.40.109.21"; | |
| 35 | - private String ip = "192.168.66.54"; | |
| 54 | + private String ip; | |
| 55 | + | |
| 56 | + { | |
| 57 | + try { | |
| 58 | + ip = InetAddress.getLocalHost().getHostAddress(); | |
| 59 | + } catch (UnknownHostException e) { | |
| 60 | + e.printStackTrace(); | |
| 61 | + } | |
| 62 | + } | |
| 63 | + | |
| 64 | + @Value("${attendanceHost}") | |
| 65 | + private String host; | |
| 66 | + | |
| 67 | + @Value("${SchoolPwd}") | |
| 68 | + private String pwd; | |
| 36 | 69 | |
| 70 | + @Value("${SchoolAccount}") | |
| 71 | + private String account; | |
| 72 | + | |
| 73 | + /** | |
| 74 | + * 存档设备id和登录信息 | |
| 75 | + */ | |
| 76 | + public static Map<String, NativeLong> deviceAndLoginIdMap = new HashMap<>(); | |
| 37 | 77 | |
| 38 | 78 | @Override |
| 39 | 79 | public void run(ApplicationArguments args) { |
| ... | ... | @@ -42,7 +82,7 @@ public class CMSServer implements ApplicationRunner { |
| 42 | 82 | //CMS注册模块初始化 |
| 43 | 83 | boolean binit = hCEhomeCMS.NET_ECMS_Init(); |
| 44 | 84 | |
| 45 | - System.out.println("模块初始化:" + binit); | |
| 85 | + System.out.println("模块初始化:" + binit + " ip:" + ip); | |
| 46 | 86 | |
| 47 | 87 | //注册监听参数 |
| 48 | 88 | if (fRegisterCallBack == null) { |
| ... | ... | @@ -93,7 +133,11 @@ public class CMSServer implements ApplicationRunner { |
| 93 | 133 | String zIp = new String(strDevRegInfo.struDevAdd.szIP, "utf-8").trim(); |
| 94 | 134 | int port = strDevRegInfo.struDevAdd.wPort; |
| 95 | 135 | String time = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()); |
| 96 | - attendanceService.insert(deviceId, "23", zIp, port + "", time, "0", "1"); | |
| 136 | + attendanceService.insert(deviceId, "23", zIp, port + "", time, "-1", "1"); | |
| 137 | + deviceAndLoginIdMap.put(deviceId, lUserID); | |
| 138 | + | |
| 139 | + FileUtils.getInstance().writeLogs("设备注册ID:" + deviceId, FileUtils.devices); | |
| 140 | + | |
| 97 | 141 | } catch (UnsupportedEncodingException e) { |
| 98 | 142 | e.printStackTrace(); |
| 99 | 143 | } |
| ... | ... | @@ -122,11 +166,7 @@ public class CMSServer implements ApplicationRunner { |
| 122 | 166 | // pInBuffer.struPictureSever.wPort = 7667; |
| 123 | 167 | pInBuffer.write(); |
| 124 | 168 | dwInLen = pInBuffer.size(); |
| 125 | - | |
| 126 | - | |
| 127 | - sendCards(lUserID); | |
| 128 | 169 | // System.out.println("dwInLen:" + dwInLen + " lUserID:" + lUserID + " pUser:" + pUser); |
| 129 | -// lLoginID= lUserID; | |
| 130 | 170 | // jTextFieldDevNo.setText(new String(strDevRegInfo.byDeviceID)); |
| 131 | 171 | } |
| 132 | 172 | return true; |
| ... | ... | @@ -179,7 +219,6 @@ public class CMSServer implements ApplicationRunner { |
| 179 | 219 | |
| 180 | 220 | struAMSAddr.write(); |
| 181 | 221 | |
| 182 | - | |
| 183 | 222 | boolean setAMSAddr = hCEhomeCMS.NET_ECMS_SetSDKLocalCfg(1, struAMSAddr.getPointer()); |
| 184 | 223 | if (!setAMSAddr) { |
| 185 | 224 | System.out.println("设置回环地址:" + hCEhomeCMS.NET_ECMS_GetLastError()); |
| ... | ... | @@ -187,64 +226,92 @@ public class CMSServer implements ApplicationRunner { |
| 187 | 226 | System.out.println("设置回环地址:" + hCEhomeCMS.NET_ECMS_GetLastError() + " setAMSAddr:" + setAMSAddr); |
| 188 | 227 | } |
| 189 | 228 | |
| 190 | - private void sendCards(NativeLong lUserID) { | |
| 191 | - | |
| 192 | - HCEHomeCMS.NET_EHOME_XML_CFG struXMLCard = new HCEHomeCMS.NET_EHOME_XML_CFG(); | |
| 193 | - | |
| 229 | + /** | |
| 230 | + * 下发卡号 | |
| 231 | + */ | |
| 232 | + public synchronized void sendCards(String clint_id, String cardNo, String name) { | |
| 233 | + HCEHomeCMS.NET_EHOME_XML_CFG struXMLCfg = new HCEHomeCMS.NET_EHOME_XML_CFG(); | |
| 234 | + HCEHomeCMS.NET_EHOME_XML_REMOTE_CTRL_PARAM struRemoteCtrl = new HCEHomeCMS.NET_EHOME_XML_REMOTE_CTRL_PARAM(); | |
| 194 | 235 | HCEHomeCMS.NET_DVR_STRING_POINTER stringRequestCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); |
| 195 | 236 | stringRequestCard.read(); |
| 196 | - String strRequestCard = "SetFingerPrintCfg"; | |
| 237 | + String strRequestCard = "SETDEVICECONFIG"; | |
| 238 | + | |
| 197 | 239 | stringRequestCard.byString = strRequestCard.getBytes(); |
| 198 | 240 | stringRequestCard.write(); |
| 199 | 241 | |
| 200 | - struXMLCard.pCmdBuf = stringRequestCard.getPointer(); | |
| 201 | - struXMLCard.dwCmdLen = stringRequestCard.byString.length; | |
| 202 | - struXMLCard.write(); | |
| 203 | - | |
| 204 | - HCEHomeCMS.NET_DVR_STRING_POINTER struConfigXMLCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | |
| 205 | - struConfigXMLCard.read(); | |
| 206 | - String strConfigXMLCard = "<Params>\r\n" + | |
| 207 | - "<ConfigCmd>SetFingerPrintCfg</ConfigCmd>\r\n" + | |
| 208 | - "<ConfigParam1>111111</ConfigParam1>\r\n" + | |
| 209 | - "<ConfigParam2>1</ConfigParam2>\r\n" + | |
| 210 | - "<ConfigXML>\r\n" + | |
| 211 | - "<FingerPrintCfg>\r\n" + | |
| 212 | - "<readerNo>1</readerNo>\r\n" + | |
| 213 | - "<fingerType></fingerType>\r\n" + | |
| 214 | - "<fingerData></fingerData>\r\n" + | |
| 215 | - "</FingerPrintCfg>\r\n" + | |
| 216 | - "</ConfigXML>\r\n" + | |
| 242 | + struXMLCfg.pCmdBuf = stringRequestCard.getPointer(); | |
| 243 | + struXMLCfg.dwCmdLen = stringRequestCard.byString.length; | |
| 244 | + struXMLCfg.write(); | |
| 245 | + | |
| 246 | + int valid = 1;//0:删除;1:有效 | |
| 247 | + | |
| 248 | + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); | |
| 249 | + | |
| 250 | + String startTime = simpleDateFormat.format(new Date()); | |
| 251 | + | |
| 252 | + Calendar calendar = Calendar.getInstance(); | |
| 253 | + calendar.add(Calendar.YEAR, 5); | |
| 254 | + String endTime = simpleDateFormat.format(calendar.getTime()); | |
| 255 | + | |
| 256 | + HCEHomeCMS.NET_DVR_STRING_POINTER struConfigXMLInput = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | |
| 257 | + struConfigXMLInput.read(); | |
| 258 | + String strConfigXMLCard = "<Params>\n" + | |
| 259 | + "<ConfigCmd>SetCardCfg</ConfigCmd>\n" + | |
| 260 | + "<ConfigParam1>" + Long.parseLong(cardNo,16) + "</ConfigParam1>\n" + | |
| 261 | + "<ConfigParam2>0</ConfigParam2>\n" + | |
| 262 | + "<ConfigParam3>0</ConfigParam3>\n" + | |
| 263 | + "<ConfigParam4>0</ConfigParam4>\n" + | |
| 264 | + "<ConfigXML>\n" + | |
| 265 | + "<CardCfg>\n" + | |
| 266 | + "<valid>" + valid + "</valid>\n" + | |
| 267 | + "<cardType>1</cardType>\n" + | |
| 268 | + "<leaderCardEnabled>1</leaderCardEnabled>\n" + | |
| 269 | + "<validTimeEnabled>1</validTimeEnabled>\n" + | |
| 270 | + "<ValidTime>\n" + | |
| 271 | + "<startTime>" + startTime + "</startTime>\n" + | |
| 272 | + "<endTime>" + endTime + "</endTime>\n" + | |
| 273 | + "</ValidTime>\n" + | |
| 274 | + "<password>MTIzNDU2</password><maxSwipeTime>0</maxSwipeTime>\n" + | |
| 275 | + "<swipeTime>1</swipeTime>\n" + | |
| 276 | + "<groupNo>1</groupNo>\n" + | |
| 277 | + "<name>" + name + "</name>\n" + | |
| 278 | + "</CardCfg>\n" + | |
| 279 | + "</ConfigXML>\n" + | |
| 217 | 280 | "</Params>"; |
| 218 | - struConfigXMLCard.byString = strConfigXMLCard.getBytes(); | |
| 219 | - struConfigXMLCard.write(); | |
| 220 | - | |
| 221 | - struXMLCard.pInBuf = struConfigXMLCard.getPointer(); | |
| 222 | - struXMLCard.dwInSize = struConfigXMLCard.byString.length; | |
| 223 | - struXMLCard.dwRecvTimeOut = 5000; | |
| 224 | - struXMLCard.dwSendTimeOut = 5000; | |
| 225 | - struXMLCard.write(); | |
| 226 | - | |
| 227 | - HCEHomeCMS.NET_DVR_STRING_POINTER stringOutCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | |
| 228 | - stringOutCard.write(); | |
| 229 | - struXMLCard.pOutBuf = stringOutCard.getPointer(); | |
| 230 | - struXMLCard.dwOutSize = stringOutCard.size(); | |
| 231 | - struXMLCard.write(); | |
| 232 | - | |
| 233 | - HCEHomeCMS.NET_DVR_STRING_POINTER stringStatusCard = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | |
| 234 | - stringStatusCard.write(); | |
| 235 | - struXMLCard.pStatusBuf = stringStatusCard.getPointer(); | |
| 236 | - struXMLCard.dwStatusSize = stringStatusCard.size(); | |
| 237 | - struXMLCard.write(); | |
| 238 | - | |
| 239 | - int i = struXMLCard.size(); | |
| 240 | - if(!hCEhomeCMS.NET_ECMS_XMLConfig(lUserID, struXMLCard, struXMLCard.size())) | |
| 241 | - { | |
| 281 | + struConfigXMLInput.byString = strConfigXMLCard.getBytes(); | |
| 282 | + struConfigXMLInput.write(); | |
| 283 | + | |
| 284 | +// System.out.println("InPut:"+ strConfigXMLCard); | |
| 285 | + | |
| 286 | + struXMLCfg.pInBuf = struConfigXMLInput.getPointer(); | |
| 287 | + struXMLCfg.dwInSize = struConfigXMLInput.byString.length; | |
| 288 | + struXMLCfg.dwRecvTimeOut = 5000; | |
| 289 | + struXMLCfg.dwSendTimeOut = 5000; | |
| 290 | + struXMLCfg.write(); | |
| 291 | + | |
| 292 | + HCEHomeCMS.NET_DVR_STRING_POINTER struConfigXMLOutput = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | |
| 293 | + struConfigXMLOutput.write(); | |
| 294 | + struXMLCfg.pOutBuf = struConfigXMLOutput.getPointer(); | |
| 295 | + struXMLCfg.dwOutSize = struConfigXMLOutput.size(); | |
| 296 | + struXMLCfg.write(); | |
| 297 | + | |
| 298 | + HCEHomeCMS.NET_DVR_STRING_POINTER stringXMLStatus = new HCEHomeCMS.NET_DVR_STRING_POINTER(); | |
| 299 | + stringXMLStatus.write(); | |
| 300 | + struXMLCfg.pStatusBuf = stringXMLStatus.getPointer(); | |
| 301 | + struXMLCfg.dwStatusSize = stringXMLStatus.size(); | |
| 302 | + struXMLCfg.write(); | |
| 303 | + | |
| 304 | + NativeLong lLoginID = deviceAndLoginIdMap.get(clint_id); | |
| 305 | + | |
| 306 | + if (!hCEhomeCMS.NET_ECMS_XMLConfig(lLoginID, struXMLCfg, struXMLCfg.size())) { | |
| 242 | 307 | int iErr = hCEhomeCMS.NET_ECMS_GetLastError(); |
| 308 | + FileUtils.getInstance().writeLogs("用户下发失败:" + iErr + " 设备ID:" + clint_id + " 用户:" + name+" 卡号:"+cardNo, FileUtils.sendUserErrTxt); | |
| 243 | 309 | System.out.println("NET_ECMS_XMLConfig失败,错误号:" + iErr); |
| 244 | - } | |
| 245 | - else | |
| 246 | - { | |
| 247 | - System.out.println("下发卡号成功,卡号:12345"); | |
| 310 | + return; | |
| 311 | + } else { | |
| 312 | + struXMLCfg.read(); | |
| 313 | + struConfigXMLOutput.read(); | |
| 314 | + FileUtils.getInstance().writeLogs("用户下发成功" + " 设备ID:" + clint_id + " 用户:" + name, FileUtils.sendUserSucTxt); | |
| 248 | 315 | } |
| 249 | 316 | } |
| 250 | 317 | |
| ... | ... | @@ -263,20 +330,25 @@ public class CMSServer implements ApplicationRunner { |
| 263 | 330 | |
| 264 | 331 | String strXML = new String(strXMLData.byXMLData); |
| 265 | 332 | |
| 266 | - String majirType = strXML.substring(strXML.indexOf("MajorType"), strXML.lastIndexOf("MajorType")); | |
| 333 | + //主类型 | |
| 334 | + String majirType = strXML.substring(strXML.indexOf("MajorType"), strXML.lastIndexOf("MajorType")).trim(); | |
| 267 | 335 | majirType = majirType.replace("MajorType>", ""); |
| 268 | 336 | majirType = majirType.replace("</", ""); |
| 269 | - System.out.println("majirType:" + majirType); | |
| 270 | 337 | |
| 271 | - String cardNo = strXML.substring(strXML.indexOf("CardNo"), strXML.lastIndexOf("CardNo")); | |
| 338 | + //次类型 | |
| 339 | + String minorType = strXML.substring(strXML.indexOf("MinorType"),strXML.lastIndexOf("MinorType")).trim(); | |
| 340 | + minorType = minorType.replace("MinorType>",""); | |
| 341 | + minorType = minorType.replace("</",""); | |
| 342 | + | |
| 343 | + String cardNo = strXML.substring(strXML.indexOf("CardNo"), strXML.lastIndexOf("CardNo")).trim(); | |
| 272 | 344 | cardNo = cardNo.replace("CardNo>", ""); |
| 273 | 345 | cardNo = cardNo.replace("</", ""); |
| 274 | 346 | |
| 275 | - String deviceID = strXML.substring(strXML.indexOf("DeviceID"), strXML.lastIndexOf("DeviceID")); | |
| 347 | + String deviceID = strXML.substring(strXML.indexOf("DeviceID"), strXML.lastIndexOf("DeviceID")).trim(); | |
| 276 | 348 | deviceID = deviceID.replace("DeviceID>", ""); |
| 277 | 349 | deviceID = deviceID.replace("</", ""); |
| 278 | 350 | |
| 279 | - String time = strXML.substring(strXML.indexOf("Time"), strXML.lastIndexOf("Time")); | |
| 351 | + String time = strXML.substring(strXML.indexOf("Time"), strXML.lastIndexOf("Time")).trim(); | |
| 280 | 352 | time = time.replace("Time>", ""); |
| 281 | 353 | time = time.replace("</", ""); |
| 282 | 354 | |
| ... | ... | @@ -285,14 +357,65 @@ public class CMSServer implements ApplicationRunner { |
| 285 | 357 | |
| 286 | 358 | } else if (majirType.equals("0x2")) {//异常 |
| 287 | 359 | |
| 360 | + switch (minorType){ | |
| 361 | + case "0x27"://网络断开 | |
| 362 | + deviceDao.updateDeviceStatu(0,"",0,deviceID); | |
| 363 | + break; | |
| 364 | + } | |
| 365 | + | |
| 288 | 366 | } else if (majirType.equals("0x3")) {//操作 |
| 289 | 367 | |
| 290 | 368 | } else if (majirType.equals("0x4")) {// |
| 291 | 369 | |
| 292 | 370 | } else if (majirType.equals("0x5")) {//事件 |
| 293 | -// BigInteger bigInteger = new BigInteger(cardNo); | |
| 294 | -// cardNo = cardNo(bigInteger.toString(16)).toUpperCase(); | |
| 295 | - System.out.println(String.format("设备号:%s 卡号:%s 时间:%s", deviceID, cardNo, time)); | |
| 371 | + | |
| 372 | + if (cardNo != null && cardNo.length() > 0) { | |
| 373 | + | |
| 374 | + BigInteger bigInteger = new BigInteger(cardNo); | |
| 375 | + cardNo = String.format("%08x", bigInteger); //16进制取8位,不够补0 | |
| 376 | + cardNo = cardNo(cardNo).toUpperCase(); | |
| 377 | + cardNo = new BigInteger(cardNo, 16).toString(); | |
| 378 | + | |
| 379 | + System.out.println(String.format("设备号:%s 卡号:%s 时间:%s", deviceID, cardNo, time)); | |
| 380 | + | |
| 381 | + if (deviceID != null && !deviceID.isEmpty()) { | |
| 382 | + | |
| 383 | + PlaceAttendance placeAttendance = deviceDao.getPlaceAttendance(deviceID); | |
| 384 | + | |
| 385 | + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
| 386 | + String info = String.format("<AttendanceInfo submitTime=\"%s\"><Info device=\"%s\" card=\"%s\" operTime=\"%s\" direc=\"%s\"></Info></AttendanceInfo>", simpleDateFormat.format(new Date()), deviceID, cardNo, time, "-1"); | |
| 387 | + | |
| 388 | + AttendanceInfoBean attendanceInfoBean = new AttendanceInfoBean(); | |
| 389 | + attendanceInfoBean.setInfo(info); | |
| 390 | + attendanceInfoBean.setIsControl(0); | |
| 391 | + attendanceInfoBean.setPwd(pwd); | |
| 392 | + attendanceInfoBean.setUsername(account); | |
| 393 | + | |
| 394 | + String jsonResult = JSON.toJSONString(attendanceInfoBean); | |
| 395 | + System.out.println(jsonResult); | |
| 396 | + | |
| 397 | + if (placeAttendance == null) {//出入校 | |
| 398 | + String urlXST = host + "api/XiaoAnCommon/SendXST"; | |
| 399 | + String result1 = ApiHelper.doPost(urlXST, new HashMap<String, String>(), jsonResult); | |
| 400 | + JSONObject jsonObject = JSONObject.parseObject(result1); | |
| 401 | + if ((int) jsonObject.get("status") == 1) | |
| 402 | + FileUtils.getInstance().writeLogs("出入校签到成功:" + deviceID + " 卡号:" + cardNo, FileUtils.sendUserSucTxt); | |
| 403 | + else | |
| 404 | + FileUtils.getInstance().writeLogs("出入校签到失败:" + deviceID + " 卡号:" + cardNo + " result1:" + result1, FileUtils.sendUserErrTxt); | |
| 405 | + System.out.println("urlXST:" + result1);//{"status":1,"message":null,"data":"0"} | |
| 406 | + } else {//出入寝室 | |
| 407 | + String urlHXY = host + "api/XiaoAnCommon/SendHXY"; | |
| 408 | + String result2 = ApiHelper.doPost(urlHXY, new HashMap<String, String>(), jsonResult); | |
| 409 | + JSONObject jsonObject = JSONObject.parseObject(result2); | |
| 410 | + if ((int) jsonObject.get("status") == 1) | |
| 411 | + FileUtils.getInstance().writeLogs("出入寝签到成功:" + deviceID + " 卡号:" + cardNo, FileUtils.sendUserSucTxt); | |
| 412 | + else | |
| 413 | + FileUtils.getInstance().writeLogs("出入寝签到失败:" + deviceID + " 卡号:" + cardNo + " result1:" + result2, FileUtils.sendUserErrTxt); | |
| 414 | + System.out.println("urlHXY:" + result2); | |
| 415 | + } | |
| 416 | + | |
| 417 | + } | |
| 418 | + }else System.out.println("卡号为空"); | |
| 296 | 419 | } |
| 297 | 420 | |
| 298 | 421 | // System.out.println(strXML); |
| ... | ... | @@ -326,13 +449,4 @@ public class CMSServer implements ApplicationRunner { |
| 326 | 449 | return cardR; |
| 327 | 450 | |
| 328 | 451 | } |
| 329 | - | |
| 330 | - /** | |
| 331 | - * | |
| 332 | - * @param deviceId | |
| 333 | - * @param cardNo | |
| 334 | - */ | |
| 335 | - public void sendUserInfo(String deviceId,String cardNo){ | |
| 336 | - System.out.println(deviceId); | |
| 337 | - } | |
| 338 | 452 | } | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/HaikangApplication.java
| ... | ... | @@ -6,9 +6,18 @@ import com.sun.jna.Pointer; |
| 6 | 6 | import org.springframework.beans.factory.annotation.Autowired; |
| 7 | 7 | import org.springframework.boot.SpringApplication; |
| 8 | 8 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
| 9 | +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; | |
| 10 | +import org.springframework.context.annotation.Bean; | |
| 11 | +import org.springframework.context.annotation.Configuration; | |
| 9 | 12 | import org.springframework.scheduling.annotation.EnableAsync; |
| 13 | +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; | |
| 14 | + | |
| 15 | +import javax.xml.ws.WebServiceClient; | |
| 16 | +import java.util.concurrent.Executor; | |
| 17 | +import java.util.concurrent.ThreadPoolExecutor; | |
| 10 | 18 | |
| 11 | 19 | @SpringBootApplication |
| 20 | +@EnableDiscoveryClient | |
| 12 | 21 | public class HaikangApplication { |
| 13 | 22 | |
| 14 | 23 | public static void main(String[] args) { |
| ... | ... | @@ -16,4 +25,22 @@ public class HaikangApplication { |
| 16 | 25 | |
| 17 | 26 | } |
| 18 | 27 | |
| 28 | + @EnableAsync | |
| 29 | + @Configuration | |
| 30 | + class TaskPoolConfig{ | |
| 31 | + | |
| 32 | + @Bean("taskExecutor") | |
| 33 | + public Executor taskExecutor(){ | |
| 34 | + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); | |
| 35 | + executor.setCorePoolSize(10); | |
| 36 | + executor.setMaxPoolSize(20); | |
| 37 | + executor.setQueueCapacity(200); | |
| 38 | + executor.setKeepAliveSeconds(60); | |
| 39 | + executor.setThreadNamePrefix("taskExecutor-"); | |
| 40 | + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); | |
| 41 | + return executor; | |
| 42 | + } | |
| 43 | + | |
| 44 | + } | |
| 45 | + | |
| 19 | 46 | } | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/SchduleTask.java
| 1 | 1 | package com.sincere.haikang; |
| 2 | 2 | |
| 3 | +import com.sincere.haikang.async.SendUserAsync; | |
| 4 | +import com.sincere.haikang.bean.AttendanceBean; | |
| 3 | 5 | import com.sincere.haikang.bean.StudentBean; |
| 6 | +import com.sincere.haikang.dao.DeviceDao; | |
| 4 | 7 | import com.sincere.haikang.dao.UserDao; |
| 5 | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| 9 | +import org.springframework.beans.factory.annotation.Value; | |
| 10 | +import org.springframework.scheduling.annotation.Async; | |
| 6 | 11 | import org.springframework.scheduling.annotation.EnableScheduling; |
| 7 | 12 | import org.springframework.scheduling.annotation.Scheduled; |
| 8 | 13 | import org.springframework.stereotype.Component; |
| 9 | 14 | import org.springframework.util.StringUtils; |
| 10 | 15 | |
| 11 | 16 | import java.io.*; |
| 17 | +import java.util.ArrayList; | |
| 12 | 18 | import java.util.List; |
| 13 | 19 | |
| 14 | 20 | @Component |
| 15 | 21 | @EnableScheduling |
| 16 | 22 | public class SchduleTask { |
| 17 | 23 | |
| 18 | - CMSServer cmsServer = new CMSServer(); | |
| 19 | - | |
| 20 | 24 | File saveFile = new File("C:\\save"); |
| 21 | 25 | |
| 22 | 26 | File savePth = new File("C:\\save\\save.txt"); |
| ... | ... | @@ -24,47 +28,54 @@ public class SchduleTask { |
| 24 | 28 | @Autowired |
| 25 | 29 | UserDao userDao; |
| 26 | 30 | |
| 31 | + @Value("${clint_type}") | |
| 32 | + private String clint_type; | |
| 33 | + | |
| 34 | + @Autowired | |
| 35 | + SendUserAsync sendUserAsync; | |
| 36 | + | |
| 27 | 37 | /** |
| 28 | 38 | * 定时任务,取更新的学生信息 |
| 29 | 39 | */ |
| 30 | 40 | @Scheduled(fixedRate = 5000) |
| 31 | - public void getUpdateStudentInfo() { | |
| 32 | - if (!saveFile.exists()) { | |
| 33 | - try { | |
| 34 | - saveFile.mkdirs(); | |
| 35 | - File saveFile_txt = new File(saveFile,"save.txt"); | |
| 36 | - if (!saveFile_txt.exists())saveFile_txt.createNewFile(); | |
| 37 | - } catch (IOException e) { | |
| 38 | - System.out.println("e:"+e.toString()); | |
| 39 | - e.printStackTrace(); | |
| 41 | + public synchronized void getUpdateStudentInfo() { | |
| 42 | + try { | |
| 43 | + | |
| 44 | + if (!saveFile.exists()) { | |
| 45 | + try { | |
| 46 | + saveFile.mkdirs(); | |
| 47 | + File saveFile_txt = new File(saveFile, "save.txt"); | |
| 48 | + if (!saveFile_txt.exists()) saveFile_txt.createNewFile(); | |
| 49 | + } catch (IOException e) { | |
| 50 | + System.out.println("e:" + e.toString()); | |
| 51 | + e.printStackTrace(); | |
| 52 | + } | |
| 40 | 53 | } |
| 41 | - } | |
| 42 | 54 | |
| 43 | - try { | |
| 44 | 55 | FileInputStream fileInputStream = new FileInputStream(savePth); |
| 45 | 56 | byte[] readByte = new byte[1024]; |
| 46 | 57 | fileInputStream.read(readByte); |
| 47 | 58 | //存储的数据库下标 |
| 48 | 59 | String index = new String(readByte, 0, readByte.length).trim(); |
| 49 | - System.out.println("index:"+index); | |
| 60 | + System.out.println("定时任务取得下标:"+index); | |
| 50 | 61 | List<StudentBean> studentBeans = null; |
| 51 | 62 | if (StringUtils.isEmpty(index)) {//没记录,取前十条 |
| 52 | - studentBeans = userDao.getStudents(); | |
| 53 | - System.out.println("getStudents:"+studentBeans.toString()); | |
| 63 | + studentBeans = userDao.getStudents(); | |
| 64 | +// System.out.println("getStudents:"+studentBeans.toString()); | |
| 54 | 65 | } else { |
| 55 | 66 | studentBeans = userDao.getAllStudents(Long.parseLong(index)); |
| 56 | - System.out.println("getAllStudents:"+studentBeans.toString()); | |
| 57 | - } | |
| 58 | - if (studentBeans.size()>0){ | |
| 59 | - FileOutputStream fileOutputStream = null; | |
| 60 | - fileOutputStream = new FileOutputStream(savePth); | |
| 61 | - fileOutputStream.write((studentBeans.get(0).getID()+"").getBytes()); | |
| 67 | +// System.out.println("getAllStudents:"+studentBeans.toString()); | |
| 62 | 68 | } |
| 63 | - }catch (Exception e){ | |
| 69 | + | |
| 70 | + System.out.println("定时任务:"+studentBeans.toString()); | |
| 71 | + if (sendUserAsync != null) | |
| 72 | + sendUserAsync.sendStu(studentBeans,1); | |
| 73 | + | |
| 74 | + } catch (Exception e) { | |
| 64 | 75 | e.printStackTrace(); |
| 65 | 76 | } |
| 66 | 77 | |
| 67 | -//cmsServer.sendUserInfo("1111111111",""); | |
| 68 | 78 | } |
| 69 | 79 | |
| 80 | + | |
| 70 | 81 | } | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/Swagger2.java
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package com.sincere.haikang; | |
| 2 | + | |
| 3 | +import org.springframework.context.annotation.Bean; | |
| 4 | +import org.springframework.context.annotation.Configuration; | |
| 5 | +import springfox.documentation.builders.ApiInfoBuilder; | |
| 6 | +import springfox.documentation.builders.PathSelectors; | |
| 7 | +import springfox.documentation.builders.RequestHandlerSelectors; | |
| 8 | +import springfox.documentation.service.ApiInfo; | |
| 9 | +import springfox.documentation.spi.DocumentationType; | |
| 10 | +import springfox.documentation.spring.web.plugins.Docket; | |
| 11 | +import springfox.documentation.swagger2.annotations.EnableSwagger2; | |
| 12 | + | |
| 13 | +@Configuration | |
| 14 | +@EnableSwagger2 | |
| 15 | +public class Swagger2 { | |
| 16 | + | |
| 17 | + @Bean | |
| 18 | + public Docket createRestApi() { | |
| 19 | + return new Docket(DocumentationType.SWAGGER_2) | |
| 20 | + .apiInfo(apiInfo()) | |
| 21 | + .select() | |
| 22 | + .apis(RequestHandlerSelectors.basePackage("com.sincere.haikang.control")) | |
| 23 | + .paths(PathSelectors.any()) | |
| 24 | + .build(); | |
| 25 | + } | |
| 26 | + | |
| 27 | + private ApiInfo apiInfo() { | |
| 28 | + return new ApiInfoBuilder() | |
| 29 | + .title("海康指纹机接口") | |
| 30 | + .contact("sincere") | |
| 31 | + .description("") | |
| 32 | + .termsOfServiceUrl("") | |
| 33 | + .version("1.0") | |
| 34 | + .build(); | |
| 35 | + } | |
| 36 | + | |
| 37 | +} | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/async/SendUserAsync.java
0 → 100644
| ... | ... | @@ -0,0 +1,75 @@ |
| 1 | +package com.sincere.haikang.async; | |
| 2 | + | |
| 3 | + | |
| 4 | +import com.sincere.haikang.CMSServer; | |
| 5 | +import com.sincere.haikang.bean.AttendanceBean; | |
| 6 | +import com.sincere.haikang.bean.StudentBean; | |
| 7 | +import com.sincere.haikang.dao.DeviceDao; | |
| 8 | +import com.sincere.haikang.utils.FileUtils; | |
| 9 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 10 | +import org.springframework.beans.factory.annotation.Value; | |
| 11 | +import org.springframework.scheduling.annotation.Async; | |
| 12 | +import org.springframework.stereotype.Component; | |
| 13 | +import org.springframework.util.StringUtils; | |
| 14 | + | |
| 15 | +import java.io.File; | |
| 16 | +import java.io.FileOutputStream; | |
| 17 | +import java.util.List; | |
| 18 | + | |
| 19 | +@Component | |
| 20 | +public class SendUserAsync { | |
| 21 | + | |
| 22 | + | |
| 23 | + File savePth = new File("C:\\save\\save.txt"); | |
| 24 | + | |
| 25 | + @Value("${clint_type}") | |
| 26 | + private String clint_type; | |
| 27 | + | |
| 28 | + @Autowired | |
| 29 | + CMSServer cmsServer; | |
| 30 | + | |
| 31 | + @Autowired | |
| 32 | + DeviceDao deviceDao; | |
| 33 | + | |
| 34 | + @Async("taskExecutor") | |
| 35 | + public void sendStu(List<StudentBean> studentBeans, int type) { | |
| 36 | + try { | |
| 37 | + if (studentBeans.size() > 0) { | |
| 38 | + FileOutputStream fileOutputStream = null; | |
| 39 | + fileOutputStream = new FileOutputStream(savePth); | |
| 40 | + fileOutputStream.write((studentBeans.get(0).getID() + "").getBytes()); | |
| 41 | + } | |
| 42 | + | |
| 43 | + for (StudentBean stu : | |
| 44 | + studentBeans) { | |
| 45 | + | |
| 46 | + String cardNum = null; | |
| 47 | + String school_id = null; | |
| 48 | + if (type == 0) {//调用接口下发 | |
| 49 | + cardNum = stu.getStudent_num(); | |
| 50 | + school_id = stu.getSchool_id()+""; | |
| 51 | + } else if (type == 1) {//更新数据下发 | |
| 52 | + if (!StringUtils.isEmpty(stu.getCard())) | |
| 53 | + cardNum = stu.getCard(); | |
| 54 | + else cardNum = stu.getOldCard(); | |
| 55 | + school_id = stu.getSchoolId()+""; | |
| 56 | + } | |
| 57 | + | |
| 58 | + List<AttendanceBean> attendanceBeanList = deviceDao.selectDeviceWithschool_id(clint_type, school_id + ""); | |
| 59 | + for (int i = 0; i < attendanceBeanList.size(); i++) { | |
| 60 | + /** | |
| 61 | + * 下发卡号给人脸设备 | |
| 62 | + */ | |
| 63 | + String clint_id = attendanceBeanList.get(i).getClint_id(); | |
| 64 | + if (!StringUtils.isEmpty(stu.getCard()) || stu.getCard() != null || !StringUtils.isEmpty(stu.getStudent_num())) { | |
| 65 | + System.out.println("下发学生:"+stu.getName()+" schoolId:"+school_id+" cardNum:"+cardNum); | |
| 66 | + cmsServer.sendCards(clint_id, cardNum, stu.getName()); | |
| 67 | + } else FileUtils.getInstance().writeLogs("没有卡号:" + stu.getName(), FileUtils.sendUserErrTxt); | |
| 68 | + } | |
| 69 | + } | |
| 70 | + } catch (Exception e) { | |
| 71 | + e.printStackTrace(); | |
| 72 | + } | |
| 73 | + } | |
| 74 | + | |
| 75 | +} | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/bean/AttendanceInfoBean.java
0 → 100644
| ... | ... | @@ -0,0 +1,61 @@ |
| 1 | +package com.sincere.haikang.bean; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * 考勤账号表 | |
| 5 | + */ | |
| 6 | +public class AttendanceInfoBean { | |
| 7 | + | |
| 8 | + /** | |
| 9 | + * 控制器类型,0是其他控制器,1是微耕控制器 | |
| 10 | + */ | |
| 11 | + private Integer isControl; | |
| 12 | + | |
| 13 | + public Integer getIsControl() { | |
| 14 | + return isControl; | |
| 15 | + } | |
| 16 | + | |
| 17 | + public void setIsControl(Integer isControl) { | |
| 18 | + this.isControl = isControl; | |
| 19 | + } | |
| 20 | + | |
| 21 | + public String getInfo() { | |
| 22 | + return info; | |
| 23 | + } | |
| 24 | + | |
| 25 | + public void setInfo(String info) { | |
| 26 | + this.info = info; | |
| 27 | + } | |
| 28 | + | |
| 29 | + public String getUsername() { | |
| 30 | + return username; | |
| 31 | + } | |
| 32 | + | |
| 33 | + public void setUsername(String username) { | |
| 34 | + this.username = username; | |
| 35 | + } | |
| 36 | + | |
| 37 | + public String getPwd() { | |
| 38 | + return pwd; | |
| 39 | + } | |
| 40 | + | |
| 41 | + public void setPwd(String pwd) { | |
| 42 | + this.pwd = pwd; | |
| 43 | + } | |
| 44 | + | |
| 45 | + /** | |
| 46 | + * 刷卡信息,XML格式字符串:<AttendanceInfo submitTime="2017-08-01T16:30:30"> | |
| 47 | + * <Info device="FD98DC58C467DB43" card="223456789" operTime="2017-08-01T11:20:30" direc="0"></Info> | |
| 48 | + * </AttendanceInfo> | |
| 49 | + */ | |
| 50 | + private String info; | |
| 51 | + | |
| 52 | + /** | |
| 53 | + * 账号 | |
| 54 | + */ | |
| 55 | + private String username; | |
| 56 | + | |
| 57 | + /** | |
| 58 | + * 密码 | |
| 59 | + */ | |
| 60 | + private String pwd; | |
| 61 | +} | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/bean/PlaceAttendance.java
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package com.sincere.haikang.bean; | |
| 2 | + | |
| 3 | +import java.io.Serializable; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 场地和设备关联 | |
| 7 | + */ | |
| 8 | +public class PlaceAttendance implements Serializable { | |
| 9 | + | |
| 10 | + private String KaoQinAttendance;//设备id | |
| 11 | + | |
| 12 | + private String TypeTwo;//0:活动场地,1:寝室 | |
| 13 | + | |
| 14 | + public String getKaoQinAttendance() { | |
| 15 | + return KaoQinAttendance; | |
| 16 | + } | |
| 17 | + | |
| 18 | + public void setKaoQinAttendance(String kaoQinAttendance) { | |
| 19 | + KaoQinAttendance = kaoQinAttendance; | |
| 20 | + } | |
| 21 | + | |
| 22 | + public String getTypeTwo() { | |
| 23 | + return TypeTwo; | |
| 24 | + } | |
| 25 | + | |
| 26 | + public void setTypeTwo(String typeTwo) { | |
| 27 | + TypeTwo = typeTwo; | |
| 28 | + } | |
| 29 | + | |
| 30 | + @Override | |
| 31 | + public String toString() { | |
| 32 | + return "PlaceAttendance{" + | |
| 33 | + "KaoQinAttendance='" + KaoQinAttendance + '\'' + | |
| 34 | + ", TypeTwo='" + TypeTwo + '\'' + | |
| 35 | + '}'; | |
| 36 | + } | |
| 37 | +} | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/bean/StudentBean.java
| ... | ... | @@ -27,6 +27,8 @@ public class StudentBean implements Serializable { |
| 27 | 27 | |
| 28 | 28 | private int SchoolId; |
| 29 | 29 | |
| 30 | + private int school_id; | |
| 31 | + | |
| 30 | 32 | private int IsNew; |
| 31 | 33 | |
| 32 | 34 | private int UpdateType; |
| ... | ... | @@ -39,6 +41,7 @@ public class StudentBean implements Serializable { |
| 39 | 41 | |
| 40 | 42 | private String StudentCode; |
| 41 | 43 | |
| 44 | + private String student_num; | |
| 42 | 45 | |
| 43 | 46 | public String getUserId() { |
| 44 | 47 | return UserId; |
| ... | ... | @@ -108,6 +111,22 @@ public class StudentBean implements Serializable { |
| 108 | 111 | return Card; |
| 109 | 112 | } |
| 110 | 113 | |
| 114 | + public int getSchool_id() { | |
| 115 | + return school_id; | |
| 116 | + } | |
| 117 | + | |
| 118 | + public void setSchool_id(int school_id) { | |
| 119 | + this.school_id = school_id; | |
| 120 | + } | |
| 121 | + | |
| 122 | + public String getStudent_num() { | |
| 123 | + return student_num; | |
| 124 | + } | |
| 125 | + | |
| 126 | + public void setStudent_num(String student_num) { | |
| 127 | + this.student_num = student_num; | |
| 128 | + } | |
| 129 | + | |
| 111 | 130 | public void setCard(String card) { |
| 112 | 131 | Card = card; |
| 113 | 132 | } |
| ... | ... | @@ -190,12 +209,14 @@ public class StudentBean implements Serializable { |
| 190 | 209 | ", OldCard='" + OldCard + '\'' + |
| 191 | 210 | ", Card='" + Card + '\'' + |
| 192 | 211 | ", SchoolId=" + SchoolId + |
| 212 | + ", school_id=" + school_id + | |
| 193 | 213 | ", IsNew=" + IsNew + |
| 194 | 214 | ", UpdateType=" + UpdateType + |
| 195 | 215 | ", AddTime=" + AddTime + |
| 196 | 216 | ", Sex=" + Sex + |
| 197 | 217 | ", Face='" + Face + '\'' + |
| 198 | 218 | ", StudentCode='" + StudentCode + '\'' + |
| 219 | + ", student_num='" + student_num + '\'' + | |
| 199 | 220 | '}'; |
| 200 | 221 | } |
| 201 | 222 | } | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/control/UserControl.java
0 → 100644
| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | +package com.sincere.haikang.control; | |
| 2 | + | |
| 3 | +import com.sincere.haikang.async.SendUserAsync; | |
| 4 | +import com.sincere.haikang.bean.StudentBean; | |
| 5 | +import com.sincere.haikang.dao.UserDao; | |
| 6 | +import io.swagger.annotations.Api; | |
| 7 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 8 | +import org.springframework.web.bind.annotation.RequestMapping; | |
| 9 | +import org.springframework.web.bind.annotation.RequestMethod; | |
| 10 | +import org.springframework.web.bind.annotation.RequestParam; | |
| 11 | +import org.springframework.web.bind.annotation.RestController; | |
| 12 | + | |
| 13 | +import java.util.List; | |
| 14 | + | |
| 15 | +@RestController | |
| 16 | +@RequestMapping("/user/*") | |
| 17 | +@Api("用户控制") | |
| 18 | +public class UserControl { | |
| 19 | + | |
| 20 | + @Autowired | |
| 21 | + SendUserAsync sendUserAsync; | |
| 22 | + | |
| 23 | + @Autowired | |
| 24 | + UserDao userDao; | |
| 25 | + | |
| 26 | + @RequestMapping(value = "sendUsers",method = RequestMethod.GET) | |
| 27 | + public boolean sendUsers(@RequestParam("schoolId")String schoolId){ | |
| 28 | + List<StudentBean> studentBeans = userDao.getAllStudentsWithSchoolId(schoolId); | |
| 29 | + System.out.println("schoolId:"+schoolId+" 学生数量:"+studentBeans.size()); | |
| 30 | + | |
| 31 | +// System.out.println("studentBeans:"+studentBeans); | |
| 32 | + sendUserAsync.sendStu(studentBeans,0); | |
| 33 | + return true; | |
| 34 | + | |
| 35 | + } | |
| 36 | + | |
| 37 | +} | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/dao/DeviceDao.java
| 1 | 1 | package com.sincere.haikang.dao; |
| 2 | 2 | |
| 3 | 3 | import com.sincere.haikang.bean.AttendanceBean; |
| 4 | +import com.sincere.haikang.bean.PlaceAttendance; | |
| 4 | 5 | import org.apache.ibatis.annotations.*; |
| 5 | 6 | import org.springframework.stereotype.Repository; |
| 6 | 7 | |
| 8 | +import java.util.List; | |
| 9 | + | |
| 7 | 10 | |
| 8 | 11 | @Repository |
| 9 | 12 | @Mapper |
| ... | ... | @@ -20,4 +23,15 @@ public interface DeviceDao { |
| 20 | 23 | int updateDeviceStatu(@Param("isConnection")int isConnection,@Param("ip")String ip,@Param("port")int port,@Param("clint_id")String clint_id); |
| 21 | 24 | |
| 22 | 25 | |
| 26 | + @Select("select * from SZ_Attendance where clint_type = #{clint_type} and school_id = #{school_id}") | |
| 27 | + List<AttendanceBean> selectDeviceWithschool_id(@Param("clint_type")String clint_type, @Param("school_id")String school_id); | |
| 28 | + | |
| 29 | + /** | |
| 30 | + * 获取活动场地 | |
| 31 | + * @param KaoQinAttendance | |
| 32 | + * @return | |
| 33 | + */ | |
| 34 | + @Select("select * from XA_PlaceAttendance where KaoQinAttendance = #{KaoQinAttendance}") | |
| 35 | + PlaceAttendance getPlaceAttendance(@Param("KaoQinAttendance")String KaoQinAttendance); | |
| 36 | + | |
| 23 | 37 | } | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/dao/UserDao.java
| ... | ... | @@ -4,6 +4,7 @@ import com.sincere.haikang.bean.StudentBean; |
| 4 | 4 | import org.apache.ibatis.annotations.Mapper; |
| 5 | 5 | import org.apache.ibatis.annotations.Param; |
| 6 | 6 | import org.apache.ibatis.annotations.Select; |
| 7 | +import org.apache.ibatis.annotations.Update; | |
| 7 | 8 | import org.springframework.stereotype.Repository; |
| 8 | 9 | |
| 9 | 10 | import java.util.List; |
| ... | ... | @@ -25,4 +26,12 @@ public interface UserDao { |
| 25 | 26 | */ |
| 26 | 27 | @Select("select * from HS_StudentUpdateCard where ID > #{id} order by AddTime desc") |
| 27 | 28 | List<StudentBean> getAllStudents(@Param("id")long id); |
| 29 | + | |
| 30 | + @Select("select * from SZ_V_School_Student where school_id = #{school_id}") | |
| 31 | + List<StudentBean> getAllStudentsWithSchoolId(@Param("school_id")String school_id); | |
| 32 | + | |
| 33 | + @Update("update SZ_V_School_Student set name = #{name} where student_id = #{student_id}") | |
| 34 | + void updateTest(@Param("student_id")String student_id,@Param("name")String name); | |
| 35 | + | |
| 36 | + | |
| 28 | 37 | } | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/utils/ApiHelper.java
0 → 100644
| ... | ... | @@ -0,0 +1,270 @@ |
| 1 | +package com.sincere.haikang.utils; | |
| 2 | + | |
| 3 | +import org.apache.http.HttpEntity; | |
| 4 | +import org.apache.http.NameValuePair; | |
| 5 | +import org.apache.http.client.ClientProtocolException; | |
| 6 | +import org.apache.http.client.config.RequestConfig; | |
| 7 | +import org.apache.http.client.entity.UrlEncodedFormEntity; | |
| 8 | +import org.apache.http.client.methods.*; | |
| 9 | +import org.apache.http.entity.ContentType; | |
| 10 | +import org.apache.http.entity.StringEntity; | |
| 11 | +import org.apache.http.impl.client.CloseableHttpClient; | |
| 12 | +import org.apache.http.impl.client.HttpClients; | |
| 13 | +import org.apache.http.message.BasicNameValuePair; | |
| 14 | +import org.apache.http.util.EntityUtils; | |
| 15 | + | |
| 16 | +import java.io.IOException; | |
| 17 | +import java.io.UnsupportedEncodingException; | |
| 18 | +import java.util.*; | |
| 19 | + | |
| 20 | +public class ApiHelper { | |
| 21 | + | |
| 22 | + public static String doGet(String url,Map<String, String> headerParamMap) { | |
| 23 | + CloseableHttpClient httpClient = null; | |
| 24 | + CloseableHttpResponse response = null; | |
| 25 | + String result = ""; | |
| 26 | + try { | |
| 27 | + // 通过址默认配置创建一个httpClient实例 | |
| 28 | + httpClient = HttpClients.createDefault(); | |
| 29 | + // 创建httpGet远程连接实例 | |
| 30 | + HttpGet httpGet = new HttpGet(url); | |
| 31 | + // 设置请求头信息, | |
| 32 | + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) { | |
| 33 | + httpGet.setHeader(entry.getKey(),entry.getValue()); | |
| 34 | + } | |
| 35 | + | |
| 36 | + // 为httpGet实例设置配置 | |
| 37 | + httpGet.setConfig(setRequestConfig()); | |
| 38 | + // 执行get请求得到返回对象 | |
| 39 | + response = httpClient.execute(httpGet); | |
| 40 | + // 通过返回对象获取返回数据 | |
| 41 | + HttpEntity entity = response.getEntity(); | |
| 42 | + // 通过EntityUtils中的toString方法将结果转换为字符串 | |
| 43 | + result = EntityUtils.toString(entity); | |
| 44 | + } catch (ClientProtocolException e) { | |
| 45 | + e.printStackTrace(); | |
| 46 | + } catch (IOException e) { | |
| 47 | + e.printStackTrace(); | |
| 48 | + } finally { | |
| 49 | + // 关闭资源 | |
| 50 | + if (null != response) { | |
| 51 | + try { | |
| 52 | + response.close(); | |
| 53 | + } catch (IOException e) { | |
| 54 | + e.printStackTrace(); | |
| 55 | + } | |
| 56 | + } | |
| 57 | + if (null != httpClient) { | |
| 58 | + try { | |
| 59 | + httpClient.close(); | |
| 60 | + } catch (IOException e) { | |
| 61 | + e.printStackTrace(); | |
| 62 | + } | |
| 63 | + } | |
| 64 | + } | |
| 65 | + return result; | |
| 66 | + } | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + public static String doDelete(String url,Map<String, String> headerParamMap) { | |
| 71 | + CloseableHttpClient httpClient = null; | |
| 72 | + CloseableHttpResponse response = null; | |
| 73 | + String result = ""; | |
| 74 | + try { | |
| 75 | + // 通过址默认配置创建一个httpClient实例 | |
| 76 | + httpClient = HttpClients.createDefault(); | |
| 77 | + // 创建HttpDelete远程连接实例 | |
| 78 | + HttpDelete httpDelete = new HttpDelete(url); | |
| 79 | + // 设置请求头信息, | |
| 80 | + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) { | |
| 81 | + httpDelete.setHeader(entry.getKey(),entry.getValue()); | |
| 82 | + } | |
| 83 | + // 为httpGet实例设置配置 | |
| 84 | + httpDelete.setConfig(setRequestConfig()); | |
| 85 | + // 执行get请求得到返回对象 | |
| 86 | + response = httpClient.execute(httpDelete); | |
| 87 | + // 通过返回对象获取返回数据 | |
| 88 | + HttpEntity entity = response.getEntity(); | |
| 89 | + // 通过EntityUtils中的toString方法将结果转换为字符串 | |
| 90 | + result = EntityUtils.toString(entity); | |
| 91 | + } catch (ClientProtocolException e) { | |
| 92 | + e.printStackTrace(); | |
| 93 | + } catch (IOException e) { | |
| 94 | + e.printStackTrace(); | |
| 95 | + } finally { | |
| 96 | + // 关闭资源 | |
| 97 | + if (null != response) { | |
| 98 | + try { | |
| 99 | + response.close(); | |
| 100 | + } catch (IOException e) { | |
| 101 | + e.printStackTrace(); | |
| 102 | + } | |
| 103 | + } | |
| 104 | + if (null != httpClient) { | |
| 105 | + try { | |
| 106 | + httpClient.close(); | |
| 107 | + } catch (IOException e) { | |
| 108 | + e.printStackTrace(); | |
| 109 | + } | |
| 110 | + } | |
| 111 | + } | |
| 112 | + return result; | |
| 113 | + } | |
| 114 | + | |
| 115 | + /** | |
| 116 | + * 表单格式的post请求 | |
| 117 | + * | |
| 118 | + * @param url 接口地址 | |
| 119 | + * @param headerParamMap 设置请求头 | |
| 120 | + * @param paramMap 设置请求值,表单格式的请求值 | |
| 121 | + * @return | |
| 122 | + */ | |
| 123 | + public static String doPost(String url, Map<String, String> headerParamMap, Map<String, Object> paramMap) { | |
| 124 | + CloseableHttpClient httpClient; | |
| 125 | + String result; | |
| 126 | + // 创建httpClient实例 | |
| 127 | + httpClient = HttpClients.createDefault(); | |
| 128 | + // 创建httpPost远程连接实例 | |
| 129 | + HttpPost httpPost = new HttpPost(url); | |
| 130 | + // 设置请求头 | |
| 131 | + httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); | |
| 132 | + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) { | |
| 133 | + httpPost.setHeader(entry.getKey(), entry.getValue()); | |
| 134 | + } | |
| 135 | + // 为httpPost实例设置配置 | |
| 136 | + httpPost.setConfig(setRequestConfig()); | |
| 137 | + | |
| 138 | + // 封装post请求参数 | |
| 139 | + if (null != paramMap && paramMap.size() > 0) { | |
| 140 | + List<NameValuePair> nvps = new ArrayList<NameValuePair>(); | |
| 141 | + // 通过map集成entrySet方法获取entity | |
| 142 | + Set<Map.Entry<String, Object>> entrySet = paramMap.entrySet(); | |
| 143 | + // 循环遍历,获取迭代器 | |
| 144 | + Iterator<Map.Entry<String, Object>> iterator = entrySet.iterator(); | |
| 145 | + while (iterator.hasNext()) { | |
| 146 | + Map.Entry<String, Object> mapEntry = iterator.next(); | |
| 147 | + nvps.add(new BasicNameValuePair(mapEntry.getKey(), mapEntry.getValue().toString())); | |
| 148 | + } | |
| 149 | + | |
| 150 | + // 为httpPost设置封装好的请求参数 | |
| 151 | + try { | |
| 152 | + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(nvps, "UTF-8"); | |
| 153 | + httpPost.setEntity(entity); | |
| 154 | + } catch (UnsupportedEncodingException e) { | |
| 155 | + e.printStackTrace(); | |
| 156 | + } | |
| 157 | + } | |
| 158 | + result = closeHttpAndResult(httpClient, httpPost,null); | |
| 159 | + return result; | |
| 160 | + } | |
| 161 | + /** | |
| 162 | + * post请求,内容体比较灵活,任意字符串格式的内容 | |
| 163 | + * @param url | |
| 164 | + * @param headerParamMap | |
| 165 | + * @param jsonParam | |
| 166 | + * @return | |
| 167 | + */ | |
| 168 | + public static String doPost(String url, Map<String, String> headerParamMap, String jsonParam) { | |
| 169 | + CloseableHttpClient httpClient; | |
| 170 | + String result; | |
| 171 | + // 创建httpClient实例 | |
| 172 | + httpClient = HttpClients.createDefault(); | |
| 173 | + // 创建httpPost远程连接实例 | |
| 174 | + HttpPost httpPost = new HttpPost(url); | |
| 175 | + // 设置请求头 | |
| 176 | + httpPost.addHeader("Content-Type", "application/json"); | |
| 177 | + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) { | |
| 178 | + httpPost.setHeader(entry.getKey(),entry.getValue()); | |
| 179 | + } | |
| 180 | + // 为httpPost实例设置配置 | |
| 181 | + httpPost.setConfig(setRequestConfig()); | |
| 182 | +// try { | |
| 183 | + StringEntity stringEntity = new StringEntity(jsonParam, ContentType.create("application/json","UTF-8")); | |
| 184 | +// stringEntity.setContentType("application/json"); | |
| 185 | +// stringEntity.setContentEncoding("gzip");//请求头的编码格式 | |
| 186 | + httpPost.setEntity(stringEntity); | |
| 187 | +// }catch (UnsupportedEncodingException e){ | |
| 188 | +// e.printStackTrace(); | |
| 189 | +// } | |
| 190 | + result = closeHttpAndResult(httpClient,httpPost,null); | |
| 191 | + return result; | |
| 192 | + } | |
| 193 | + | |
| 194 | + public static String doPut(String url, Map<String, String> headerParamMap, String jsonParam) { | |
| 195 | + CloseableHttpClient httpClient; | |
| 196 | + String result; | |
| 197 | + // 创建httpClient实例 | |
| 198 | + httpClient = HttpClients.createDefault(); | |
| 199 | + // 创建httpPost远程连接实例 | |
| 200 | + HttpPut httpPut= new HttpPut(url); | |
| 201 | + // 设置请求头 | |
| 202 | + httpPut.addHeader("Content-Type", "application/json"); | |
| 203 | + for (Map.Entry<String, String> entry : headerParamMap.entrySet()) { | |
| 204 | + httpPut.setHeader(entry.getKey(),entry.getValue()); | |
| 205 | + } | |
| 206 | + // 为httpPut实例设置配置 | |
| 207 | + httpPut.setConfig(setRequestConfig()); | |
| 208 | + | |
| 209 | + StringEntity stringEntity = new StringEntity(jsonParam, ContentType.create("application/json","UTF-8")); | |
| 210 | + | |
| 211 | + httpPut.setEntity(stringEntity); | |
| 212 | + | |
| 213 | + result = closeHttpAndResult(httpClient,null,httpPut); | |
| 214 | + return result; | |
| 215 | + } | |
| 216 | + | |
| 217 | + | |
| 218 | + private static String closeHttpAndResult(CloseableHttpClient httpClient,HttpPost httpPost,HttpPut httpPut){ | |
| 219 | + CloseableHttpResponse httpResponse = null; | |
| 220 | + String result = null; | |
| 221 | + try { | |
| 222 | + // httpClient对象执行post或者是put请求,并返回响应参数对象 | |
| 223 | + if(httpPost != null) { | |
| 224 | + httpResponse = httpClient.execute(httpPost); | |
| 225 | + }else { | |
| 226 | + httpResponse = httpClient.execute(httpPut); | |
| 227 | + } | |
| 228 | + // 从响应对象中获取响应内容 | |
| 229 | + HttpEntity entity = httpResponse.getEntity(); | |
| 230 | + result = EntityUtils.toString(entity); | |
| 231 | + } catch (ClientProtocolException e) { | |
| 232 | + e.printStackTrace(); | |
| 233 | + } catch (IOException e) { | |
| 234 | + e.printStackTrace(); | |
| 235 | + } finally { | |
| 236 | + // 关闭资源 | |
| 237 | + if (null != httpResponse) { | |
| 238 | + try { | |
| 239 | + httpResponse.close(); | |
| 240 | + } catch (IOException e) { | |
| 241 | + e.printStackTrace(); | |
| 242 | + } | |
| 243 | + } | |
| 244 | + if (null != httpClient) { | |
| 245 | + try { | |
| 246 | + httpClient.close(); | |
| 247 | + } catch (IOException e) { | |
| 248 | + e.printStackTrace(); | |
| 249 | + } | |
| 250 | + } | |
| 251 | + } | |
| 252 | + | |
| 253 | + return result; | |
| 254 | + } | |
| 255 | + | |
| 256 | + | |
| 257 | + /** | |
| 258 | + * 设置配置请求参数 | |
| 259 | + * @return | |
| 260 | + */ | |
| 261 | + private static RequestConfig setRequestConfig(){ | |
| 262 | + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 连接主机服务超时时间 | |
| 263 | + .setConnectionRequestTimeout(35000)// 请求超时时间 | |
| 264 | + .setSocketTimeout(60000)// 数据读取超时时间 | |
| 265 | + .build(); | |
| 266 | + | |
| 267 | + return requestConfig; | |
| 268 | + } | |
| 269 | +} | |
| 270 | + | ... | ... |
cloud/haikang/src/main/java/com/sincere/haikang/utils/FileUtils.java
0 → 100644
| ... | ... | @@ -0,0 +1,78 @@ |
| 1 | +package com.sincere.haikang.utils; | |
| 2 | + | |
| 3 | +import java.io.*; | |
| 4 | +import java.text.SimpleDateFormat; | |
| 5 | +import java.util.Date; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * 日志记录、文件操作工具类 | |
| 9 | + */ | |
| 10 | +public class FileUtils { | |
| 11 | + | |
| 12 | + | |
| 13 | + private static FileUtils fileUtils; | |
| 14 | + | |
| 15 | + private String filePath = "./log/";//日志记录目录 | |
| 16 | + | |
| 17 | + public static String devices = "devices.txt";//设备记录 | |
| 18 | + | |
| 19 | + public static String sendUserErrTxt = "senduserErr.txt";//用户下发失败记录 | |
| 20 | + | |
| 21 | + public static String sendUserSucTxt = "senduserSuc.txt";//用户下发成功记录 | |
| 22 | + | |
| 23 | + public static FileUtils getInstance() { | |
| 24 | + if (null == fileUtils) { | |
| 25 | + synchronized (FileUtils.class) { | |
| 26 | + fileUtils = new FileUtils(); | |
| 27 | + } | |
| 28 | + } | |
| 29 | + return fileUtils; | |
| 30 | + } | |
| 31 | + | |
| 32 | + | |
| 33 | + public FileUtils() { | |
| 34 | + | |
| 35 | + File filePa = new File(filePath); | |
| 36 | + if (!filePa.exists()) filePa.mkdirs(); | |
| 37 | + | |
| 38 | + } | |
| 39 | + | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * @param content 日志内容 | |
| 43 | + * @param fileName 文件名字 | |
| 44 | + */ | |
| 45 | + public void writeLogs(String content, String fileName) { | |
| 46 | + | |
| 47 | + File logPath = new File(filePath, fileName); | |
| 48 | + | |
| 49 | + try { | |
| 50 | +// System.out.println("logPath:" + logPath.getAbsolutePath()); | |
| 51 | + if (!logPath.exists()) logPath.createNewFile(); | |
| 52 | + | |
| 53 | + FileOutputStream fileOutputStream = new FileOutputStream(logPath, true);//true表示文件后面续写 | |
| 54 | + | |
| 55 | + String writeContent = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) | |
| 56 | + + " " + content + "\r\n"; | |
| 57 | + | |
| 58 | + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8"); | |
| 59 | + | |
| 60 | + outputStreamWriter.write(writeContent); | |
| 61 | + | |
| 62 | + outputStreamWriter.write("\r\n"); | |
| 63 | + | |
| 64 | + outputStreamWriter.close(); | |
| 65 | + | |
| 66 | + } catch (FileNotFoundException e) { | |
| 67 | + e.printStackTrace(); | |
| 68 | + } catch (UnsupportedEncodingException e) { | |
| 69 | + e.printStackTrace(); | |
| 70 | + } catch (IOException e) { | |
| 71 | + e.printStackTrace(); | |
| 72 | + } | |
| 73 | + | |
| 74 | + | |
| 75 | + } | |
| 76 | + | |
| 77 | + | |
| 78 | +} | ... | ... |
cloud/haikang/src/main/resources/application.yaml
| ... | ... | @@ -16,9 +16,29 @@ spring: |
| 16 | 16 | # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| 17 | 17 | |
| 18 | 18 | |
| 19 | +eureka: | |
| 20 | + instance: | |
| 21 | + hostname: localhost | |
| 22 | + lease-expiration-duration-in-seconds: 60 | |
| 23 | + lease-renewal-interval-in-seconds: 10 | |
| 24 | + client: | |
| 25 | + service-url: | |
| 26 | +# defaultZone: http://localhost:8761/eureka/ | |
| 27 | + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ | |
| 19 | 28 | |
| 20 | 29 | mybatis: |
| 21 | 30 | type-aliases-package: com.sincere.haikang.dao |
| 22 | 31 | mapper-locations: classpath:mapper/*.xml |
| 23 | 32 | config-location: classpath:mybatis-config.xml |
| 24 | 33 | |
| 34 | +attendanceHost: http://campus.myjxt.com/ | |
| 35 | +SchoolAccount: ceshixiao | |
| 36 | +SchoolPwd: 11111111-6fef-48gh-a5a9-447ec68bff1f | |
| 37 | + | |
| 38 | +clint_type: 23 | |
| 39 | + | |
| 40 | +ip: localhost | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | ... | ... |
cloud/haikang/src/test/java/com/sincere/haikang/HaikangApplicationTests.java
| 1 | 1 | package com.sincere.haikang; |
| 2 | 2 | |
| 3 | +import com.sincere.haikang.dao.UserDao; | |
| 3 | 4 | import com.sincere.haikang.server.AttendanceService; |
| 4 | 5 | import org.junit.Test; |
| 5 | 6 | import org.junit.runner.RunWith; |
| ... | ... | @@ -11,14 +12,19 @@ import org.springframework.test.context.junit4.SpringRunner; |
| 11 | 12 | @SpringBootTest |
| 12 | 13 | public class HaikangApplicationTests { |
| 13 | 14 | |
| 15 | +// @Autowired | |
| 16 | +// AttendanceService attendanceService; | |
| 17 | + | |
| 14 | 18 | @Autowired |
| 15 | - AttendanceService attendanceService; | |
| 19 | + UserDao userDao; | |
| 16 | 20 | |
| 17 | 21 | @Test |
| 18 | 22 | public void contextLoads() { |
| 19 | 23 | |
| 20 | - | |
| 21 | - attendanceService.insert("11111111","23", "1", 0 + "", "", "0", "1"); | |
| 24 | +// attendanceService.insert("11111111","23", "1", 0 + "", "", "0", "1"); | |
| 25 | +// for (int i = 12035; i < 12167; i++) { | |
| 26 | +// userDao.updateTest(i+"","测试"+i); | |
| 27 | +// } | |
| 22 | 28 | |
| 23 | 29 | } |
| 24 | 30 | ... | ... |
cloud/mypulsar/pom.xml
| ... | ... | @@ -73,6 +73,10 @@ |
| 73 | 73 | <version>2.0.1</version> |
| 74 | 74 | </dependency> |
| 75 | 75 | |
| 76 | + <dependency> | |
| 77 | + <groupId>org.springframework.cloud</groupId> | |
| 78 | + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | |
| 79 | + </dependency> | |
| 76 | 80 | <!--<dependency>--> |
| 77 | 81 | <!--<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>--> |
| 78 | 82 | <!--<artifactId>mybatis-enhance-actable</artifactId>--> |
| ... | ... | @@ -80,6 +84,18 @@ |
| 80 | 84 | <!--</dependency>--> |
| 81 | 85 | </dependencies> |
| 82 | 86 | |
| 87 | + <dependencyManagement> | |
| 88 | + <dependencies> | |
| 89 | + <dependency> | |
| 90 | + <groupId>org.springframework.cloud</groupId> | |
| 91 | + <artifactId>spring-cloud-dependencies</artifactId> | |
| 92 | + <version>${spring-cloud.version}</version> | |
| 93 | + <type>pom</type> | |
| 94 | + <scope>import</scope> | |
| 95 | + </dependency> | |
| 96 | + </dependencies> | |
| 97 | + </dependencyManagement> | |
| 98 | + | |
| 83 | 99 | <build> |
| 84 | 100 | <plugins> |
| 85 | 101 | <plugin> | ... | ... |
cloud/mypulsar/src/main/java/com/example/mypulsar/MypulsarApplication.java
| ... | ... | @@ -3,11 +3,13 @@ package com.example.mypulsar; |
| 3 | 3 | import org.mybatis.spring.annotation.MapperScan; |
| 4 | 4 | import org.springframework.boot.SpringApplication; |
| 5 | 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
| 6 | +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; | |
| 6 | 7 | import org.springframework.context.annotation.Bean; |
| 7 | 8 | import org.springframework.jdbc.core.JdbcTemplate; |
| 8 | 9 | |
| 9 | 10 | @SpringBootApplication |
| 10 | 11 | @MapperScan("com.example.mypulsar.dao") |
| 12 | +@EnableEurekaServer | |
| 11 | 13 | public class MypulsarApplication { |
| 12 | 14 | |
| 13 | 15 | ... | ... |
cloud/mypulsar/src/main/java/com/example/mypulsar/service/UserServiceImp.java
| ... | ... | @@ -17,4 +17,15 @@ public class UserServiceImp implements UserService { |
| 17 | 17 | public List<User> select() { |
| 18 | 18 | return userDao.select(); |
| 19 | 19 | } |
| 20 | + | |
| 21 | + /** | |
| 22 | + * http://60.190.202.57:8023/ | |
| 23 | + * POST /api/IotApp/UpdateDeviceOnlineStatus | |
| 24 | + * 设备上下线状态更新(服务端调用) | |
| 25 | + * 传参: | |
| 26 | + * id (integer, optional): 0下线,1上线 , | |
| 27 | + * deviceId (string, optional): 设备id , | |
| 28 | + * dtime (string, optional): Id为0,下线时间;为1 ,上线时间 | |
| 29 | + */ | |
| 30 | + | |
| 20 | 31 | } | ... | ... |
cloud/mypulsar/src/main/resources/application.yaml
| ... | ... | @@ -13,4 +13,16 @@ spring: |
| 13 | 13 | mybatis: |
| 14 | 14 | type-aliases-package: com.example.mypulsar.dao |
| 15 | 15 | mapper-locations: classpath:mapper/*.xml |
| 16 | - config-location: classpath:mybatis-config.xml | |
| 17 | 16 | \ No newline at end of file |
| 17 | + config-location: classpath:mybatis-config.xml | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | +eureka: | |
| 22 | + instance: | |
| 23 | + hostname: localhost | |
| 24 | + lease-expiration-duration-in-seconds: 60 | |
| 25 | + lease-renewal-interval-in-seconds: 10 | |
| 26 | + client: | |
| 27 | + service-url: | |
| 28 | + # defaultZone: http://localhost:8761/eureka/ | |
| 29 | + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ | |
| 18 | 30 | \ No newline at end of file | ... | ... |
cloud/mypulsar/src/test/java/com/example/mypulsar/MypulsarApplicationTests.java
| ... | ... | @@ -3,12 +3,20 @@ package com.example.mypulsar; |
| 3 | 3 | import org.junit.Test; |
| 4 | 4 | import org.junit.runner.RunWith; |
| 5 | 5 | import org.springframework.boot.test.context.SpringBootTest; |
| 6 | +import org.springframework.http.HttpEntity; | |
| 7 | +import org.springframework.http.HttpHeaders; | |
| 8 | +import org.springframework.http.MediaType; | |
| 6 | 9 | import org.springframework.test.context.junit4.SpringRunner; |
| 10 | +import org.springframework.util.LinkedMultiValueMap; | |
| 11 | +import org.springframework.util.MultiValueMap; | |
| 12 | +import org.springframework.web.client.RestTemplate; | |
| 7 | 13 | |
| 8 | 14 | @RunWith(SpringRunner.class) |
| 9 | 15 | @SpringBootTest |
| 10 | 16 | public class MypulsarApplicationTests { |
| 11 | 17 | |
| 18 | + | |
| 19 | + | |
| 12 | 20 | @Test |
| 13 | 21 | public void contextLoads() { |
| 14 | 22 | } | ... | ... |
| ... | ... | @@ -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 @@ |
| 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 @@ |
| 1 | +Begin Time:2019-09-04 11:29:52.136 | |
| 2 | +[2019-09-04 11:29:52.136][P:18472/T:12392][AVNetSDKMgr.cpp:358][Info][0] Load avnetsdk library dynamically | |
| 3 | +[2019-09-04 11:29:52.153][P:18472/T:12392][AVNetSDKMgr.cpp:382][Info][0] avnetsdk module handle: 00000000256A0000 | |
| 4 | + | |
| 5 | +[2019-09-04 11:29:52.153][P:18472/T:12392][AVNetSDKMgr.cpp:702][Info][0] Load configsdk dynamically | |
| 6 | +[2019-09-04 11:29:52.156][P:18472/T:12392][dhnetsdk.cpp:186][Info][0] Enter CLIENT_SetAutoReconnect:[cbAutoConnect=0000000021A30050, dwUser=0000000000000000]. | |
| 7 | +[2019-09-04 11:29:52.156][P:18472/T:12392][dhnetsdk.cpp:188][Info][0] Leave CLIENT_SetAutoReconnect. | |
| 8 | +[2019-09-04 11:29:52.157][P:18472/T:12392][dhnetsdk.cpp:206][Info][0] Enter CLIENT_SetConnectTime:[nWaitTime=5000, nTryTimes=1]. | |
| 9 | +[2019-09-04 11:29:52.157][P:18472/T:12392][dhnetsdk.cpp:219][Info][0] Leave CLIENT_SetConnectTime. | |
| 10 | +[2019-09-04 11:29:52.157][P:18472/T:12392][dhnetsdk.cpp:230][Info][0] Enter CLIENT_SetNetworkParam:[nWaittime=0, nConnectTime=10000, nConnectTryNum=0, nSubConnectSpaceTime=0, nGetDevInfoTime=0, nConnectBufSize=0, nGetConnInfoTime=3000, nSearchRecordTime=0, nsubDisconnetTime=0, byNetType=0, byPlaybackBufSize=0, bDetectDisconnTime=0, bKeepLifeInterval=0, nPicBufSize=0]. | |
| 11 | +[2019-09-04 11:29:52.157][P:18472/T:12392][dhnetsdk.cpp:245][Info][0] Leave CLIENT_SetNetworkParam. | |
| 12 | +[2019-09-04 11:29:52.159][P:18472/T:12392][dhnetsdk.cpp:6654][Info][0] Enter CLIENT_ListenServer. [ip=192.168.66.54, port=9500, nTimeout=1000, cbListen=0000000021A30090, dwUserData=0000000000000000.] | |
| 13 | +[2019-09-04 11:29:52.159][P:18472/T:12392][dhnetsdk.cpp:6658][Info][0] Leave CLIENT_ListenServer.[ret=564784144.] | ... | ... |
cloud/server1/pom.xml
| 1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | 2 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 3 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 3 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 4 | 4 | <modelVersion>4.0.0</modelVersion> |
| 5 | 5 | <parent> |
| 6 | 6 | <groupId>org.springframework.boot</groupId> |
| 7 | 7 | <artifactId>spring-boot-starter-parent</artifactId> |
| 8 | - <version>2.1.6.RELEASE</version> | |
| 8 | + <version>2.1.7.RELEASE</version> | |
| 9 | 9 | <relativePath/> <!-- lookup parent from repository --> |
| 10 | 10 | </parent> |
| 11 | - <groupId>com.example</groupId> | |
| 11 | + <groupId>com.sincere</groupId> | |
| 12 | 12 | <artifactId>server1</artifactId> |
| 13 | - <version>1.0.0</version> | |
| 13 | + <version>0.0.1-SNAPSHOT</version> | |
| 14 | 14 | <name>server1</name> |
| 15 | 15 | <description>Demo project for Spring Boot</description> |
| 16 | 16 | |
| 17 | 17 | <properties> |
| 18 | 18 | <java.version>1.8</java.version> |
| 19 | - <spring-cloud.version>Greenwich.SR1</spring-cloud.version> | |
| 19 | + <spring-cloud.version>Greenwich.SR2</spring-cloud.version> | |
| 20 | 20 | </properties> |
| 21 | 21 | |
| 22 | 22 | <dependencies> |
| 23 | 23 | <dependency> |
| 24 | - <groupId>org.springframework.boot</groupId> | |
| 25 | - <artifactId>spring-boot-starter-web</artifactId> | |
| 26 | - </dependency> | |
| 27 | - <dependency> | |
| 28 | 24 | <groupId>org.springframework.cloud</groupId> |
| 29 | 25 | <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> |
| 30 | 26 | </dependency> |
| 31 | 27 | |
| 32 | 28 | <dependency> |
| 33 | 29 | <groupId>org.springframework.boot</groupId> |
| 34 | - <artifactId>spring-boot-configuration-processor</artifactId> | |
| 35 | - <!--<version>2.1.3.RELEASE</version>--> | |
| 36 | - </dependency> | |
| 37 | - | |
| 38 | - <dependency> | |
| 39 | - <groupId>org.springframework.boot</groupId> | |
| 40 | 30 | <artifactId>spring-boot-starter-test</artifactId> |
| 41 | 31 | <scope>test</scope> |
| 42 | 32 | </dependency> |
| 43 | - | |
| 44 | 33 | </dependencies> |
| 45 | 34 | |
| 46 | 35 | <dependencyManagement> | ... | ... |
cloud/server1/src/main/java/com/example/server1/Server1Application.java
| ... | ... | @@ -1,17 +0,0 @@ |
| 1 | -package com.example.server1; | |
| 2 | - | |
| 3 | -import org.springframework.boot.SpringApplication; | |
| 4 | -import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | -import org.springframework.boot.context.properties.ConfigurationProperties; | |
| 6 | -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; | |
| 7 | - | |
| 8 | -@ConfigurationProperties | |
| 9 | -@EnableDiscoveryClient | |
| 10 | -@SpringBootApplication | |
| 11 | -public class Server1Application { | |
| 12 | - | |
| 13 | - public static void main(String[] args) { | |
| 14 | - SpringApplication.run(Server1Application.class, args); | |
| 15 | - } | |
| 16 | - | |
| 17 | -} |
cloud/server1/src/main/java/com/example/server1/control/HelloControler.java
| ... | ... | @@ -1,26 +0,0 @@ |
| 1 | -package com.example.server1.control; | |
| 2 | - | |
| 3 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 4 | -import org.springframework.cloud.client.ServiceInstance; | |
| 5 | -import org.springframework.cloud.client.discovery.DiscoveryClient; | |
| 6 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 7 | -import org.springframework.web.bind.annotation.RequestMethod; | |
| 8 | -import org.springframework.web.bind.annotation.RestController; | |
| 9 | - | |
| 10 | -import java.util.List; | |
| 11 | - | |
| 12 | - | |
| 13 | -@RestController | |
| 14 | -public class HelloControler { | |
| 15 | - | |
| 16 | - @Autowired | |
| 17 | - private DiscoveryClient client; | |
| 18 | - | |
| 19 | - @RequestMapping(value = "/hello",method = RequestMethod.GET) | |
| 20 | - public String index(){ | |
| 21 | - System.out.println("hello1:"); | |
| 22 | - List<ServiceInstance> instance = client.getInstances("hello-service"); | |
| 23 | - return "hello"; | |
| 24 | - } | |
| 25 | - | |
| 26 | -} |
cloud/server1/src/main/java/com/sincere/server1/Server1Application.java
0 → 100644
| ... | ... | @@ -0,0 +1,15 @@ |
| 1 | +package com.sincere.server1; | |
| 2 | + | |
| 3 | +import org.springframework.boot.SpringApplication; | |
| 4 | +import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; | |
| 6 | + | |
| 7 | +@EnableEurekaServer | |
| 8 | +@SpringBootApplication | |
| 9 | +public class Server1Application { | |
| 10 | + | |
| 11 | + public static void main(String[] args) { | |
| 12 | + SpringApplication.run(Server1Application.class, args); | |
| 13 | + } | |
| 14 | + | |
| 15 | +} | ... | ... |
cloud/server1/src/main/resources/META-INF/additional-spring-configuration-metadata.json
cloud/server1/src/main/resources/application.properties
| ... | ... | @@ -1,8 +0,0 @@ |
| 1 | -spring.application.name= hello-service | |
| 2 | -eureka.client.serviceUrl.defaultZone=http://220.189.228.132:1112/eureka | |
| 3 | -server.port=8081 | |
| 4 | - | |
| 5 | -eureka.instance.lease-renewal-interval-in-seconds=30 | |
| 6 | -eureka.instance.lease-expiration-duration-in-seconds=90 | |
| 7 | - | |
| 8 | -eureka.instance.instance-id=hello-service |
| ... | ... | @@ -0,0 +1,30 @@ |
| 1 | +server: | |
| 2 | + port: 8761 | |
| 3 | + | |
| 4 | +spring: | |
| 5 | + application: | |
| 6 | + name: eureka-server | |
| 7 | + profiles: | |
| 8 | + active: dev | |
| 9 | + | |
| 10 | +eureka: | |
| 11 | + instance: | |
| 12 | + preferIpAddress: true | |
| 13 | + # 注册周期心跳 默认30s 这里改成5s 建议生成环境使用默认值30 | |
| 14 | + lease-renewal-interval-in-seconds: 10 | |
| 15 | + lease-expiration-duration-in-seconds: 60 | |
| 16 | + | |
| 17 | + hostname: localhost | |
| 18 | + server: | |
| 19 | + #是否开启保护模式 | |
| 20 | + enable-self-preservation: true | |
| 21 | + eviction-interval-timer-in-ms: 4000 | |
| 22 | + #当进入保护模式的情况下,注册中心不会注销服务,以兼容分区故障 | |
| 23 | + renewal-percent-threshold: 0.5 | |
| 24 | + client: | |
| 25 | + #是否注册eureka,高可用的清况下使用 | |
| 26 | + register-with-eureka: true | |
| 27 | + #是否启用获取服务注册信息 | |
| 28 | + fetch-registry: true | |
| 29 | + service-url: | |
| 30 | + defaultZone: http://121.40.109.21:8762/eureka/ | |
| 0 | 31 | \ No newline at end of file | ... | ... |
cloud/server1/src/test/java/com/example/server1/Server1ApplicationTests.java
| ... | ... | @@ -1,16 +0,0 @@ |
| 1 | -package com.example.server1; | |
| 2 | - | |
| 3 | -import org.junit.Test; | |
| 4 | -import org.junit.runner.RunWith; | |
| 5 | -import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | -import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | - | |
| 8 | -@RunWith(SpringRunner.class) | |
| 9 | -@SpringBootTest | |
| 10 | -public class Server1ApplicationTests { | |
| 11 | - | |
| 12 | - @Test | |
| 13 | - public void contextLoads() { | |
| 14 | - } | |
| 15 | - | |
| 16 | -} |
cloud/server1/src/test/java/com/sincere/server1/Server1ApplicationTests.java
0 → 100644
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +package com.sincere.server1; | |
| 2 | + | |
| 3 | +import org.junit.Test; | |
| 4 | +import org.junit.runner.RunWith; | |
| 5 | +import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | +import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | + | |
| 8 | +@RunWith(SpringRunner.class) | |
| 9 | +@SpringBootTest | |
| 10 | +public class Server1ApplicationTests { | |
| 11 | + | |
| 12 | + @Test | |
| 13 | + public void contextLoads() { | |
| 14 | + } | |
| 15 | + | |
| 16 | +} | ... | ... |
cloud/server2/pom.xml
| 1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | 2 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 3 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 3 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 4 | 4 | <modelVersion>4.0.0</modelVersion> |
| 5 | 5 | <parent> |
| 6 | 6 | <groupId>org.springframework.boot</groupId> |
| 7 | 7 | <artifactId>spring-boot-starter-parent</artifactId> |
| 8 | - <version>2.1.6.RELEASE</version> | |
| 8 | + <version>2.1.7.RELEASE</version> | |
| 9 | 9 | <relativePath/> <!-- lookup parent from repository --> |
| 10 | 10 | </parent> |
| 11 | - <groupId>com.example</groupId> | |
| 11 | + <groupId>com.sincere</groupId> | |
| 12 | 12 | <artifactId>server2</artifactId> |
| 13 | - <version>1.0.0</version> | |
| 13 | + <version>0.0.1-SNAPSHOT</version> | |
| 14 | 14 | <name>server2</name> |
| 15 | 15 | <description>Demo project for Spring Boot</description> |
| 16 | 16 | |
| 17 | 17 | <properties> |
| 18 | 18 | <java.version>1.8</java.version> |
| 19 | - <spring-cloud.version>Greenwich.SR1</spring-cloud.version> | |
| 19 | + <spring-cloud.version>Greenwich.SR2</spring-cloud.version> | |
| 20 | 20 | </properties> |
| 21 | 21 | |
| 22 | 22 | <dependencies> |
| ... | ... | @@ -30,13 +30,6 @@ |
| 30 | 30 | <artifactId>spring-boot-starter-test</artifactId> |
| 31 | 31 | <scope>test</scope> |
| 32 | 32 | </dependency> |
| 33 | - | |
| 34 | - <dependency> | |
| 35 | - <groupId>org.springframework.boot</groupId> | |
| 36 | - <artifactId>spring-boot-configuration-processor</artifactId> | |
| 37 | - <!--<version>2.1.3.RELEASE</version>--> | |
| 38 | - </dependency> | |
| 39 | - | |
| 40 | 33 | </dependencies> |
| 41 | 34 | |
| 42 | 35 | <dependencyManagement> | ... | ... |
cloud/server2/src/main/java/com/example/server2/Server2Application.java
| ... | ... | @@ -1,20 +0,0 @@ |
| 1 | -package com.example.server2; | |
| 2 | - | |
| 3 | -import org.springframework.boot.SpringApplication; | |
| 4 | -import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | -import org.springframework.boot.context.properties.ConfigurationProperties; | |
| 6 | -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; | |
| 7 | -import org.springframework.cloud.client.loadbalancer.LoadBalanced; | |
| 8 | -import org.springframework.context.annotation.Bean; | |
| 9 | -import org.springframework.web.client.RestTemplate; | |
| 10 | - | |
| 11 | -@ConfigurationProperties | |
| 12 | -@SpringBootApplication | |
| 13 | -@EnableDiscoveryClient | |
| 14 | -public class Server2Application { | |
| 15 | - | |
| 16 | - public static void main(String[] args) { | |
| 17 | - SpringApplication.run(Server2Application.class, args); | |
| 18 | - } | |
| 19 | - | |
| 20 | -} |
cloud/server2/src/main/java/com/example/server2/control/HelloControler.java
| ... | ... | @@ -1,27 +0,0 @@ |
| 1 | -package com.example.server2.control; | |
| 2 | - | |
| 3 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 4 | -import org.springframework.cloud.client.ServiceInstance; | |
| 5 | -import org.springframework.cloud.client.discovery.DiscoveryClient; | |
| 6 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 7 | -import org.springframework.web.bind.annotation.RequestMethod; | |
| 8 | -import org.springframework.web.bind.annotation.RestController; | |
| 9 | - | |
| 10 | -import java.util.List; | |
| 11 | - | |
| 12 | - | |
| 13 | -@RestController | |
| 14 | -public class HelloControler { | |
| 15 | - | |
| 16 | - | |
| 17 | - @Autowired | |
| 18 | - private DiscoveryClient client; | |
| 19 | - | |
| 20 | - @RequestMapping(value = "/hello",method = RequestMethod.GET) | |
| 21 | - public String index(){ | |
| 22 | - System.out.println("hello2:"); | |
| 23 | - List<ServiceInstance> instance = client.getInstances("hello-service"); | |
| 24 | - return "hello2"; | |
| 25 | - } | |
| 26 | - | |
| 27 | -} |
cloud/server2/src/main/java/com/sincere/server2/Server2Application.java
0 → 100644
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +package com.sincere.server2; | |
| 2 | + | |
| 3 | +import org.springframework.boot.SpringApplication; | |
| 4 | +import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; | |
| 6 | +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; | |
| 7 | + | |
| 8 | +@EnableEurekaServer | |
| 9 | +@SpringBootApplication | |
| 10 | +public class Server2Application { | |
| 11 | + | |
| 12 | + public static void main(String[] args) { | |
| 13 | + SpringApplication.run(Server2Application.class, args); | |
| 14 | + } | |
| 15 | + | |
| 16 | +} | ... | ... |
cloud/server2/src/main/resources/META-INF/additional-spring-configuration-metadata.json
cloud/server2/src/main/resources/application.properties
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +server: | |
| 2 | + port: 8762 | |
| 3 | + | |
| 4 | +spring: | |
| 5 | + application: | |
| 6 | + name: eureka-server | |
| 7 | + profiles: | |
| 8 | + active: dev | |
| 9 | + | |
| 10 | +eureka: | |
| 11 | + instance: | |
| 12 | + preferIpAddress: true | |
| 13 | + # 注册周期心跳 默认30s 这里改成5s 建议生成环境使用默认值30 | |
| 14 | + lease-renewal-interval-in-seconds: 10 | |
| 15 | + lease-expiration-duration-in-seconds: 60 | |
| 16 | + | |
| 17 | + hostname: localhost | |
| 18 | + server: | |
| 19 | + enable-self-preservation: true | |
| 20 | + eviction-interval-timer-in-ms: 4000 | |
| 21 | + #当进入保护模式的情况下,注册中心不会注销服务,以兼容分区故障 | |
| 22 | + renewal-percent-threshold: 0.5 | |
| 23 | + client: | |
| 24 | + #是否注册eureka,高可用的清况下使用 | |
| 25 | + register-with-eureka: true | |
| 26 | + #是否启用获取服务注册信息 | |
| 27 | + fetch-registry: true | |
| 28 | + service-url: | |
| 29 | + defaultZone: http://121.40.109.21:8761/eureka/ | |
| 0 | 30 | \ No newline at end of file | ... | ... |
cloud/server2/src/test/java/com/example/server2/Server2ApplicationTests.java
| ... | ... | @@ -1,16 +0,0 @@ |
| 1 | -package com.example.server2; | |
| 2 | - | |
| 3 | -import org.junit.Test; | |
| 4 | -import org.junit.runner.RunWith; | |
| 5 | -import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | -import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | - | |
| 8 | -@RunWith(SpringRunner.class) | |
| 9 | -@SpringBootTest | |
| 10 | -public class Server2ApplicationTests { | |
| 11 | - | |
| 12 | - @Test | |
| 13 | - public void contextLoads() { | |
| 14 | - } | |
| 15 | - | |
| 16 | -} |
cloud/server2/src/test/java/com/sincere/server2/Server2ApplicationTests.java
0 → 100644
| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | +package com.sincere.server2; | |
| 2 | + | |
| 3 | +import org.junit.Test; | |
| 4 | +import org.junit.runner.RunWith; | |
| 5 | +import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | +import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | + | |
| 8 | +@RunWith(SpringRunner.class) | |
| 9 | +@SpringBootTest | |
| 10 | +public class Server2ApplicationTests { | |
| 11 | + | |
| 12 | + @Test | |
| 13 | + public void contextLoads() { | |
| 14 | + } | |
| 15 | + | |
| 16 | +} | ... | ... |
cloud/service_register/.gitignore
| ... | ... | @@ -1,31 +0,0 @@ |
| 1 | -HELP.md | |
| 2 | -target/ | |
| 3 | -!.mvn/wrapper/maven-wrapper.jar | |
| 4 | -!**/src/main/** | |
| 5 | -!**/src/test/** | |
| 6 | - | |
| 7 | -### STS ### | |
| 8 | -.apt_generated | |
| 9 | -.classpath | |
| 10 | -.factorypath | |
| 11 | -.project | |
| 12 | -.settings | |
| 13 | -.springBeans | |
| 14 | -.sts4-cache | |
| 15 | - | |
| 16 | -### IntelliJ IDEA ### | |
| 17 | -.idea | |
| 18 | -*.iws | |
| 19 | -*.iml | |
| 20 | -*.ipr | |
| 21 | - | |
| 22 | -### NetBeans ### | |
| 23 | -/nbproject/private/ | |
| 24 | -/nbbuild/ | |
| 25 | -/dist/ | |
| 26 | -/nbdist/ | |
| 27 | -/.nb-gradle/ | |
| 28 | -build/ | |
| 29 | - | |
| 30 | -### VS Code ### | |
| 31 | -.vscode/ |
cloud/service_register/.mvn/wrapper/MavenWrapperDownloader.java
| ... | ... | @@ -1,114 +0,0 @@ |
| 1 | -/* | |
| 2 | -Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | -or more contributor license agreements. See the NOTICE file | |
| 4 | -distributed with this work for additional information | |
| 5 | -regarding copyright ownership. The ASF licenses this file | |
| 6 | -to you under the Apache License, Version 2.0 (the | |
| 7 | -"License"); you may not use this file except in compliance | |
| 8 | -with the License. You may obtain a copy of the License at | |
| 9 | - | |
| 10 | - https://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | - | |
| 12 | -Unless required by applicable law or agreed to in writing, | |
| 13 | -software distributed under the License is distributed on an | |
| 14 | -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | -KIND, either express or implied. See the License for the | |
| 16 | -specific language governing permissions and limitations | |
| 17 | -under the License. | |
| 18 | -*/ | |
| 19 | - | |
| 20 | -import java.io.File; | |
| 21 | -import java.io.FileInputStream; | |
| 22 | -import java.io.FileOutputStream; | |
| 23 | -import java.io.IOException; | |
| 24 | -import java.net.URL; | |
| 25 | -import java.nio.channels.Channels; | |
| 26 | -import java.nio.channels.ReadableByteChannel; | |
| 27 | -import java.util.Properties; | |
| 28 | - | |
| 29 | -public class MavenWrapperDownloader { | |
| 30 | - | |
| 31 | - /** | |
| 32 | - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. | |
| 33 | - */ | |
| 34 | - private static final String DEFAULT_DOWNLOAD_URL = | |
| 35 | - "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; | |
| 36 | - | |
| 37 | - /** | |
| 38 | - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to | |
| 39 | - * use instead of the default one. | |
| 40 | - */ | |
| 41 | - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = | |
| 42 | - ".mvn/wrapper/maven-wrapper.properties"; | |
| 43 | - | |
| 44 | - /** | |
| 45 | - * Path where the maven-wrapper.jar will be saved to. | |
| 46 | - */ | |
| 47 | - private static final String MAVEN_WRAPPER_JAR_PATH = | |
| 48 | - ".mvn/wrapper/maven-wrapper.jar"; | |
| 49 | - | |
| 50 | - /** | |
| 51 | - * Name of the property which should be used to override the default download url for the wrapper. | |
| 52 | - */ | |
| 53 | - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; | |
| 54 | - | |
| 55 | - public static void main(String args[]) { | |
| 56 | - System.out.println("- Downloader started"); | |
| 57 | - File baseDirectory = new File(args[0]); | |
| 58 | - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); | |
| 59 | - | |
| 60 | - // If the maven-wrapper.properties exists, read it and check if it contains a custom | |
| 61 | - // wrapperUrl parameter. | |
| 62 | - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); | |
| 63 | - String url = DEFAULT_DOWNLOAD_URL; | |
| 64 | - if (mavenWrapperPropertyFile.exists()) { | |
| 65 | - FileInputStream mavenWrapperPropertyFileInputStream = null; | |
| 66 | - try { | |
| 67 | - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); | |
| 68 | - Properties mavenWrapperProperties = new Properties(); | |
| 69 | - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); | |
| 70 | - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); | |
| 71 | - } catch (IOException e) { | |
| 72 | - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); | |
| 73 | - } finally { | |
| 74 | - try { | |
| 75 | - if (mavenWrapperPropertyFileInputStream != null) { | |
| 76 | - mavenWrapperPropertyFileInputStream.close(); | |
| 77 | - } | |
| 78 | - } catch (IOException e) { | |
| 79 | - // Ignore ... | |
| 80 | - } | |
| 81 | - } | |
| 82 | - } | |
| 83 | - System.out.println("- Downloading from: : " + url); | |
| 84 | - | |
| 85 | - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); | |
| 86 | - if (!outputFile.getParentFile().exists()) { | |
| 87 | - if (!outputFile.getParentFile().mkdirs()) { | |
| 88 | - System.out.println( | |
| 89 | - "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); | |
| 90 | - } | |
| 91 | - } | |
| 92 | - System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); | |
| 93 | - try { | |
| 94 | - downloadFileFromURL(url, outputFile); | |
| 95 | - System.out.println("Done"); | |
| 96 | - System.exit(0); | |
| 97 | - } catch (Throwable e) { | |
| 98 | - System.out.println("- Error downloading"); | |
| 99 | - e.printStackTrace(); | |
| 100 | - System.exit(1); | |
| 101 | - } | |
| 102 | - } | |
| 103 | - | |
| 104 | - private static void downloadFileFromURL(String urlString, File destination) throws Exception { | |
| 105 | - URL website = new URL(urlString); | |
| 106 | - ReadableByteChannel rbc; | |
| 107 | - rbc = Channels.newChannel(website.openStream()); | |
| 108 | - FileOutputStream fos = new FileOutputStream(destination); | |
| 109 | - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); | |
| 110 | - fos.close(); | |
| 111 | - rbc.close(); | |
| 112 | - } | |
| 113 | - | |
| 114 | -} |
cloud/service_register/.mvn/wrapper/maven-wrapper.jar
No preview for this file type
cloud/service_register/.mvn/wrapper/maven-wrapper.properties
| ... | ... | @@ -1 +0,0 @@ |
| 1 | -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip |
cloud/service_register/mvnw
| ... | ... | @@ -1,286 +0,0 @@ |
| 1 | -#!/bin/sh | |
| 2 | -# ---------------------------------------------------------------------------- | |
| 3 | -# Licensed to the Apache Software Foundation (ASF) under one | |
| 4 | -# or more contributor license agreements. See the NOTICE file | |
| 5 | -# distributed with this work for additional information | |
| 6 | -# regarding copyright ownership. The ASF licenses this file | |
| 7 | -# to you under the Apache License, Version 2.0 (the | |
| 8 | -# "License"); you may not use this file except in compliance | |
| 9 | -# with the License. You may obtain a copy of the License at | |
| 10 | -# | |
| 11 | -# https://www.apache.org/licenses/LICENSE-2.0 | |
| 12 | -# | |
| 13 | -# Unless required by applicable law or agreed to in writing, | |
| 14 | -# software distributed under the License is distributed on an | |
| 15 | -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 16 | -# KIND, either express or implied. See the License for the | |
| 17 | -# specific language governing permissions and limitations | |
| 18 | -# under the License. | |
| 19 | -# ---------------------------------------------------------------------------- | |
| 20 | - | |
| 21 | -# ---------------------------------------------------------------------------- | |
| 22 | -# Maven2 Start Up Batch script | |
| 23 | -# | |
| 24 | -# Required ENV vars: | |
| 25 | -# ------------------ | |
| 26 | -# JAVA_HOME - location of a JDK home dir | |
| 27 | -# | |
| 28 | -# Optional ENV vars | |
| 29 | -# ----------------- | |
| 30 | -# M2_HOME - location of maven2's installed home dir | |
| 31 | -# MAVEN_OPTS - parameters passed to the Java VM when running Maven | |
| 32 | -# e.g. to debug Maven itself, use | |
| 33 | -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | |
| 34 | -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files | |
| 35 | -# ---------------------------------------------------------------------------- | |
| 36 | - | |
| 37 | -if [ -z "$MAVEN_SKIP_RC" ] ; then | |
| 38 | - | |
| 39 | - if [ -f /etc/mavenrc ] ; then | |
| 40 | - . /etc/mavenrc | |
| 41 | - fi | |
| 42 | - | |
| 43 | - if [ -f "$HOME/.mavenrc" ] ; then | |
| 44 | - . "$HOME/.mavenrc" | |
| 45 | - fi | |
| 46 | - | |
| 47 | -fi | |
| 48 | - | |
| 49 | -# OS specific support. $var _must_ be set to either true or false. | |
| 50 | -cygwin=false; | |
| 51 | -darwin=false; | |
| 52 | -mingw=false | |
| 53 | -case "`uname`" in | |
| 54 | - CYGWIN*) cygwin=true ;; | |
| 55 | - MINGW*) mingw=true;; | |
| 56 | - Darwin*) darwin=true | |
| 57 | - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home | |
| 58 | - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html | |
| 59 | - if [ -z "$JAVA_HOME" ]; then | |
| 60 | - if [ -x "/usr/libexec/java_home" ]; then | |
| 61 | - export JAVA_HOME="`/usr/libexec/java_home`" | |
| 62 | - else | |
| 63 | - export JAVA_HOME="/Library/Java/Home" | |
| 64 | - fi | |
| 65 | - fi | |
| 66 | - ;; | |
| 67 | -esac | |
| 68 | - | |
| 69 | -if [ -z "$JAVA_HOME" ] ; then | |
| 70 | - if [ -r /etc/gentoo-release ] ; then | |
| 71 | - JAVA_HOME=`java-config --jre-home` | |
| 72 | - fi | |
| 73 | -fi | |
| 74 | - | |
| 75 | -if [ -z "$M2_HOME" ] ; then | |
| 76 | - ## resolve links - $0 may be a link to maven's home | |
| 77 | - PRG="$0" | |
| 78 | - | |
| 79 | - # need this for relative symlinks | |
| 80 | - while [ -h "$PRG" ] ; do | |
| 81 | - ls=`ls -ld "$PRG"` | |
| 82 | - link=`expr "$ls" : '.*-> \(.*\)$'` | |
| 83 | - if expr "$link" : '/.*' > /dev/null; then | |
| 84 | - PRG="$link" | |
| 85 | - else | |
| 86 | - PRG="`dirname "$PRG"`/$link" | |
| 87 | - fi | |
| 88 | - done | |
| 89 | - | |
| 90 | - saveddir=`pwd` | |
| 91 | - | |
| 92 | - M2_HOME=`dirname "$PRG"`/.. | |
| 93 | - | |
| 94 | - # make it fully qualified | |
| 95 | - M2_HOME=`cd "$M2_HOME" && pwd` | |
| 96 | - | |
| 97 | - cd "$saveddir" | |
| 98 | - # echo Using m2 at $M2_HOME | |
| 99 | -fi | |
| 100 | - | |
| 101 | -# For Cygwin, ensure paths are in UNIX format before anything is touched | |
| 102 | -if $cygwin ; then | |
| 103 | - [ -n "$M2_HOME" ] && | |
| 104 | - M2_HOME=`cygpath --unix "$M2_HOME"` | |
| 105 | - [ -n "$JAVA_HOME" ] && | |
| 106 | - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | |
| 107 | - [ -n "$CLASSPATH" ] && | |
| 108 | - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` | |
| 109 | -fi | |
| 110 | - | |
| 111 | -# For Mingw, ensure paths are in UNIX format before anything is touched | |
| 112 | -if $mingw ; then | |
| 113 | - [ -n "$M2_HOME" ] && | |
| 114 | - M2_HOME="`(cd "$M2_HOME"; pwd)`" | |
| 115 | - [ -n "$JAVA_HOME" ] && | |
| 116 | - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" | |
| 117 | - # TODO classpath? | |
| 118 | -fi | |
| 119 | - | |
| 120 | -if [ -z "$JAVA_HOME" ]; then | |
| 121 | - javaExecutable="`which javac`" | |
| 122 | - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then | |
| 123 | - # readlink(1) is not available as standard on Solaris 10. | |
| 124 | - readLink=`which readlink` | |
| 125 | - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then | |
| 126 | - if $darwin ; then | |
| 127 | - javaHome="`dirname \"$javaExecutable\"`" | |
| 128 | - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" | |
| 129 | - else | |
| 130 | - javaExecutable="`readlink -f \"$javaExecutable\"`" | |
| 131 | - fi | |
| 132 | - javaHome="`dirname \"$javaExecutable\"`" | |
| 133 | - javaHome=`expr "$javaHome" : '\(.*\)/bin'` | |
| 134 | - JAVA_HOME="$javaHome" | |
| 135 | - export JAVA_HOME | |
| 136 | - fi | |
| 137 | - fi | |
| 138 | -fi | |
| 139 | - | |
| 140 | -if [ -z "$JAVACMD" ] ; then | |
| 141 | - if [ -n "$JAVA_HOME" ] ; then | |
| 142 | - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | |
| 143 | - # IBM's JDK on AIX uses strange locations for the executables | |
| 144 | - JAVACMD="$JAVA_HOME/jre/sh/java" | |
| 145 | - else | |
| 146 | - JAVACMD="$JAVA_HOME/bin/java" | |
| 147 | - fi | |
| 148 | - else | |
| 149 | - JAVACMD="`which java`" | |
| 150 | - fi | |
| 151 | -fi | |
| 152 | - | |
| 153 | -if [ ! -x "$JAVACMD" ] ; then | |
| 154 | - echo "Error: JAVA_HOME is not defined correctly." >&2 | |
| 155 | - echo " We cannot execute $JAVACMD" >&2 | |
| 156 | - exit 1 | |
| 157 | -fi | |
| 158 | - | |
| 159 | -if [ -z "$JAVA_HOME" ] ; then | |
| 160 | - echo "Warning: JAVA_HOME environment variable is not set." | |
| 161 | -fi | |
| 162 | - | |
| 163 | -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher | |
| 164 | - | |
| 165 | -# traverses directory structure from process work directory to filesystem root | |
| 166 | -# first directory with .mvn subdirectory is considered project base directory | |
| 167 | -find_maven_basedir() { | |
| 168 | - | |
| 169 | - if [ -z "$1" ] | |
| 170 | - then | |
| 171 | - echo "Path not specified to find_maven_basedir" | |
| 172 | - return 1 | |
| 173 | - fi | |
| 174 | - | |
| 175 | - basedir="$1" | |
| 176 | - wdir="$1" | |
| 177 | - while [ "$wdir" != '/' ] ; do | |
| 178 | - if [ -d "$wdir"/.mvn ] ; then | |
| 179 | - basedir=$wdir | |
| 180 | - break | |
| 181 | - fi | |
| 182 | - # workaround for JBEAP-8937 (on Solaris 10/Sparc) | |
| 183 | - if [ -d "${wdir}" ]; then | |
| 184 | - wdir=`cd "$wdir/.."; pwd` | |
| 185 | - fi | |
| 186 | - # end of workaround | |
| 187 | - done | |
| 188 | - echo "${basedir}" | |
| 189 | -} | |
| 190 | - | |
| 191 | -# concatenates all lines of a file | |
| 192 | -concat_lines() { | |
| 193 | - if [ -f "$1" ]; then | |
| 194 | - echo "$(tr -s '\n' ' ' < "$1")" | |
| 195 | - fi | |
| 196 | -} | |
| 197 | - | |
| 198 | -BASE_DIR=`find_maven_basedir "$(pwd)"` | |
| 199 | -if [ -z "$BASE_DIR" ]; then | |
| 200 | - exit 1; | |
| 201 | -fi | |
| 202 | - | |
| 203 | -########################################################################################## | |
| 204 | -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | |
| 205 | -# This allows using the maven wrapper in projects that prohibit checking in binary data. | |
| 206 | -########################################################################################## | |
| 207 | -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then | |
| 208 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 209 | - echo "Found .mvn/wrapper/maven-wrapper.jar" | |
| 210 | - fi | |
| 211 | -else | |
| 212 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 213 | - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." | |
| 214 | - fi | |
| 215 | - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" | |
| 216 | - while IFS="=" read key value; do | |
| 217 | - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; | |
| 218 | - esac | |
| 219 | - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" | |
| 220 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 221 | - echo "Downloading from: $jarUrl" | |
| 222 | - fi | |
| 223 | - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" | |
| 224 | - | |
| 225 | - if command -v wget > /dev/null; then | |
| 226 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 227 | - echo "Found wget ... using wget" | |
| 228 | - fi | |
| 229 | - wget "$jarUrl" -O "$wrapperJarPath" | |
| 230 | - elif command -v curl > /dev/null; then | |
| 231 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 232 | - echo "Found curl ... using curl" | |
| 233 | - fi | |
| 234 | - curl -o "$wrapperJarPath" "$jarUrl" | |
| 235 | - else | |
| 236 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 237 | - echo "Falling back to using Java to download" | |
| 238 | - fi | |
| 239 | - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" | |
| 240 | - if [ -e "$javaClass" ]; then | |
| 241 | - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | |
| 242 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 243 | - echo " - Compiling MavenWrapperDownloader.java ..." | |
| 244 | - fi | |
| 245 | - # Compiling the Java class | |
| 246 | - ("$JAVA_HOME/bin/javac" "$javaClass") | |
| 247 | - fi | |
| 248 | - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then | |
| 249 | - # Running the downloader | |
| 250 | - if [ "$MVNW_VERBOSE" = true ]; then | |
| 251 | - echo " - Running MavenWrapperDownloader.java ..." | |
| 252 | - fi | |
| 253 | - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") | |
| 254 | - fi | |
| 255 | - fi | |
| 256 | - fi | |
| 257 | -fi | |
| 258 | -########################################################################################## | |
| 259 | -# End of extension | |
| 260 | -########################################################################################## | |
| 261 | - | |
| 262 | -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} | |
| 263 | -if [ "$MVNW_VERBOSE" = true ]; then | |
| 264 | - echo $MAVEN_PROJECTBASEDIR | |
| 265 | -fi | |
| 266 | -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" | |
| 267 | - | |
| 268 | -# For Cygwin, switch paths to Windows format before running java | |
| 269 | -if $cygwin; then | |
| 270 | - [ -n "$M2_HOME" ] && | |
| 271 | - M2_HOME=`cygpath --path --windows "$M2_HOME"` | |
| 272 | - [ -n "$JAVA_HOME" ] && | |
| 273 | - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` | |
| 274 | - [ -n "$CLASSPATH" ] && | |
| 275 | - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` | |
| 276 | - [ -n "$MAVEN_PROJECTBASEDIR" ] && | |
| 277 | - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` | |
| 278 | -fi | |
| 279 | - | |
| 280 | -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | |
| 281 | - | |
| 282 | -exec "$JAVACMD" \ | |
| 283 | - $MAVEN_OPTS \ | |
| 284 | - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ | |
| 285 | - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ | |
| 286 | - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" |
cloud/service_register/mvnw.cmd
| ... | ... | @@ -1,161 +0,0 @@ |
| 1 | -@REM ---------------------------------------------------------------------------- | |
| 2 | -@REM Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | -@REM or more contributor license agreements. See the NOTICE file | |
| 4 | -@REM distributed with this work for additional information | |
| 5 | -@REM regarding copyright ownership. The ASF licenses this file | |
| 6 | -@REM to you under the Apache License, Version 2.0 (the | |
| 7 | -@REM "License"); you may not use this file except in compliance | |
| 8 | -@REM with the License. You may obtain a copy of the License at | |
| 9 | -@REM | |
| 10 | -@REM https://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | -@REM | |
| 12 | -@REM Unless required by applicable law or agreed to in writing, | |
| 13 | -@REM software distributed under the License is distributed on an | |
| 14 | -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | -@REM KIND, either express or implied. See the License for the | |
| 16 | -@REM specific language governing permissions and limitations | |
| 17 | -@REM under the License. | |
| 18 | -@REM ---------------------------------------------------------------------------- | |
| 19 | - | |
| 20 | -@REM ---------------------------------------------------------------------------- | |
| 21 | -@REM Maven2 Start Up Batch script | |
| 22 | -@REM | |
| 23 | -@REM Required ENV vars: | |
| 24 | -@REM JAVA_HOME - location of a JDK home dir | |
| 25 | -@REM | |
| 26 | -@REM Optional ENV vars | |
| 27 | -@REM M2_HOME - location of maven2's installed home dir | |
| 28 | -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands | |
| 29 | -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending | |
| 30 | -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven | |
| 31 | -@REM e.g. to debug Maven itself, use | |
| 32 | -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 | |
| 33 | -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files | |
| 34 | -@REM ---------------------------------------------------------------------------- | |
| 35 | - | |
| 36 | -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' | |
| 37 | -@echo off | |
| 38 | -@REM set title of command window | |
| 39 | -title %0 | |
| 40 | -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' | |
| 41 | -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% | |
| 42 | - | |
| 43 | -@REM set %HOME% to equivalent of $HOME | |
| 44 | -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") | |
| 45 | - | |
| 46 | -@REM Execute a user defined script before this one | |
| 47 | -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre | |
| 48 | -@REM check for pre script, once with legacy .bat ending and once with .cmd ending | |
| 49 | -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" | |
| 50 | -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" | |
| 51 | -:skipRcPre | |
| 52 | - | |
| 53 | -@setlocal | |
| 54 | - | |
| 55 | -set ERROR_CODE=0 | |
| 56 | - | |
| 57 | -@REM To isolate internal variables from possible post scripts, we use another setlocal | |
| 58 | -@setlocal | |
| 59 | - | |
| 60 | -@REM ==== START VALIDATION ==== | |
| 61 | -if not "%JAVA_HOME%" == "" goto OkJHome | |
| 62 | - | |
| 63 | -echo. | |
| 64 | -echo Error: JAVA_HOME not found in your environment. >&2 | |
| 65 | -echo Please set the JAVA_HOME variable in your environment to match the >&2 | |
| 66 | -echo location of your Java installation. >&2 | |
| 67 | -echo. | |
| 68 | -goto error | |
| 69 | - | |
| 70 | -:OkJHome | |
| 71 | -if exist "%JAVA_HOME%\bin\java.exe" goto init | |
| 72 | - | |
| 73 | -echo. | |
| 74 | -echo Error: JAVA_HOME is set to an invalid directory. >&2 | |
| 75 | -echo JAVA_HOME = "%JAVA_HOME%" >&2 | |
| 76 | -echo Please set the JAVA_HOME variable in your environment to match the >&2 | |
| 77 | -echo location of your Java installation. >&2 | |
| 78 | -echo. | |
| 79 | -goto error | |
| 80 | - | |
| 81 | -@REM ==== END VALIDATION ==== | |
| 82 | - | |
| 83 | -:init | |
| 84 | - | |
| 85 | -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". | |
| 86 | -@REM Fallback to current working directory if not found. | |
| 87 | - | |
| 88 | -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% | |
| 89 | -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir | |
| 90 | - | |
| 91 | -set EXEC_DIR=%CD% | |
| 92 | -set WDIR=%EXEC_DIR% | |
| 93 | -:findBaseDir | |
| 94 | -IF EXIST "%WDIR%"\.mvn goto baseDirFound | |
| 95 | -cd .. | |
| 96 | -IF "%WDIR%"=="%CD%" goto baseDirNotFound | |
| 97 | -set WDIR=%CD% | |
| 98 | -goto findBaseDir | |
| 99 | - | |
| 100 | -:baseDirFound | |
| 101 | -set MAVEN_PROJECTBASEDIR=%WDIR% | |
| 102 | -cd "%EXEC_DIR%" | |
| 103 | -goto endDetectBaseDir | |
| 104 | - | |
| 105 | -:baseDirNotFound | |
| 106 | -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% | |
| 107 | -cd "%EXEC_DIR%" | |
| 108 | - | |
| 109 | -:endDetectBaseDir | |
| 110 | - | |
| 111 | -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig | |
| 112 | - | |
| 113 | -@setlocal EnableExtensions EnableDelayedExpansion | |
| 114 | -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a | |
| 115 | -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% | |
| 116 | - | |
| 117 | -:endReadAdditionalConfig | |
| 118 | - | |
| 119 | -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" | |
| 120 | -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" | |
| 121 | -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain | |
| 122 | - | |
| 123 | -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar" | |
| 124 | -FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( | |
| 125 | - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B | |
| 126 | -) | |
| 127 | - | |
| 128 | -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central | |
| 129 | -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. | |
| 130 | -if exist %WRAPPER_JAR% ( | |
| 131 | - echo Found %WRAPPER_JAR% | |
| 132 | -) else ( | |
| 133 | - echo Couldn't find %WRAPPER_JAR%, downloading it ... | |
| 134 | - echo Downloading from: %DOWNLOAD_URL% | |
| 135 | - powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" | |
| 136 | - echo Finished downloading %WRAPPER_JAR% | |
| 137 | -) | |
| 138 | -@REM End of extension | |
| 139 | - | |
| 140 | -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* | |
| 141 | -if ERRORLEVEL 1 goto error | |
| 142 | -goto end | |
| 143 | - | |
| 144 | -:error | |
| 145 | -set ERROR_CODE=1 | |
| 146 | - | |
| 147 | -:end | |
| 148 | -@endlocal & set ERROR_CODE=%ERROR_CODE% | |
| 149 | - | |
| 150 | -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost | |
| 151 | -@REM check for post script, once with legacy .bat ending and once with .cmd ending | |
| 152 | -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" | |
| 153 | -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" | |
| 154 | -:skipRcPost | |
| 155 | - | |
| 156 | -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' | |
| 157 | -if "%MAVEN_BATCH_PAUSE%" == "on" pause | |
| 158 | - | |
| 159 | -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% | |
| 160 | - | |
| 161 | -exit /B %ERROR_CODE% |
cloud/service_register/pom.xml
| ... | ... | @@ -1,67 +0,0 @@ |
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| 3 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| 4 | - <modelVersion>4.0.0</modelVersion> | |
| 5 | - <parent> | |
| 6 | - <groupId>org.springframework.boot</groupId> | |
| 7 | - <artifactId>spring-boot-starter-parent</artifactId> | |
| 8 | - <version>2.1.6.RELEASE</version> | |
| 9 | - <relativePath/> <!-- lookup parent from repository --> | |
| 10 | - </parent> | |
| 11 | - <groupId>com.example</groupId> | |
| 12 | - <artifactId>service_register</artifactId> | |
| 13 | - <version>1.0.0</version> | |
| 14 | - <name>service_register</name> | |
| 15 | - <description>Demo project for Spring Boot</description> | |
| 16 | - | |
| 17 | - <properties> | |
| 18 | - <java.version>1.8</java.version> | |
| 19 | - <spring-cloud.version>Greenwich.SR1</spring-cloud.version> | |
| 20 | - </properties> | |
| 21 | - | |
| 22 | - <dependencies> | |
| 23 | - <dependency> | |
| 24 | - <groupId>org.springframework.cloud</groupId> | |
| 25 | - <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> | |
| 26 | - </dependency> | |
| 27 | - | |
| 28 | - <dependency> | |
| 29 | - <groupId>org.springframework.boot</groupId> | |
| 30 | - <artifactId>spring-boot-starter-test</artifactId> | |
| 31 | - <scope>test</scope> | |
| 32 | - </dependency> | |
| 33 | - | |
| 34 | - <dependency> | |
| 35 | - <groupId>org.springframework.boot</groupId> | |
| 36 | - <artifactId>spring-boot-configuration-processor</artifactId> | |
| 37 | - <!--<version>2.1.3.RELEASE</version>--> | |
| 38 | - </dependency> | |
| 39 | - | |
| 40 | - <dependency> | |
| 41 | - <groupId>org.springframework.boot</groupId> | |
| 42 | - <artifactId>spring-boot-starter-actuator</artifactId> | |
| 43 | - </dependency> | |
| 44 | - </dependencies> | |
| 45 | - | |
| 46 | - <dependencyManagement> | |
| 47 | - <dependencies> | |
| 48 | - <dependency> | |
| 49 | - <groupId>org.springframework.cloud</groupId> | |
| 50 | - <artifactId>spring-cloud-dependencies</artifactId> | |
| 51 | - <version>${spring-cloud.version}</version> | |
| 52 | - <type>pom</type> | |
| 53 | - <scope>import</scope> | |
| 54 | - </dependency> | |
| 55 | - </dependencies> | |
| 56 | - </dependencyManagement> | |
| 57 | - | |
| 58 | - <build> | |
| 59 | - <plugins> | |
| 60 | - <plugin> | |
| 61 | - <groupId>org.springframework.boot</groupId> | |
| 62 | - <artifactId>spring-boot-maven-plugin</artifactId> | |
| 63 | - </plugin> | |
| 64 | - </plugins> | |
| 65 | - </build> | |
| 66 | - | |
| 67 | -</project> |
cloud/service_register/src/main/java/com/example/service_register/ServiceRegisterApplication.java
| ... | ... | @@ -1,17 +0,0 @@ |
| 1 | -package com.example.service_register; | |
| 2 | - | |
| 3 | -import org.springframework.boot.SpringApplication; | |
| 4 | -import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | -import org.springframework.boot.context.properties.ConfigurationProperties; | |
| 6 | -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; | |
| 7 | - | |
| 8 | -@ConfigurationProperties | |
| 9 | -@EnableEurekaServer | |
| 10 | -@SpringBootApplication | |
| 11 | -public class ServiceRegisterApplication { | |
| 12 | - | |
| 13 | - public static void main(String[] args) { | |
| 14 | - SpringApplication.run(ServiceRegisterApplication.class, args); | |
| 15 | - } | |
| 16 | - | |
| 17 | -} |
cloud/service_register/src/main/resources/META-INF/additional-spring-configuration-metadata.json
cloud/service_register/src/main/resources/application.yaml
| ... | ... | @@ -1,27 +0,0 @@ |
| 1 | -server: | |
| 2 | - port: 100000 | |
| 3 | - | |
| 4 | -spring: | |
| 5 | - application: | |
| 6 | - name: regist1 | |
| 7 | - | |
| 8 | -eureka: | |
| 9 | - instance: | |
| 10 | - hostname: localhost | |
| 11 | -# lease-renewal-interval-in-seconds: 30 | |
| 12 | -# lease-expiration-duration-in-seconds: 90 | |
| 13 | -# server: | |
| 14 | -# enable-self-preservation: true | |
| 15 | - client: | |
| 16 | - fetch-registry: true | |
| 17 | - register-with-eureka: true | |
| 18 | -# service-url: | |
| 19 | -# defaultZone: http://localhost:10086/eureka | |
| 20 | -# healthcheck: | |
| 21 | -# enabled: true | |
| 22 | - | |
| 23 | - | |
| 24 | - | |
| 25 | - | |
| 26 | - | |
| 27 | - |
cloud/service_register/src/test/java/com/example/service_register/ServiceRegisterApplicationTests.java
| ... | ... | @@ -1,16 +0,0 @@ |
| 1 | -package com.example.service_register; | |
| 2 | - | |
| 3 | -import org.junit.Test; | |
| 4 | -import org.junit.runner.RunWith; | |
| 5 | -import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | -import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | - | |
| 8 | -@RunWith(SpringRunner.class) | |
| 9 | -@SpringBootTest | |
| 10 | -public class ServiceRegisterApplicationTests { | |
| 11 | - | |
| 12 | - @Test | |
| 13 | - public void contextLoads() { | |
| 14 | - } | |
| 15 | - | |
| 16 | -} |
cloud/src/main/java/com/example/cloud/CloudApplication.java
| ... | ... | @@ -1,19 +0,0 @@ |
| 1 | -package com.example.cloud; | |
| 2 | - | |
| 3 | -import org.springframework.boot.SpringApplication; | |
| 4 | -import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| 5 | -import org.springframework.boot.builder.SpringApplicationBuilder; | |
| 6 | -import org.springframework.boot.context.properties.ConfigurationProperties; | |
| 7 | -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; | |
| 8 | - | |
| 9 | -@EnableEurekaServer | |
| 10 | -@SpringBootApplication | |
| 11 | -@ConfigurationProperties | |
| 12 | -public class CloudApplication { | |
| 13 | - | |
| 14 | - public static void main(String[] args) { | |
| 15 | - new SpringApplicationBuilder(CloudApplication.class).run(args); | |
| 16 | -// SpringApplication.run(CloudApplication.class, args); | |
| 17 | - } | |
| 18 | - | |
| 19 | -} |
cloud/src/main/resources/META-INF/additional-spring-configuration-metadata.json
cloud/src/main/resources/application.yaml
| ... | ... | @@ -1,25 +0,0 @@ |
| 1 | -server: | |
| 2 | - port: 1111 | |
| 3 | - | |
| 4 | -eureka: | |
| 5 | - instance: | |
| 6 | - hostname: localhost | |
| 7 | - lease-renewal-interval-in-seconds: 30 | |
| 8 | - lease-expiration-duration-in-seconds: 90 | |
| 9 | - client: | |
| 10 | - fetch-registry: false | |
| 11 | - register-with-eureka: true | |
| 12 | - serviceUrl: | |
| 13 | - defaultZone: http://${eureka.instance.hostname}:1112/eureka | |
| 14 | - healthcheck: | |
| 15 | - enabled: true #健康检测开启 | |
| 16 | - | |
| 17 | - server: | |
| 18 | - enable-self-preservation: true #保护机制开启 | |
| 19 | - | |
| 20 | - | |
| 21 | -spring: | |
| 22 | - application: | |
| 23 | - name: regist_server | |
| 24 | - | |
| 25 | - |
cloud/src/test/java/com/example/cloud/CloudApplicationTests.java
| ... | ... | @@ -1,16 +0,0 @@ |
| 1 | -package com.example.cloud; | |
| 2 | - | |
| 3 | -import org.junit.Test; | |
| 4 | -import org.junit.runner.RunWith; | |
| 5 | -import org.springframework.boot.test.context.SpringBootTest; | |
| 6 | -import org.springframework.test.context.junit4.SpringRunner; | |
| 7 | - | |
| 8 | -@RunWith(SpringRunner.class) | |
| 9 | -@SpringBootTest | |
| 10 | -public class CloudApplicationTests { | |
| 11 | - | |
| 12 | - @Test | |
| 13 | - public void contextLoads() { | |
| 14 | - } | |
| 15 | - | |
| 16 | -} |