初始化提交代码

This commit is contained in:
wangliwen 2022-11-21 09:39:53 +08:00
parent d8ccb5de5f
commit 6f3cee1658
67 changed files with 6011 additions and 0 deletions

11
.editorconfig Normal file
View File

@ -0,0 +1,11 @@
# EditorConfig is awesome: https://EditorConfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
end_of_line = lf
insert_final_newline = true

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# 默认忽略的文件
/shelf/
/workspace.xml

13
.idea/compiler.xml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="dahua_video" />
</profile>
</annotationProcessing>
</component>
</project>

414
.idea/dbnavigator.xml Normal file
View File

@ -0,0 +1,414 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="true" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.EditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.Settings">
<connections />
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
</general>
<filters>
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</filters>
<sorting>
<object-type name="COLUMN" sorting-type="NAME" />
<object-type name="FUNCTION" sorting-type="NAME" />
<object-type name="PROCEDURE" sorting-type="NAME" />
<object-type name="ARGUMENT" sorting-type="POSITION" />
<object-type name="TYPE ATTRIBUTE" sorting-type="POSITION" />
</sorting>
<default-editors>
<object-type name="VIEW" editor-type="SELECTION" />
<object-type name="PACKAGE" editor-type="SELECTION" />
<object-type name="TYPE" editor-type="SELECTION" />
</default-editors>
</browser-settings>
<navigation-settings>
<lookup-filters>
<lookup-objects>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="false" />
<object-type name="ROLE" enabled="false" />
<object-type name="PRIVILEGE" enabled="false" />
<object-type name="CHARSET" enabled="false" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED VIEW" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET TRIGGER" enabled="true" />
<object-type name="DATABASE TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="false" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="DIMENSION" enabled="false" />
<object-type name="CLUSTER" enabled="false" />
<object-type name="DBLINK" enabled="true" />
</lookup-objects>
<force-database-load value="false" />
<prompt-connection-selection value="true" />
<prompt-schema-selection value="true" />
</lookup-filters>
</navigation-settings>
<dataset-grid-settings>
<general>
<enable-zooming value="true" />
<enable-column-tooltip value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<audit-columns>
<column-names value="" />
<visible value="true" />
<editable value="false" />
</audit-columns>
</dataset-grid-settings>
<dataset-editor-settings>
<text-editor-popup>
<active value="false" />
<active-if-empty value="false" />
<data-length-threshold value="100" />
<popup-delay value="1000" />
</text-editor-popup>
<values-actions-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-actions-popup>
<general>
<fetch-block-size value="100" />
<fetch-timeout value="30" />
<trim-whitespaces value="true" />
<convert-empty-strings-to-null value="true" />
<select-content-on-cell-edit value="true" />
<large-value-preview-active value="true" />
</general>
<filters>
<prompt-filter-dialog value="true" />
<default-filter-type value="BASIC" />
</filters>
<qualified-text-editor text-length-threshold="300">
<content-types>
<content-type name="Text" enabled="true" />
<content-type name="Properties" enabled="true" />
<content-type name="XML" enabled="true" />
<content-type name="DTD" enabled="true" />
<content-type name="HTML" enabled="true" />
<content-type name="XHTML" enabled="true" />
<content-type name="Java" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JSON" enabled="true" />
<content-type name="JSON5" enabled="true" />
<content-type name="Groovy" enabled="true" />
<content-type name="AIDL" enabled="true" />
<content-type name="YAML" enabled="true" />
<content-type name="Manifest" enabled="true" />
</content-types>
</qualified-text-editor>
<record-navigation>
<navigation-target value="VIEWER" />
</record-navigation>
</dataset-editor-settings>
<code-editor-settings>
<general>
<show-object-navigation-gutter value="false" />
<show-spec-declaration-navigation-gutter value="true" />
<enable-spellchecking value="true" />
<enable-reference-spellchecking value="false" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
</confirmations>
</code-editor-settings>
<code-completion-settings>
<filters>
<basic-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="false" />
<filter-element type="OBJECT" id="view" selected="false" />
<filter-element type="OBJECT" id="materialized view" selected="false" />
<filter-element type="OBJECT" id="index" selected="false" />
<filter-element type="OBJECT" id="constraint" selected="false" />
<filter-element type="OBJECT" id="trigger" selected="false" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="false" />
<filter-element type="OBJECT" id="procedure" selected="false" />
<filter-element type="OBJECT" id="function" selected="false" />
<filter-element type="OBJECT" id="package" selected="false" />
<filter-element type="OBJECT" id="type" selected="false" />
<filter-element type="OBJECT" id="dimension" selected="false" />
<filter-element type="OBJECT" id="cluster" selected="false" />
<filter-element type="OBJECT" id="dblink" selected="false" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</basic-filter>
<extended-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</extended-filter>
</filters>
<sorting enabled="true">
<sorting-element type="RESERVED_WORD" id="keyword" />
<sorting-element type="RESERVED_WORD" id="datatype" />
<sorting-element type="OBJECT" id="column" />
<sorting-element type="OBJECT" id="table" />
<sorting-element type="OBJECT" id="view" />
<sorting-element type="OBJECT" id="materialized view" />
<sorting-element type="OBJECT" id="index" />
<sorting-element type="OBJECT" id="constraint" />
<sorting-element type="OBJECT" id="trigger" />
<sorting-element type="OBJECT" id="synonym" />
<sorting-element type="OBJECT" id="sequence" />
<sorting-element type="OBJECT" id="procedure" />
<sorting-element type="OBJECT" id="function" />
<sorting-element type="OBJECT" id="package" />
<sorting-element type="OBJECT" id="type" />
<sorting-element type="OBJECT" id="dimension" />
<sorting-element type="OBJECT" id="cluster" />
<sorting-element type="OBJECT" id="dblink" />
<sorting-element type="OBJECT" id="schema" />
<sorting-element type="OBJECT" id="role" />
<sorting-element type="OBJECT" id="user" />
<sorting-element type="RESERVED_WORD" id="function" />
<sorting-element type="RESERVED_WORD" id="parameter" />
</sorting>
<format>
<enforce-code-style-case value="true" />
</format>
</code-completion-settings>
<execution-engine-settings>
<statement-execution>
<fetch-block-size value="100" />
<execution-timeout value="20" />
<debug-execution-timeout value="600" />
<focus-result value="false" />
<prompt-execution value="false" />
</statement-execution>
<script-execution>
<command-line-interfaces />
<execution-timeout value="300" />
</script-execution>
<method-execution>
<execution-timeout value="30" />
<debug-execution-timeout value="600" />
<parameter-history-size value="10" />
</method-execution>
</execution-engine-settings>
<operation-settings>
<transactions>
<uncommitted-changes>
<on-project-close value="ASK" />
<on-disconnect value="ASK" />
<on-autocommit-toggle value="ASK" />
</uncommitted-changes>
<multiple-uncommitted-changes>
<on-commit value="ASK" />
<on-rollback value="ASK" />
</multiple-uncommitted-changes>
</transactions>
<session-browser>
<disconnect-session value="ASK" />
<kill-session value="ASK" />
<reload-on-filter-change value="false" />
</session-browser>
<compiler>
<compile-type value="KEEP" />
<compile-dependencies value="ASK" />
<always-show-controls value="false" />
</compiler>
<debugger>
<debugger-type value="ASK" />
<use-generic-runners value="true" />
</debugger>
</operation-settings>
<ddl-file-settings>
<extensions>
<mapping file-type-id="VIEW" extensions="vw" />
<mapping file-type-id="TRIGGER" extensions="trg" />
<mapping file-type-id="PROCEDURE" extensions="prc" />
<mapping file-type-id="FUNCTION" extensions="fnc" />
<mapping file-type-id="PACKAGE" extensions="pkg" />
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
<mapping file-type-id="TYPE" extensions="tpe" />
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
</extensions>
<general>
<lookup-ddl-files value="true" />
<create-ddl-files value="false" />
<synchronize-ddl-files value="true" />
<use-qualified-names value="false" />
<make-scripts-rerunnable value="true" />
</general>
</ddl-file-settings>
<general-settings>
<regional-settings>
<date-format value="MEDIUM" />
<number-format value="UNGROUPED" />
<locale value="SYSTEM_DEFAULT" />
<use-custom-formats value="false" />
</regional-settings>
<environment>
<environment-types>
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
</environment-types>
<visibility-settings>
<connection-tabs value="true" />
<dialog-headers value="true" />
<object-editor-tabs value="true" />
<script-editor-tabs value="false" />
<execution-result-tabs value="true" />
</visibility-settings>
</environment>
</general-settings>
</component>
</project>

7
.idea/encodings.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/kotlin" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

View File

@ -0,0 +1,10 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
</profile>
</component>

20
.idea/jarRepositories.xml Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="http://mirrors.163.com/maven/repository/maven-public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

6
.idea/kotlinc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.7.20" />
</component>
</project>

12
.idea/misc.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK" />
</project>

117
.mvn/wrapper/MavenWrapperDownloader.java vendored Normal file
View File

@ -0,0 +1,117 @@
/*
* Copyright 2007-present the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.6";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if(mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if(mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if(!outputFile.getParentFile().exists()) {
if(!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}

18
.mvn/wrapper/maven-wrapper.properties vendored Normal file
View File

@ -0,0 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar

31
README.adoc Normal file
View File

@ -0,0 +1,31 @@
= Dahua_video
image:https://img.shields.io/badge/vert.x-4.3.4-purple.svg[link="https://vertx.io"]
This application was generated using http://start.vertx.io
== Building
To launch your tests:
```
./mvnw clean test
```
To package your application:
```
./mvnw clean package
```
To run your application:
```
./mvnw clean compile exec:java
```
== Help
* https://vertx.io/docs/[Vert.x Documentation]
* https://stackoverflow.com/questions/tagged/vert.x?sort=newest&pageSize=15[Vert.x Stack Overflow]
* https://groups.google.com/forum/?fromgroups#!forum/vertx[Vert.x User Group]
* https://gitter.im/eclipse-vertx/vertx-users[Vert.x Gitter]

9
config.json Normal file
View File

@ -0,0 +1,9 @@
{
"port": 8883,
"sqlite_jdbcurl": "jdbc:sqlite:hisense_dh.db",
"sqlite_user": "root",
"sqlite_password": "Hisense2022",
"host": "192.168.124.25",
"memberList": [],
"recroot": "/mnts/record/"
}

BIN
hisense_dh.db Normal file

Binary file not shown.

View File

@ -0,0 +1,60 @@
2022-11-16 13:51:00,002 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-16 14:32:04,512 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-21] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-16 14:45:26,918 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-16 18:18:08,782 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-19] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]

View File

@ -0,0 +1,45 @@
2022-11-17 17:31:25,468 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-17 17:36:53,874 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-24] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-17 17:48:35,955 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]

View File

@ -0,0 +1,85 @@
2022-11-18 16:16:18,193 ERROR [io.vertx.core.impl.ContextBase]-[vert.x-eventloop-thread-1] Unhandled exception
org.jetbrains.exposed.exceptions.ExposedSQLException: java.sql.SQLException: Query returns results
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:64) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:140) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:126) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:108) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:94) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec$default(Transaction.kt:93) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.execStatements(SchemaUtils.kt:251) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns(SchemaUtils.kt:321) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns$default(SchemaUtils.kt:306) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:160) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:157) ~[classes/:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:214) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:240) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:239) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:189) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:159) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:146) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:145) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:157) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:51) ~[classes/:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.sql.SQLException: Query returns results
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeLargeUpdate(JDBC3PreparedStatement.java:106) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:98) ~[sqlite-jdbc-3.39.4.0.jar:?]
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeUpdate(JdbcPreparedStatementImpl.kt:26) ~[exposed-jdbc-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction$exec$2.executeInternal(Transaction.kt:113) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:62) ~[exposed-core-0.40.1.jar:?]
... 58 more
2022-11-18 16:17:57,609 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-17] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]

818
logs/app.log.20221116-1 Normal file
View File

@ -0,0 +1,818 @@
2022-11-16 13:50:36,325 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-16T13:50:36.324702100
2022-11-16 13:50:36,353 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-16 13:50:37,259 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-16 13:50:37,293 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-16T13:50:37.293113
2022-11-16 13:50:37,443 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 0ms
2022-11-16 13:50:37,444 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 1ms
2022-11-16 13:50:37,448 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 4ms
2022-11-16 13:50:37,449 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 5ms
2022-11-16 13:50:37,449 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-16 13:50:37,486 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-16 13:50:37,487 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-16 13:50:37,487 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 38ms
2022-11-16 13:50:37,488 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-16T13:50:37.488557600
2022-11-16 13:50:37,544 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-16 13:50:37,562 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-16 13:50:37,562 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-16 13:50:37,563 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-16 13:50:37,618 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-16 13:50:37,736 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-16] monitorSessionUtil 创建成功!
2022-11-16 13:50:37,736 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-16 13:50:37,884 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-16 13:50:37,884 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-16 13:50:37,986 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-16 13:50:38,296 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] domain: 10.132.191.3 port:8314
2022-11-16 13:50:38,741 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-16 13:50:38,741 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-16 13:50:38,742 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-16 13:50:38,742 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-16 13:50:38,742 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-16 13:50:38,743 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-16 13:50:38,743 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-16 13:50:38,743 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-16 13:50:38,743 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-16 13:50:38,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-16 13:50:38,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-16 13:50:38,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-16 13:50:38,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-16 13:50:38,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-16 13:50:38,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台
2022-11-16 13:50:38,746 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-16 13:50:38,747 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-16 13:51:00,002 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-16 14:31:37,819 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-16T14:31:37.817809800
2022-11-16 14:31:37,845 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-16 14:31:40,038 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 2455 ms, time limit is 2000 ms
2022-11-16 14:31:41,040 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 3456 ms, time limit is 2000 ms
2022-11-16 14:31:42,039 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 4456 ms, time limit is 2000 ms
2022-11-16 14:31:42,269 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-16 14:31:42,318 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-16T14:31:42.318776
2022-11-16 14:31:42,622 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 1ms
2022-11-16 14:31:42,622 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-16 14:31:42,627 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 5ms
2022-11-16 14:31:42,627 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 5ms
2022-11-16 14:31:42,627 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-16 14:31:42,675 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-16 14:31:42,676 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-16 14:31:42,676 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_organization' differs only in name: in db sys_organization_org_id -> in mapping sys_organization_org_id_unique
2022-11-16 14:31:42,676 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 48ms
2022-11-16 14:31:42,677 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-16T14:31:42.677816600
2022-11-16 14:31:42,815 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-16 14:31:42,833 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-16 14:31:42,833 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-16 14:31:42,834 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-16 14:31:42,953 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-16 14:31:43,004 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-21] monitorSessionUtil 创建成功!
2022-11-16 14:31:43,005 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-16 14:31:43,166 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-16 14:31:43,166 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-16 14:31:43,166 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-16 14:31:43,166 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-16 14:31:43,392 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-21] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-16 14:31:43,396 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-21] domain: 10.132.191.3 port:8314
2022-11-16 14:31:43,454 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-16 14:31:43,454 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-16 14:31:43,454 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-16 14:31:43,454 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-16 14:31:43,456 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-16 14:31:43,456 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-16 14:31:43,456 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-16 14:31:43,456 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-16 14:31:43,456 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-16 14:31:43,457 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-16 14:31:43,457 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-16 14:31:43,457 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-16 14:31:43,458 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-16 14:31:43,459 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-16 14:31:43,460 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-16 14:31:43,460 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-16 14:31:43,460 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-16 14:31:43,460 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-16 14:32:04,512 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-21] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-16 14:45:02,640 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-16T14:45:02.639073500
2022-11-16 14:45:02,680 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-16 14:45:03,225 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-16 14:45:03,373 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-16T14:45:03.373111100
2022-11-16 14:45:03,774 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 0ms
2022-11-16 14:45:03,774 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-16 14:45:03,785 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 11ms
2022-11-16 14:45:03,786 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 12ms
2022-11-16 14:45:03,786 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-16 14:45:03,831 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-16 14:45:03,832 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-16 14:45:03,832 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_organization' differs only in name: in db sys_organization_org_id -> in mapping sys_organization_org_id_unique
2022-11-16 14:45:03,832 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 46ms
2022-11-16 14:45:03,832 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-16T14:45:03.832882
2022-11-16 14:45:03,984 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-16 14:45:04,002 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-16 14:45:04,002 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-16 14:45:04,003 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-16 14:45:04,138 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-16 14:45:04,376 INFO [com.hisense.dahua_video.verticle.OrganizationVerticle]-[vert.x-eventloop-thread-17] devicesManagerUtil 创建成功!
2022-11-16 14:45:04,389 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-16] monitorSessionUtil 创建成功!
2022-11-16 14:45:04,390 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-16 14:45:04,390 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 OrganizationVerticle 成功!
2022-11-16 14:45:04,801 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-16 14:45:04,801 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-16 14:45:04,801 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-16 14:45:05,401 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-16 14:45:05,420 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] domain: 10.132.191.3 port:8314
2022-11-16 14:45:05,582 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-16 14:45:05,582 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-16 14:45:05,582 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-16 14:45:05,584 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-16 14:45:05,584 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-16 14:45:05,584 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-16 14:45:05,584 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-16 14:45:05,584 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-16 14:45:05,584 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-16 14:45:05,585 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-16 14:45:05,585 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-16 14:45:05,587 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-16 14:45:05,587 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-16 14:45:05,588 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-16 14:45:05,589 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-16 14:45:05,589 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-16 14:45:05,589 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-16 14:45:26,918 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-16 18:15:05,563 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-16T18:15:05.562863900
2022-11-16 18:15:05,625 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-16 18:15:06,666 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-16 18:15:06,862 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-16T18:15:06.862389200
2022-11-16 18:15:07,658 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 2401 ms, time limit is 2000 ms
2022-11-16 18:15:07,886 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 0ms
2022-11-16 18:15:07,887 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-16 18:15:07,902 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 15ms
2022-11-16 18:15:07,903 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 16ms
2022-11-16 18:15:07,903 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-16 18:15:07,970 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-16 18:15:07,971 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-16 18:15:07,971 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_organization' differs only in name: in db sys_organization_org_id -> in mapping sys_organization_org_id_unique
2022-11-16 18:15:07,971 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 68ms
2022-11-16 18:15:07,972 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-16T18:15:07.971423800
2022-11-16 18:15:08,040 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-16 18:15:08,071 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-16 18:15:08,071 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-16 18:15:08,072 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-16 18:15:08,207 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-16 18:15:08,350 INFO [com.hisense.dahua_video.verticle.OrganizationVerticle]-[vert.x-eventloop-thread-18] devicesManagerUtil 创建成功!
2022-11-16 18:15:08,350 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-17] monitorSessionUtil 创建成功!
2022-11-16 18:15:08,351 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-16 18:15:08,351 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 OrganizationVerticle 成功!
2022-11-16 18:15:08,517 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-16 18:15:08,517 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-16 18:15:08,517 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-16 18:15:08,517 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-16 18:15:08,581 INFO [com.hisense.dahua_video.dao.MonitorUserTokenDao]-[vert.x-eventloop-thread-13] [{"token":"6141653985001472_f1cf78dad5fc68ff6d416a82511964cd840983c41c81eb62e591a8a57af10794ab48f7a0dd21335eafa766444ddc919605056e632ad9c2854ac93eb416382a3a","update_time":"2022-11-16 10:20:42.291","userName":"ynszdz"}]
2022-11-16 18:15:09,080 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-17] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-16 18:15:09,084 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-17] domain: 10.132.191.3 port:8314
2022-11-16 18:15:09,289 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-16 18:15:09,289 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-16 18:15:09,289 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-16 18:15:09,289 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-16 18:15:09,291 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-16 18:15:09,291 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-16 18:15:09,291 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-16 18:15:09,291 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-16 18:15:09,291 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-16 18:15:09,292 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-16 18:15:09,292 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-16 18:15:09,292 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-16 18:15:09,294 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-16 18:15:09,294 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-16 18:15:09,295 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-16 18:15:09,295 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-16 18:15:09,295 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台
2022-11-16 18:15:09,295 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-16 18:15:09,295 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-16 18:15:09,295 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-16 18:15:09,296 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-16 18:15:09,296 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-16 18:15:09,296 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-16 18:15:09,296 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-16 18:15:09,296 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-16 18:15:09,296 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-16 18:15:09,296 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-16 18:15:09,296 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-16 18:15:09,296 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-16 18:17:46,627 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-16T18:17:46.626268400
2022-11-16 18:17:46,647 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-16 18:17:46,836 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-16 18:17:46,862 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-16T18:17:46.862636300
2022-11-16 18:17:46,969 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 0ms
2022-11-16 18:17:46,969 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-16 18:17:46,974 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 4ms
2022-11-16 18:17:46,975 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 5ms
2022-11-16 18:17:46,975 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-16 18:17:47,013 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-16 18:17:47,014 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-16 18:17:47,014 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_organization' differs only in name: in db sys_organization_org_id -> in mapping sys_organization_org_id_unique
2022-11-16 18:17:47,014 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 39ms
2022-11-16 18:17:47,015 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-16T18:17:47.014231400
2022-11-16 18:17:47,073 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-16 18:17:47,091 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-16 18:17:47,091 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-16 18:17:47,091 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-16 18:17:47,196 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-16 18:17:47,343 INFO [com.hisense.dahua_video.verticle.OrganizationVerticle]-[vert.x-eventloop-thread-17] devicesManagerUtil 创建成功!
2022-11-16 18:17:47,343 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-19] monitorSessionUtil 创建成功!
2022-11-16 18:17:47,343 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-16 18:17:47,344 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 OrganizationVerticle 成功!
2022-11-16 18:17:47,543 INFO [com.hisense.dahua_video.dao.MonitorUserTokenDao]-[vert.x-eventloop-thread-2] 有效token[{"token":"6141653985001472_f1cf78dad5fc68ff6d416a82511964cd840983c41c81eb62e591a8a57af10794ab48f7a0dd21335eafa766444ddc919605056e632ad9c2854ac93eb416382a3a","update_time":"2022-11-16 10:20:42.291","userName":"ynszdz"}]
2022-11-16 18:17:47,544 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-16 18:17:47,621 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-19] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-16 18:17:47,625 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-19] domain: 10.132.191.3 port:8314
2022-11-16 18:17:47,739 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台
2022-11-16 18:17:47,741 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-16 18:17:47,741 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-16 18:17:47,741 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-16 18:17:47,741 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-16 18:17:47,741 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-16 18:17:47,742 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-16 18:17:47,742 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-16 18:17:47,742 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-16 18:17:47,742 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-16 18:17:47,742 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-16 18:17:47,743 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-16 18:17:47,744 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-16 18:17:47,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-16 18:17:47,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-16 18:17:47,745 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-16 18:17:47,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-16 18:17:47,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-16 18:17:47,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-16 18:17:47,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-16 18:17:47,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-16 18:17:47,745 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-16 18:18:08,782 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-19] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-16 19:41:46,615 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-16T19:41:46.614685200
2022-11-16 19:41:46,681 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-16 19:41:48,529 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 2311 ms, time limit is 2000 ms
2022-11-16 19:41:49,530 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 3312 ms, time limit is 2000 ms
2022-11-16 19:41:50,530 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 4312 ms, time limit is 2000 ms
2022-11-16 19:41:51,530 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 5312 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.lang.ClassLoader$NativeLibrary.load0(Native Method) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487) ~[?:?]
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684) ~[?:?]
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617) ~[?:?]
at java.lang.Runtime.load0(Runtime.java:765) ~[?:?]
at java.lang.System.load(System.java:1835) ~[?:?]
at org.sqlite.SQLiteJDBCLoader.loadNativeLibrary(SQLiteJDBCLoader.java:280) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.extractAndLoadLibraryFile(SQLiteJDBCLoader.java:237) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:350) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:68) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.core.NativeDB.load(NativeDB.java:63) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:278) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:65) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:28) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:19) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.JDBC.createConnection(JDBC.java:104) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.JDBC.connect(JDBC.java:77) ~[sqlite-jdbc-3.39.4.0.jar:?]
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81) ~[HikariCP-4.0.3.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:152) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:50) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$$Lambda$172/0x00000001002b0040.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl$$Lambda$180/0x00000001002b7c40.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase$$Lambda$160/0x00000001002a8840.run(Unknown Source) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
2022-11-16 19:41:52,530 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 6313 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.lang.ClassLoader$NativeLibrary.load0(Native Method) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487) ~[?:?]
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684) ~[?:?]
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617) ~[?:?]
at java.lang.Runtime.load0(Runtime.java:765) ~[?:?]
at java.lang.System.load(System.java:1835) ~[?:?]
at org.sqlite.SQLiteJDBCLoader.loadNativeLibrary(SQLiteJDBCLoader.java:280) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.extractAndLoadLibraryFile(SQLiteJDBCLoader.java:237) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:350) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:68) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.core.NativeDB.load(NativeDB.java:63) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:278) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:65) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:28) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:19) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.JDBC.createConnection(JDBC.java:104) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.JDBC.connect(JDBC.java:77) ~[sqlite-jdbc-3.39.4.0.jar:?]
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81) ~[HikariCP-4.0.3.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:152) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:50) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$$Lambda$172/0x00000001002b0040.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl$$Lambda$180/0x00000001002b7c40.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase$$Lambda$160/0x00000001002a8840.run(Unknown Source) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
2022-11-16 19:41:53,531 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 7313 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.lang.ClassLoader$NativeLibrary.load0(Native Method) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487) ~[?:?]
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684) ~[?:?]
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617) ~[?:?]
at java.lang.Runtime.load0(Runtime.java:765) ~[?:?]
at java.lang.System.load(System.java:1835) ~[?:?]
at org.sqlite.SQLiteJDBCLoader.loadNativeLibrary(SQLiteJDBCLoader.java:280) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.extractAndLoadLibraryFile(SQLiteJDBCLoader.java:237) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:350) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:68) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.core.NativeDB.load(NativeDB.java:63) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:278) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:65) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:28) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:19) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.JDBC.createConnection(JDBC.java:104) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.JDBC.connect(JDBC.java:77) ~[sqlite-jdbc-3.39.4.0.jar:?]
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81) ~[HikariCP-4.0.3.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:152) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:50) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$$Lambda$172/0x00000001002b0040.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl$$Lambda$180/0x00000001002b7c40.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase$$Lambda$160/0x00000001002a8840.run(Unknown Source) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
2022-11-16 19:41:54,531 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 8313 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.lang.ClassLoader$NativeLibrary.load0(Native Method) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487) ~[?:?]
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684) ~[?:?]
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617) ~[?:?]
at java.lang.Runtime.load0(Runtime.java:765) ~[?:?]
at java.lang.System.load(System.java:1835) ~[?:?]
at org.sqlite.SQLiteJDBCLoader.loadNativeLibrary(SQLiteJDBCLoader.java:280) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.extractAndLoadLibraryFile(SQLiteJDBCLoader.java:237) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:350) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:68) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.core.NativeDB.load(NativeDB.java:63) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:278) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:65) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:28) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:19) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.JDBC.createConnection(JDBC.java:104) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.JDBC.connect(JDBC.java:77) ~[sqlite-jdbc-3.39.4.0.jar:?]
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81) ~[HikariCP-4.0.3.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:152) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:50) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$$Lambda$172/0x00000001002b0040.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl$$Lambda$180/0x00000001002b7c40.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase$$Lambda$160/0x00000001002a8840.run(Unknown Source) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
2022-11-16 19:41:55,169 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-16 19:41:55,447 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-16T19:41:55.447073600
2022-11-16 19:41:55,550 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 9314 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.lang.ClassLoader.defineClass2(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1108) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:206) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:759) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassInModuleOrNull(BuiltinClassLoader.java:680) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:605) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:640) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:609) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
at com.zaxxer.hikari.pool.PoolEntry.createProxyConnection(PoolEntry.java:102) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:192) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:162) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100) ~[HikariCP-4.0.3.jar:?]
at org.jetbrains.exposed.sql.Database$Companion$connect$3.invoke(Database.kt:141) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Database$Companion$connect$3.invoke(Database.kt:138) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Database$Companion$doConnect$3.invoke(Database.kt:126) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Database$Companion$doConnect$3.invoke(Database.kt:127) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Database.metadata$exposed_core(Database.kt:31) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Database$vendor$2.invoke(Database.kt:44) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Database$vendor$2.invoke(Database.kt:43) ~[exposed-core-0.40.1.jar:?]
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) ~[kotlin-stdlib-1.7.20.jar:1.7.20-release-201(1.7.20)]
at org.jetbrains.exposed.sql.Database.getVendor(Database.kt:43) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Database$dialect$2.invoke(Database.kt:48) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Database$dialect$2.invoke(Database.kt:47) ~[exposed-core-0.40.1.jar:?]
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) ~[kotlin-stdlib-1.7.20.jar:1.7.20-release-201(1.7.20)]
at org.jetbrains.exposed.sql.Database.getDialect(Database.kt:47) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Database$Companion.getDefaultIsolationLevel(Database.kt:209) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManager.getDefaultIsolationLevel(ThreadLocalTransactionManager.kt:28) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:147) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:145) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:155) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:50) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$$Lambda$172/0x00000001002b0040.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl$$Lambda$180/0x00000001002b7c40.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase$$Lambda$160/0x00000001002a8840.run(Unknown Source) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
2022-11-16 19:41:56,106 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 0ms
2022-11-16 19:41:56,106 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-16 19:41:56,110 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 4ms
2022-11-16 19:41:56,111 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 5ms
2022-11-16 19:41:56,111 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-16 19:41:56,162 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-16 19:41:56,164 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-16 19:41:56,165 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_organization' differs only in name: in db sys_organization_org_id -> in mapping sys_organization_org_id_unique
2022-11-16 19:41:56,165 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 54ms
2022-11-16 19:41:56,165 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-16T19:41:56.165153500
2022-11-16 19:41:56,378 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-16 19:41:56,408 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-16 19:41:56,408 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-16 19:41:56,409 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-16 19:41:56,572 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-16 19:41:56,532 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 10314 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at sun.nio.ch.WindowsSelectorImpl.setWakeupSocket0(Native Method) ~[?:?]
at sun.nio.ch.WindowsSelectorImpl.setWakeupSocket(WindowsSelectorImpl.java:504) ~[?:?]
at sun.nio.ch.WindowsSelectorImpl.wakeup(WindowsSelectorImpl.java:625) ~[?:?]
at io.netty.channel.nio.SelectedSelectionKeySetSelector.wakeup(SelectedSelectionKeySetSelector.java:73) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.wakeup(NioEventLoop.java:853) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:857) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:827) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:817) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.vertx.core.impl.EventLoopContext.runOnContext(EventLoopContext.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.ContextBase.runOnContext(ContextBase.java:218) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.DeploymentManager.doDeploy(DeploymentManager.java:191) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.DeploymentManager.doDeploy(DeploymentManager.java:167) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.DeploymentManager.deployVerticle(DeploymentManager.java:72) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.VertxImpl.deployVerticle(VertxImpl.java:708) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.VertxImpl.deployVerticle(VertxImpl.java:688) ~[vertx-core-4.3.4.jar:4.3.4]
at com.hisense.dahua_video.MainVerticle.deployVerticles(MainVerticle.kt:120) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:74) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$$Lambda$172/0x00000001002b0040.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl$$Lambda$180/0x00000001002b7c40.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase$$Lambda$160/0x00000001002a8840.run(Unknown Source) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
2022-11-16 19:41:56,967 INFO [com.hisense.dahua_video.verticle.OrganizationVerticle]-[vert.x-eventloop-thread-16] devicesManagerUtil 创建成功!
2022-11-16 19:41:56,967 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-17] monitorSessionUtil 创建成功!
2022-11-16 19:41:56,968 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-16 19:41:56,968 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 OrganizationVerticle 成功!
2022-11-16 19:41:57,535 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-16 19:41:57,535 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-16 19:41:58,044 INFO [com.hisense.dahua_video.dao.MonitorUserTokenDao]-[vert.x-eventloop-thread-2] 有效token[]
2022-11-16 19:41:58,138 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-17] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-16 19:41:58,141 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-17] domain: 10.132.191.3 port:8314
2022-11-16 19:41:58,910 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-16 19:41:58,910 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-16 19:41:58,911 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-16 19:41:58,911 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-16 19:41:58,912 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-16 19:41:58,912 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-16 19:41:58,912 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-16 19:41:58,912 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-16 19:41:58,913 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-16 19:41:58,913 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-16 19:41:58,913 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-16 19:41:58,913 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-16 19:41:58,913 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-16 19:41:58,913 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-16 19:41:58,914 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-16 19:41:58,914 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-16 19:41:58,914 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-16 19:41:58,914 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-16 19:41:58,914 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-16 19:41:58,914 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-16 19:41:58,915 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台

390
logs/app.log.20221117-1 Normal file
View File

@ -0,0 +1,390 @@
2022-11-17 17:30:57,217 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-17T17:30:57.216725700
2022-11-17 17:30:57,259 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-17 17:30:59,461 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 2464 ms, time limit is 2000 ms
2022-11-17 17:31:00,462 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 3464 ms, time limit is 2000 ms
2022-11-17 17:31:00,623 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-17 17:31:01,462 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 4465 ms, time limit is 2000 ms
2022-11-17 17:31:02,092 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-17T17:31:02.092679800
2022-11-17 17:31:02,462 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 5465 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.io.RandomAccessFile.readBytes(Native Method) ~[?:?]
at java.io.RandomAccessFile.read(RandomAccessFile.java:407) ~[?:?]
at java.util.zip.ZipFile$Source.readAt(ZipFile.java:1343) ~[?:?]
at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:1021) ~[?:?]
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:469) ~[?:?]
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:159) ~[?:?]
at jdk.internal.loader.Resource.getBytes(Resource.java:124) ~[?:?]
at jdk.internal.loader.URLClassPath$JarLoader$2.getBytes(URLClassPath.java:884) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:797) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcDatabaseMetadataImpl.tableNamesFor(JdbcDatabaseMetadataImpl.kt:100) ~[exposed-jdbc-0.40.1.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcDatabaseMetadataImpl.access$tableNamesFor(JdbcDatabaseMetadataImpl.kt:18) ~[exposed-jdbc-0.40.1.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcDatabaseMetadataImpl$tableNames$1.invoke(JdbcDatabaseMetadataImpl.kt:95) ~[exposed-jdbc-0.40.1.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcDatabaseMetadataImpl$tableNames$1.invoke(JdbcDatabaseMetadataImpl.kt:94) ~[exposed-jdbc-0.40.1.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcDatabaseMetadataImpl$CachableMapWithDefault.get(JdbcDatabaseMetadataImpl.kt:87) ~[exposed-jdbc-0.40.1.jar:?]
at kotlin.collections.MapsKt__MapWithDefaultKt.getOrImplicitDefaultNullable(MapWithDefault.kt:105) ~[kotlin-stdlib-1.7.20.jar:1.7.20-release-201(1.7.20)]
at kotlin.collections.MapsKt__MapsKt.getValue(Maps.kt:348) ~[kotlin-stdlib-1.7.20.jar:1.7.20-release-201(1.7.20)]
at org.jetbrains.exposed.sql.vendors.VendorDialect.tableExists(Default.kt:760) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.QueriesKt.exists(Queries.kt:238) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createStatements(SchemaUtils.kt:96) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.create(SchemaUtils.kt:258) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.create$default(SchemaUtils.kt:256) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:157) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:155) ~[classes/:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:214) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:240) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:239) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:189) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:159) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:146) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:145) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:155) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:50) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$$Lambda$172/0x00000001002b0040.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl$$Lambda$180/0x00000001002b7c40.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase$$Lambda$160/0x00000001002a8840.run(Unknown Source) ~[?:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
2022-11-17 17:31:02,689 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 1ms
2022-11-17 17:31:02,689 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-17 17:31:02,698 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 8ms
2022-11-17 17:31:02,699 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 9ms
2022-11-17 17:31:02,699 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-17 17:31:02,742 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-17 17:31:02,743 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-17 17:31:02,744 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_organization' differs only in name: in db sys_organization_org_id -> in mapping sys_organization_org_id_unique
2022-11-17 17:31:02,744 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 45ms
2022-11-17 17:31:02,744 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-17T17:31:02.744934600
2022-11-17 17:31:02,798 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-17 17:31:02,839 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-17 17:31:02,839 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-17 17:31:02,839 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-17 17:31:03,347 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-16] monitorSessionUtil 创建成功!
2022-11-17 17:31:03,348 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-17 17:31:03,348 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 OrganizationVerticle 成功!
2022-11-17 17:31:03,444 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-17 17:31:03,554 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-17 17:31:03,554 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-17 17:31:03,554 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-17 17:31:03,554 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-17 17:31:04,145 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-17 17:31:04,149 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] domain: 10.132.191.3 port:8314
2022-11-17 17:31:04,278 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-17 17:31:04,278 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-17 17:31:04,278 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-17 17:31:04,278 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-17 17:31:04,280 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-17 17:31:04,280 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-17 17:31:04,280 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-17 17:31:04,280 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-17 17:31:04,281 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-17 17:31:04,281 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-17 17:31:04,281 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-17 17:31:04,282 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-17 17:31:04,282 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-17 17:31:04,282 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-17 17:31:04,282 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-17 17:31:04,282 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-17 17:31:04,282 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-17 17:31:04,282 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-17 17:31:04,283 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-17 17:31:04,283 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-17 17:31:04,283 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-17 17:31:04,283 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-17 17:31:04,283 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-17 17:31:04,283 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-17 17:31:04,283 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-17 17:31:04,284 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台
2022-11-17 17:31:04,284 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-17 17:31:04,284 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-17 17:31:04,284 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-17 17:31:25,468 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-17 17:36:31,146 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-17T17:36:31.144833
2022-11-17 17:36:31,214 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-17 17:36:31,406 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-17 17:36:31,412 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-17T17:36:31.412117800
2022-11-17 17:36:31,744 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 1ms
2022-11-17 17:36:31,745 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-17 17:36:31,757 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 11ms
2022-11-17 17:36:31,758 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 13ms
2022-11-17 17:36:31,758 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-17 17:36:31,819 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-17 17:36:31,820 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-17 17:36:31,821 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_organization' differs only in name: in db sys_organization_org_id -> in mapping sys_organization_org_id_unique
2022-11-17 17:36:31,821 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 63ms
2022-11-17 17:36:31,821 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-17T17:36:31.821032200
2022-11-17 17:36:31,868 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-17 17:36:31,886 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-17 17:36:31,887 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-17 17:36:31,887 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-17 17:36:32,163 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-24] monitorSessionUtil 创建成功!
2022-11-17 17:36:32,164 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-17 17:36:32,164 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 OrganizationVerticle 成功!
2022-11-17 17:36:32,203 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-17 17:36:32,300 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-17 17:36:32,492 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-24] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-17 17:36:32,496 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-24] domain: 10.132.191.3 port:8314
2022-11-17 17:36:32,788 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-17 17:36:32,789 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-17 17:36:32,789 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-17 17:36:32,789 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-17 17:36:32,789 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-17 17:36:32,789 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-17 17:36:32,790 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-17 17:36:32,790 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-17 17:36:32,790 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-17 17:36:32,790 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-17 17:36:32,791 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-17 17:36:32,791 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-17 17:36:32,790 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-17 17:36:32,791 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-17 17:36:32,791 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-17 17:36:32,792 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-17 17:36:32,792 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-17 17:36:32,792 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-17 17:36:32,792 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-17 17:36:32,792 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-17 17:36:32,792 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台
2022-11-17 17:36:32,793 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-17 17:36:53,874 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-24] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-17 17:48:13,468 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-17T17:48:13.466077500
2022-11-17 17:48:13,535 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-17 17:48:13,733 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-17 17:48:13,740 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-17T17:48:13.740377900
2022-11-17 17:48:13,872 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 0ms
2022-11-17 17:48:13,873 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-17 17:48:13,879 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 5ms
2022-11-17 17:48:13,879 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 5ms
2022-11-17 17:48:13,879 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-17 17:48:13,949 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-17 17:48:13,954 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-17 17:48:13,954 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_organization' differs only in name: in db sys_organization_org_id -> in mapping sys_organization_org_id_unique
2022-11-17 17:48:13,955 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 75ms
2022-11-17 17:48:13,955 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-17T17:48:13.955767600
2022-11-17 17:48:14,016 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-17 17:48:14,035 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-17 17:48:14,035 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-17 17:48:14,035 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-17 17:48:14,336 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-16] monitorSessionUtil 创建成功!
2022-11-17 17:48:14,337 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-17 17:48:14,337 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 OrganizationVerticle 成功!
2022-11-17 17:48:14,346 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-17 17:48:14,446 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-17 17:48:14,446 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-17 17:48:14,446 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-17 17:48:14,446 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-17 17:48:14,446 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-17 17:48:14,446 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-17 17:48:14,446 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-17 17:48:14,446 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-17 17:48:14,604 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-17 17:48:14,608 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] domain: 10.132.191.3 port:8314
2022-11-17 17:48:14,887 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-17 17:48:14,887 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-17 17:48:14,887 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-17 17:48:14,887 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-17 17:48:14,887 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-17 17:48:14,887 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-17 17:48:14,887 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-17 17:48:14,887 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台
2022-11-17 17:48:14,889 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-17 17:48:14,889 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-17 17:48:14,889 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-17 17:48:14,889 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-17 17:48:14,890 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-17 17:48:14,890 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-17 17:48:14,891 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-17 17:48:14,892 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-17 17:48:25,756 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:48:35,955 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-16] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
2022-11-17 17:50:16,982 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:21,546 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:22,293 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:22,902 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:23,491 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:24,055 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:24,601 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:25,289 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:25,977 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:26,606 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:27,151 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:27,719 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:28,173 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:28,665 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:29,261 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:29,877 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:50:30,439 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:57:36,224 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:57:45,993 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:57:54,553 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:57:57,985 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:58:00,441 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 17:58:02,450 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:36,673 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:39,177 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:46,102 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:46,873 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:47,679 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:48,497 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:49,209 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:49,948 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:51,433 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:52,116 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:52,702 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:53,184 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:03:53,737 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:10:21,093 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:10:24,737 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:13,736 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:17,336 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:26,546 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:28,977 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:31,105 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:33,111 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:34,928 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:37,456 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:39,648 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:42,656 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:44,424 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:45,717 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:46,745 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:47,397 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:47,955 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:48,555 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:50,743 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:51,887 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:52,868 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:54,288 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:54,897 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:55,464 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:11:56,061 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:05,537 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:10,229 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:34,698 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:42,922 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:44,361 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:45,441 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:46,264 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:46,937 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:51,201 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:51,818 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:52,267 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:52,693 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:53,124 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:57,515 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:58,560 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:19:59,185 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:20:50,756 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:26:54,825 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:26:56,896 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:26:58,263 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:26:58,999 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:26:59,532 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:27:00,023 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:27:00,537 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:27:01,052 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:27:01,757 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:27:02,375 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}
2022-11-17 18:27:03,937 INFO [com.hisense.dahua_video.dao.SysUserDao]-[vert.x-eventloop-thread-9] checkLogin:{"userName":"liwen","password":"password"}

369
logs/app.log.20221118-1 Normal file
View File

@ -0,0 +1,369 @@
2022-11-18 16:16:16,528 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-18T16:16:16.527701600
2022-11-18 16:16:16,582 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-18 16:16:17,993 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-18 16:16:18,055 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-18T16:16:18.055891600
2022-11-18 16:16:18,155 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 1ms
2022-11-18 16:16:18,155 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-18 16:16:18,161 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 5ms
2022-11-18 16:16:18,166 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 10ms
2022-11-18 16:16:18,173 WARN [Exposed]-[vert.x-eventloop-thread-1] Transaction attempt #0 failed: java.sql.SQLException: Query returns results. Statement(s): ALTER TABLE sys_device ADD device_id TEXT NOT NULL
org.jetbrains.exposed.exceptions.ExposedSQLException: java.sql.SQLException: Query returns results
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:64) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:140) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:126) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:108) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:94) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec$default(Transaction.kt:93) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.execStatements(SchemaUtils.kt:251) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns(SchemaUtils.kt:321) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns$default(SchemaUtils.kt:306) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:160) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:157) ~[classes/:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:214) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:240) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:239) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:189) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:159) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:146) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:145) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:157) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:51) ~[classes/:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.sql.SQLException: Query returns results
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeLargeUpdate(JDBC3PreparedStatement.java:106) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:98) ~[sqlite-jdbc-3.39.4.0.jar:?]
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeUpdate(JdbcPreparedStatementImpl.kt:26) ~[exposed-jdbc-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction$exec$2.executeInternal(Transaction.kt:113) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:62) ~[exposed-core-0.40.1.jar:?]
... 58 more
2022-11-18 16:16:18,185 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 0ms
2022-11-18 16:16:18,185 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-18 16:16:18,187 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 2ms
2022-11-18 16:16:18,188 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 3ms
2022-11-18 16:16:18,188 WARN [Exposed]-[vert.x-eventloop-thread-1] Transaction attempt #1 failed: java.sql.SQLException: Query returns results. Statement(s): ALTER TABLE sys_device ADD device_id TEXT NOT NULL
org.jetbrains.exposed.exceptions.ExposedSQLException: java.sql.SQLException: Query returns results
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:64) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:140) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:126) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:108) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:94) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec$default(Transaction.kt:93) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.execStatements(SchemaUtils.kt:251) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns(SchemaUtils.kt:321) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns$default(SchemaUtils.kt:306) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:160) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:157) ~[classes/:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:214) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:240) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:239) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:189) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:159) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:146) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:145) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:157) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:51) ~[classes/:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.sql.SQLException: Query returns results
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeLargeUpdate(JDBC3PreparedStatement.java:106) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:98) ~[sqlite-jdbc-3.39.4.0.jar:?]
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeUpdate(JdbcPreparedStatementImpl.kt:26) ~[exposed-jdbc-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction$exec$2.executeInternal(Transaction.kt:113) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:62) ~[exposed-core-0.40.1.jar:?]
... 58 more
2022-11-18 16:16:18,190 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 1ms
2022-11-18 16:16:18,190 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-18 16:16:18,192 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 2ms
2022-11-18 16:16:18,192 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 2ms
2022-11-18 16:16:18,192 WARN [Exposed]-[vert.x-eventloop-thread-1] Transaction attempt #2 failed: java.sql.SQLException: Query returns results. Statement(s): ALTER TABLE sys_device ADD device_id TEXT NOT NULL
org.jetbrains.exposed.exceptions.ExposedSQLException: java.sql.SQLException: Query returns results
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:64) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:140) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:126) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:108) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:94) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec$default(Transaction.kt:93) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.execStatements(SchemaUtils.kt:251) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns(SchemaUtils.kt:321) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns$default(SchemaUtils.kt:306) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:160) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:157) ~[classes/:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:214) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:240) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:239) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:189) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:159) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:146) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:145) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:157) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:51) ~[classes/:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.sql.SQLException: Query returns results
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeLargeUpdate(JDBC3PreparedStatement.java:106) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:98) ~[sqlite-jdbc-3.39.4.0.jar:?]
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeUpdate(JdbcPreparedStatementImpl.kt:26) ~[exposed-jdbc-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction$exec$2.executeInternal(Transaction.kt:113) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:62) ~[exposed-core-0.40.1.jar:?]
... 58 more
2022-11-18 16:16:18,193 ERROR [io.vertx.core.impl.ContextBase]-[vert.x-eventloop-thread-1] Unhandled exception
org.jetbrains.exposed.exceptions.ExposedSQLException: java.sql.SQLException: Query returns results
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:64) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:140) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:126) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:108) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:94) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction.exec$default(Transaction.kt:93) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.execStatements(SchemaUtils.kt:251) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns(SchemaUtils.kt:321) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.SchemaUtils.createMissingTablesAndColumns$default(SchemaUtils.kt:306) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:160) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle$exposed$1.invoke(MainVerticle.kt:157) ~[classes/:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:214) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:240) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:239) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:189) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:248) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:159) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:146) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:145) ~[exposed-core-0.40.1.jar:?]
at com.hisense.dahua_video.MainVerticle.exposed(MainVerticle.kt:157) ~[classes/:?]
at com.hisense.dahua_video.MainVerticle.start$lambda$4(MainVerticle.kt:51) ~[classes/:?]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.trySucceed(CompositeFutureImpl.java:163) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.CompositeFutureImpl.lambda$all$0(CompositeFutureImpl.java:38) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.SucceededFuture.addListener(SucceededFuture.java:88) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition$1.onSuccess(Composition.java:62) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl.addListener(FutureImpl.java:196) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.PromiseImpl.addListener(PromiseImpl.java:23) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:43) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureImpl$ListenerArray.onSuccess(FutureImpl.java:262) ~[vertx-core-4.3.4.jar:4.3.4]
at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54) ~[vertx-core-4.3.4.jar:4.3.4]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.sql.SQLException: Query returns results
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeLargeUpdate(JDBC3PreparedStatement.java:106) ~[sqlite-jdbc-3.39.4.0.jar:?]
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:98) ~[sqlite-jdbc-3.39.4.0.jar:?]
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-4.0.3.jar:?]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:?]
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeUpdate(JdbcPreparedStatementImpl.kt:26) ~[exposed-jdbc-0.40.1.jar:?]
at org.jetbrains.exposed.sql.Transaction$exec$2.executeInternal(Transaction.kt:113) ~[exposed-core-0.40.1.jar:?]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:62) ~[exposed-core-0.40.1.jar:?]
... 58 more
2022-11-18 16:17:33,061 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 开始创表2022-11-18T16:17:33.055055800
2022-11-18 16:17:33,109 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Starting...
2022-11-18 16:17:33,610 INFO [com.zaxxer.hikari.HikariDataSource]-[vert.x-eventloop-thread-1] HikariPool-1 - Start completed.
2022-11-18 16:17:33,692 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 连接完成2022-11-18T16:17:33.690195600
2022-11-18 16:17:34,603 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing create tables statements took 0ms
2022-11-18 16:17:34,603 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing create tables statements took 0ms
2022-11-18 16:17:34,618 INFO [Exposed]-[vert.x-eventloop-thread-1] Extracting table columns took 14ms
2022-11-18 16:17:34,618 INFO [Exposed]-[vert.x-eventloop-thread-1] Preparing alter table statements took 15ms
2022-11-18 16:17:34,618 INFO [Exposed]-[vert.x-eventloop-thread-1] Executing alter table statements took 0ms
2022-11-18 16:17:34,665 WARN [io.vertx.core.impl.BlockedThreadChecker]-[vertx-blocked-thread-checker] Thread Thread[vert.x-eventloop-thread-1,5,main] has been blocked for 2528 ms, time limit is 2000 ms
2022-11-18 16:17:34,666 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_monitor_user' differs only in name: in db sys_monitor_user_userName -> in mapping sys_monitor_user_userName_unique
2022-11-18 16:17:34,681 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_user' differs only in name: in db sys_user_userName -> in mapping sys_user_userName_unique
2022-11-18 16:17:34,681 INFO [Exposed]-[vert.x-eventloop-thread-1] Index on table 'sys_organization' differs only in name: in db sys_organization_org_id -> in mapping sys_organization_org_id_unique
2022-11-18 16:17:34,682 INFO [Exposed]-[vert.x-eventloop-thread-1] Checking mapping consistence took 63ms
2022-11-18 16:17:34,682 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 创表成功2022-11-18T16:17:34.682274800
2022-11-18 16:17:34,740 WARN [io.vertx.core.impl.VertxImpl]-[vert.x-eventloop-thread-1] You're already on a Vert.x context, are you sure you want to create a new Vertx instance?
2022-11-18 16:17:34,778 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 无集群配置,进行单节点部署!
2022-11-18 16:17:34,779 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] vertx.isNativeTransportEnabled:false
2022-11-18 16:17:34,779 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-1] 截图根目录:/mnts/record/\
2022-11-18 16:17:35,219 INFO [com.hisense.dahua_video.verticle.MonitorVerticle]-[vert.x-eventloop-thread-17] monitorSessionUtil 创建成功!
2022-11-18 16:17:35,220 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 MonitorVerticle 成功!
2022-11-18 16:17:35,220 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 OrganizationVerticle 成功!
2022-11-18 16:17:35,328 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 SqlFactoryVerticle 成功!
2022-11-18 16:17:35,682 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] http 服务监听端口: 8883
2022-11-18 16:17:35,716 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-17] authorize:{"userName":"ynszdz","password":"Admin@123","monitorDomain":"http://10.132.191.3:8314","id":1}
2022-11-18 16:17:35,720 INFO [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-17] domain: 10.132.191.3 port:8314
2022-11-18 16:17:36,659 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-10] 开放管理员后台
2022-11-18 16:17:36,660 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] http 服务监听端口: 8883
2022-11-18 16:17:36,661 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] http 服务监听端口: 8883
2022-11-18 16:17:36,661 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] http 服务监听端口: 8883
2022-11-18 16:17:36,661 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] http 服务监听端口: 8883
2022-11-18 16:17:36,661 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] http 服务监听端口: 8883
2022-11-18 16:17:36,661 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] http 服务监听端口: 8883
2022-11-18 16:17:36,662 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] http 服务监听端口: 8883
2022-11-18 16:17:36,662 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] http 服务监听端口: 8883
2022-11-18 16:17:36,662 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] http 服务监听端口: 8883
2022-11-18 16:17:36,662 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] http 服务监听端口: 8883
2022-11-18 16:17:36,663 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] http 服务监听端口: 8883
2022-11-18 16:17:36,662 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] http 服务监听端口: 8883
2022-11-18 16:17:36,663 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] http 服务监听端口: 8883
2022-11-18 16:17:36,663 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] http 服务监听端口: 8883
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-4] 开放管理员后台
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-14] 开放管理员后台
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-13] 开放管理员后台
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-7] 开放管理员后台
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-5] 开放管理员后台
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-2] 开放管理员后台
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-15] 开放管理员后台
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-3] 开放管理员后台
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-0] 开放管理员后台
2022-11-18 16:17:36,664 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] http 服务监听端口: 8883
2022-11-18 16:17:36,665 INFO [com.hisense.dahua_video.MainVerticle]-[vert.x-eventloop-thread-31] 部署 WebAPIVerticle 成功!
2022-11-18 16:17:36,665 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-8] 开放管理员后台
2022-11-18 16:17:36,665 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-11] 开放管理员后台
2022-11-18 16:17:36,665 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-6] 开放管理员后台
2022-11-18 16:17:36,665 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-1] 开放管理员后台
2022-11-18 16:17:36,665 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-9] 开放管理员后台
2022-11-18 16:17:36,665 INFO [com.hisense.dahua_video.verticle.WebAPIVerticle]-[vert.x-eventloop-thread-12] 开放管理员后台
2022-11-18 16:17:57,609 ERROR [com.hisense.dahua_video.util.MonitorSessionUtil]-[vert.x-eventloop-thread-17] 创建会话失败
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: /10.132.191.3:8314
Caused by: java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:?]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779) ~[?:?]
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) ~[netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.82.Final.jar:4.1.82.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]

316
mvnw vendored Normal file
View File

@ -0,0 +1,316 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /usr/local/etc/mavenrc ] ; then
. /usr/local/etc/mavenrc
fi
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`\\unset -f command; \\command -v java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
$MAVEN_DEBUG_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" \
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

188
mvnw.cmd vendored Normal file
View File

@ -0,0 +1,188 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% ^
%JVM_CONFIG_MAVEN_PROPS% ^
%MAVEN_OPTS% ^
%MAVEN_DEBUG_OPTS% ^
-classpath %WRAPPER_JAR% ^
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%"=="on" pause
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
cmd /C exit /B %ERROR_CODE%

262
pom.xml Normal file
View File

@ -0,0 +1,262 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hisense</groupId>
<artifactId>dahua_video</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<kotlin.version>1.7.20</kotlin.version>
<maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
<exec-maven-plugin.version>3.0.0</exec-maven-plugin.version>
<vertx.version>4.3.4</vertx.version>
<junit-jupiter.version>5.7.0</junit-jupiter.version>
<caffeine.version>3.1.1</caffeine.version>
<log4j.version>2.8.2</log4j.version>
<disruptor.version>3.3.6</disruptor.version>
<exposed.version>0.40.1</exposed.version>
<sqlite-jdbc.version>3.39.4.0</sqlite-jdbc.version>
<HikariCP.version>4.0.3</HikariCP.version>
<main.verticle>com.hisense.dahua_video.MainVerticle</main.verticle>
<launcher.class>io.vertx.core.Launcher</launcher.class>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-stack-depchain</artifactId>
<version>${vertx.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-client</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-config</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-templ-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-lang-kotlin</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-lang-kotlin-coroutines</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<classifier>linux-x86_64</classifier>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-hazelcast</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.ben-manes.caffeine/caffeine -->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>${caffeine.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-core</artifactId>
<version>${exposed.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-jdbc</artifactId>
<version>${exposed.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.exposed</groupId>
<artifactId>exposed-java-time</artifactId>
<version>${exposed.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>${sqlite-jdbc.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${HikariCP.version}</version>
</dependency>
<!-- log4j2 日志配置-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>${disruptor.version}</version>
</dependency>
<!--日志配置结束-->
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<configuration>
<jvmTarget>11</jvmTarget>
</configuration>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven-shade-plugin.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>${launcher.class}</Main-Class>
<Main-Verticle>${main.verticle}</Main-Verticle>
</manifestEntries>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
<outputFile>${project.build.directory}/${project.artifactId}-${project.version}-fat.jar
</outputFile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec-maven-plugin.version}</version>
<configuration>
<mainClass>io.vertx.core.Launcher</mainClass>
<arguments>
<argument>run</argument>
<argument>${main.verticle}</argument>
</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,232 @@
package com.hisense.dahua_video
import com.hazelcast.config.*
import com.hisense.dahua_video.modules.device.Device
import com.hisense.dahua_video.modules.device.DeviceChannel
import com.hisense.dahua_video.modules.device.Organization
import com.hisense.dahua_video.modules.monitor.MonitorUser
import com.hisense.dahua_video.modules.monitor.MonitorUserToken
import com.hisense.dahua_video.modules.sys.SysUser
import com.hisense.dahua_video.verticle.MonitorVerticle
import com.hisense.dahua_video.verticle.OrganizationVerticle
import com.hisense.dahua_video.verticle.SqlFactoryVerticle
import com.hisense.dahua_video.verticle.WebAPIVerticle
import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource
import io.vertx.config.ConfigRetriever
import io.vertx.config.ConfigRetrieverOptions
import io.vertx.config.ConfigStoreOptions
import io.vertx.core.*
import io.vertx.core.eventbus.EventBus
import io.vertx.core.eventbus.EventBusOptions
import io.vertx.core.file.FileSystem
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonArray
import io.vertx.core.json.JsonObject
import io.vertx.core.spi.cluster.ClusterManager
import io.vertx.spi.cluster.hazelcast.HazelcastClusterManager
import org.jetbrains.exposed.sql.Database
import org.jetbrains.exposed.sql.SchemaUtils
import org.jetbrains.exposed.sql.StdOutSqlLogger
import org.jetbrains.exposed.sql.addLogger
import org.jetbrains.exposed.sql.transactions.transaction
import java.io.File
import java.time.LocalDateTime
import java.util.concurrent.TimeUnit
class MainVerticle : AbstractVerticle() {
private val logger: Logger = LoggerFactory.getLogger(MainVerticle::class.java)
private val cpuNum = Runtime.getRuntime().availableProcessors()
var fs: FileSystem? = null
private var event: EventBus? = null
override fun start(startPromise: Promise<Void>) {
fs = vertx.fileSystem()
event = vertx.eventBus()
val fileStore = ConfigStoreOptions().apply {
type = "file"
config = JsonObject().put("path", System.getProperty("user.dir") + File.separator + "config.json")
}
val configOptions = ConfigRetrieverOptions().addStore(fileStore)
val retriever = ConfigRetriever.create(vertx, configOptions)
retriever.getConfig { config ->
val result = config.result()
exposed(result)
val memberList = result.getJsonArray("memberList", JsonArray()).list
var vertxOptions = if (memberList.isNotEmpty()) { // 集群模式配置
clusteredOptions(memberList as List<String>, result)
} else { // 单体配置
VertxOptions().apply {
preferNativeTransport = true
internalBlockingPoolSize = 1
maxWorkerExecuteTime = Long.MAX_VALUE
maxWorkerExecuteTimeUnit = TimeUnit.DAYS
workerPoolSize = if (cpuNum * 20 <= 80) 80 else cpuNum * 20
eventBusOptions = EventBusOptions().apply {
host = result.getString("host", "localhost")
preferNativeTransport = true
isTcpFastOpen = true
isTcpQuickAck = true
isTcpNoDelay = true
}
}
}
val vertx = Vertx.vertx(vertxOptions)
when (vertxOptions?.clusterManager) {
null -> {
logger.info("无集群配置,进行单节点部署!")
deployVerticles(vertx, result)
}
else -> {
logger.info("进行集群部署!")
Vertx.clusteredVertx(vertxOptions) { res: AsyncResult<Vertx?> ->
if (res.succeeded()) {
val vertxClustered = res.result()
deployVerticles(vertxClustered!!, result)
} else {
logger.info("尝试集群部署失败!进行单节点部署")
deployVerticles(vertx, result)
}
}
}
}
}
}
/**
* 全局定时任务
*/
private fun globalTask() {
// TODO
}
/**
* 部署 verticle
*/
private fun deployVerticles(vertx: Vertx, result: JsonObject) {
logger.info("全局变量vertx.isNativeTransportEnabled:${vertx.isNativeTransportEnabled}")
val record = result.getString("recroot", "/mnts/record/") + File.separator // 截图根目录
logger.info("截图根目录:$record")
fs!!.exists(record)!!.onSuccess { exit ->
if (!exit) {
fs!!.mkdirs(record)?.onFailure { fail ->
logger.info("创建 $record 文件夹故障:", fail)
}
}
}?.onFailure { fail ->
logger.info("$record 文件夹故障:", fail)
}
vertx.deployVerticle({ SqlFactoryVerticle() }, DeploymentOptions().setInstances(cpuNum).setConfig(result))
.onSuccess {
logger.info("部署 SqlFactoryVerticle 成功!")
globalTask()
}
.onFailure { fail -> logger.error("创建 SqlFactoryVerticle 故障", fail) }
vertx.deployVerticle({ MonitorVerticle() }, DeploymentOptions().setInstances(cpuNum).setConfig(result))
.onSuccess { logger.info("部署 MonitorVerticle 成功!") }
.onFailure { fail -> logger.error("创建 MonitorVerticle 故障", fail) }
vertx.deployVerticle({ WebAPIVerticle() }, DeploymentOptions().setInstances(cpuNum).setConfig(result))
.onSuccess { logger.info("部署 WebAPIVerticle 成功!") }
.onFailure { fail -> logger.error("创建 WebAPIVerticle 故障", fail) }
vertx.deployVerticle({ OrganizationVerticle() }, DeploymentOptions().setInstances(cpuNum).setConfig(result))
.onSuccess { logger.info("部署 OrganizationVerticle 成功!") }
.onFailure { fail -> logger.error("创建 OrganizationVerticle 故障", fail) }
}
/**
* 连接数据库
*/
private fun exposed(result: JsonObject) {
val sqliteJdbcurl = result.getString("sqlite_jdbcurl")
val sqliteUser = result.getString("sqlite_user")
val sqlitePassword = result.getString("sqlite_password")
val dbConfig = HikariConfig().apply {
jdbcUrl = sqliteJdbcurl
driverClassName = "org.sqlite.JDBC"
username = sqliteUser
password = sqlitePassword
minimumIdle = 2 * cpuNum
maximumPoolSize = 5 * cpuNum
isAutoCommit = false
}
val monitorUser = MonitorUser()
val monitorUserToken = MonitorUserToken()
val sysUser = SysUser()
val organization = Organization()
val device = Device()
val deviceChannel = DeviceChannel()
logger.info("开始创表" + LocalDateTime.now().toString())
Database.connect(
HikariDataSource(dbConfig)
)
logger.info("连接完成" + LocalDateTime.now().toString())
transaction {
addLogger(StdOutSqlLogger)
SchemaUtils.create(monitorUser, monitorUserToken, sysUser, organization, device, deviceChannel)
SchemaUtils.createMissingTablesAndColumns(
monitorUser,
monitorUserToken,
sysUser,
organization,
device,
deviceChannel
)
logger.info("创表成功" + LocalDateTime.now().toString())
}
}
/**
* 集群配置
*/
private fun clusteredOptions(memberList: List<String>, result: JsonObject): VertxOptions? {
val hazelcastConfig = Config()
val networkConfig = NetworkConfig().setPort(result.getInteger("cluster_port", 5701))
.setMemcacheProtocolConfig(MemcacheProtocolConfig().setEnabled(true))
.setRestApiConfig(RestApiConfig().setEnabled(false))
.setOutboundPorts(listOf(0))
.setJoin(
JoinConfig().setMulticastConfig(MulticastConfig().setEnabled(false))
.setTcpIpConfig(TcpIpConfig().setEnabled(true).setMembers(memberList))
)
.setInterfaces(InterfacesConfig().setEnabled(false))
.setSSLConfig(SSLConfig().setEnabled(false))
.setSocketInterceptorConfig(SocketInterceptorConfig().setEnabled(false))
.setSymmetricEncryptionConfig(SymmetricEncryptionConfig().setEnabled(false))
hazelcastConfig.networkConfig = networkConfig
hazelcastConfig.managementCenterConfig = ManagementCenterConfig().setScriptingEnabled(true)
.addTrustedInterface(result.getString("host", "localhost"))
val mgr: ClusterManager = HazelcastClusterManager(hazelcastConfig)
return VertxOptions().setClusterManager(mgr)
.setEventBusOptions(EventBusOptions()
.apply {
host = result.getString("host", "localhost")
isTcpFastOpen = true
isTcpQuickAck = true
isTcpNoDelay = true
})
.apply {
preferNativeTransport = true
internalBlockingPoolSize = 1
maxWorkerExecuteTime = Long.MAX_VALUE
maxWorkerExecuteTimeUnit = TimeUnit.DAYS
workerPoolSize = if (cpuNum * 20 <= 80) 80 else cpuNum * 20
eventBusOptions = EventBusOptions().apply {
host = result.getString("host", "localhost")
preferNativeTransport = true
isTcpFastOpen = true
isTcpQuickAck = true
isTcpNoDelay = true
}
}
}
}

View File

@ -0,0 +1,68 @@
package com.hisense.dahua_video.consts
/**
* 事件总线上各地址
*/
enum class EventBusAddress(val address: String) {
/**
* 平台用户注册
*/
SYS_USER_SIGN_UP("MSG://EVENT/BUS/SQL/SYS/SYS_USER_SIGN_UP"),
/**
* 校验用户名是否存在
*/
SYS_USER_CHECK("MSG://EVENT/BUS/SQL/SYS/SYS_USER_CHECK"),
/**
* 校验登录
*/
SYS_USER_CHECK_LOGIN("MSG://EVENT/BUS/SQL/SYS/SYS_USER_CHECK_LOGIN"),
/**
* 第三方平台数据录入
*/
SYS_MONITOR_USER_SIGN_UP("MSG://EVENT/BUS/SQL/SYS/SYS_MONITOR_USER_SIGN_UP"),
/**
* 获取全量第三方用户
*/
SYS_MONITOR_USER_ALLMONITORUSER("MSG://EVENT/BUS/SQL/SYS/SYS_MONITOR_USER_ALLMONITORUSER"),
/**
* 获取全量第三方有效token
*/
SYS_MONITOR_USER_ALLMONITORUSER_TOKEN("MSG://EVENT/BUS/SQL/SYS/SYS_MONITOR_USER_ALLMONITORUSER_TOKEN"),
/**
* 清理失效token
*/
SYS_MONITOR_CLEANFAILTOKEN("MSG://EVENT/BUS/SQL/SYS/SYS_MONITOR_CLEANFAILTOKEN"),
/**
* 保存新的第三方token
*/
SYS_MONITOR_USER_TOKEN_SAVE_NEW("MSG://EVENT/BUS/SQL/SYS/SYS_MONITOR_USER_TOKEN_SAVE_NEW"),
/**
* 保活第三方token
*/
SYS_MONITOR_USER_TOKEN_KEEP_LIVE("MSG://EVENT/BUS/SQL/SYS/SYS_MONITOR_USER_TOKEN_KEEP_LIVE"),
/**
* 同步第三方所有组织架构
*/
SYS_ORGANIZATION_SYNC("MSG://EVENT/BUS/SQL/SYS/SYS_ORGANIZATION_SYNC"),
/**
* 同步第三方设备
*/
SYS_DEVICE_SYNC("MSG://EVENT/BUS/SQL/SYS/SYS_DEVICE_SYNC"),
/**
*同步第三方设备通道
*/
SYS_DEVICE_CHANNEL_SYNC("MSG://EVENT/BUS/SQL/SYS/SYS_DEVICE_CHANNEL_SYNC")
}

View File

@ -0,0 +1,8 @@
package com.hisense.dahua_video.consts
enum class StatsInt(val value: Int) {
/**
* 正常
*/
NORMAL(1)
}

View File

@ -0,0 +1,83 @@
package com.hisense.dahua_video.controller
import com.hisense.dahua_video.consts.EventBusAddress
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonObject
import io.vertx.ext.web.RoutingContext
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.util.*
class CommonController(event_: EventBus?) {
private val logger: Logger = LoggerFactory.getLogger(CommonController::class.java)
private var event: EventBus? = null
init {
this.event = event_
}
fun optionSCros(requestHandler: RoutingContext) {
requestHandler.response()
.putHeader("Access-Control-Allow-Credentials", "true")
.putHeader("Access-Control-Allow-Origin", "*")
.putHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
.putHeader(
"Access-Control-Allow-Headers",
"authorization,Authorization,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,token,Range,range"
)
.putHeader("Access-Control-Max-Age", "3600")
.putHeader("Content-Type", "text/plain; charset=utf-8")
.putHeader("Content-Length", "0")
.setStatusCode(204).send()
}
fun getCros(requestHandler: RoutingContext) {
val response = requestHandler.response()
response.isChunked = true
response
.putHeader("Access-control-Allow-Origin", "*")
.putHeader("Access-Control-Allow-Credentials", "true")
.putHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS")
.putHeader(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, Connection, User-Agent, Cookie,Content-Type"
)
requestHandler.next()
}
/**
* 校验是否登录
*/
fun checkLogin(requestHandler: RoutingContext) {
requestHandler.request().pause()
val authorization = requestHandler.request().getHeader("Authorization")?.substringAfter(" ")
fun unAuth() {
requestHandler.response().putHeader("WWW-Authenticate", "Basic realm=\".\"").setStatusCode(401)
.end(LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME))
}
when (authorization == null) {
true -> {
unAuth()
}
else -> {
val userInfo = String(Base64.getDecoder().decode(authorization), Charsets.UTF_8)
val userName = userInfo.substringBefore(":")
val password = userInfo.substringAfter(":")
val body = JsonObject().put("userName", userName).put("password", password)
event!!.request<Int>(EventBusAddress.SYS_USER_CHECK_LOGIN.address, body) {
if (it.succeeded() && it.result().body() != -1) {
requestHandler.next()
requestHandler.request().resume()
} else {
unAuth()
}
}
}
}
}
}

View File

@ -0,0 +1,99 @@
package com.hisense.dahua_video.controller
import com.hisense.dahua_video.consts.EventBusAddress
import io.vertx.core.Vertx
import io.vertx.core.buffer.Buffer
import io.vertx.core.eventbus.EventBus
import io.vertx.core.file.FileSystem
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonObject
import io.vertx.ext.web.RoutingContext
import io.vertx.ext.web.client.WebClient
import io.vertx.ext.web.templ.thymeleaf.ThymeleafTemplateEngine
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
/**
* 平台主页控制器
*/
class IndexController(
vertx: Vertx,
templateEngine: ThymeleafTemplateEngine?
) {
private val logger: Logger = LoggerFactory.getLogger(IndexController::class.java)
var templateEngine: ThymeleafTemplateEngine? = null
private var fs: FileSystem? = null
private var event: EventBus? = null
private var vertx: Vertx
private var client: WebClient? = null
init {
this.vertx = vertx
this.fs = this.vertx.fileSystem()
this.event = this.vertx.eventBus()
this.templateEngine = templateEngine
client = WebClient.create(this.vertx)
}
/**
* 首页
*/
fun index(requestHandler: RoutingContext) {
val data = JsonObject().put(
"msg", "当前日期:${LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE)}"
)
templateEngine!!.render(
data, "templates/index.html"
).onSuccess { success: Buffer? ->
requestHandler.response().putHeader("Content-Type", "text/html").end(success)
}.onFailure { fail: Throwable ->
requestHandler.fail(fail)
}
}
/**
* 注册表单
*/
fun sign_up(requestHandler: RoutingContext) {
val jsonObject = JsonObject()
jsonObject.put("code", 0)
jsonObject.put("data", LocalDateTime.now().toString())
val body = requestHandler.body().asJsonObject()
logger.info("注册表单:${body.encode()}")
event!!.publish(EventBusAddress.SYS_USER_SIGN_UP.address, body)
requestHandler
.response()
.putHeader("content-type", "text/html")
.end(jsonObject.encode())
}
/**
* 校验用户是否存在
*/
fun check(requestHandler: RoutingContext) {
val jsonObject = JsonObject()
jsonObject.put("code", 0)
val body = requestHandler.body().asJsonObject()
logger.info("注册表单:${body.encode()}")
event!!.request<Int>(EventBusAddress.SYS_USER_CHECK.address, body) {
if (it.succeeded()) {
jsonObject.put("data", it.result().body())
requestHandler
.response()
.putHeader("content-type", "text/html")
.end(jsonObject.encode())
} else {
jsonObject.put("code", -1)
requestHandler.response()
.putHeader("content-type", "text/html")
.end(jsonObject.encode())
}
}
}
}

View File

@ -0,0 +1,58 @@
package com.hisense.dahua_video.controller
import com.hisense.dahua_video.consts.EventBusAddress
import io.vertx.core.Vertx
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonObject
import io.vertx.ext.web.RoutingContext
import io.vertx.ext.web.client.WebClient
import io.vertx.ext.web.templ.thymeleaf.ThymeleafTemplateEngine
import java.time.LocalDateTime
import java.util.*
class MonitorUserController(
vertx: Vertx,
templateEngine: ThymeleafTemplateEngine?
) {
private val logger: Logger = LoggerFactory.getLogger(MonitorUserController::class.java)
var templateEngine: ThymeleafTemplateEngine? = null
private var event: EventBus? = null
private var vertx: Vertx
private var client: WebClient? = null
init {
this.vertx = vertx
this.event = this.vertx.eventBus()
this.templateEngine = templateEngine
client = WebClient.create(this.vertx)
}
/**
* 注册第三方用户表单
*/
fun sign_up(requestHandler: RoutingContext) {
val jsonObject = JsonObject()
jsonObject.put("code", 0)
jsonObject.put("data", LocalDateTime.now().toString())
val authorization = requestHandler.request().getHeader("Authorization")?.substringAfter(" ")
val userInfo = String(Base64.getDecoder().decode(authorization), Charsets.UTF_8)
val userName = userInfo.substringBefore(":")
val param = JsonObject().put("userName", userName)
val body = requestHandler.body().asJsonObject()
event!!.request<Int>(EventBusAddress.SYS_USER_CHECK.address, param) {
if (it.succeeded()) {
body.put("userId", it.result().body())
logger.info("注册表单:${body.encode()}")
event!!.publish(EventBusAddress.SYS_MONITOR_USER_SIGN_UP.address, body)
} else {
logger.info("查用户异常")
}
}
requestHandler
.response()
.putHeader("content-type", "text/html")
.end(jsonObject.encode())
}
}

View File

@ -0,0 +1,116 @@
package com.hisense.dahua_video.dao
import com.github.benmanes.caffeine.cache.Caffeine
import com.hisense.dahua_video.consts.EventBusAddress
import com.hisense.dahua_video.modules.device.Device
import com.hisense.dahua_video.modules.device.DeviceChannel
import com.hisense.dahua_video.modules.device.Organization
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonArray
import io.vertx.core.json.JsonObject
import org.jetbrains.exposed.sql.StdOutSqlLogger
import org.jetbrains.exposed.sql.addLogger
import org.jetbrains.exposed.sql.batchInsert
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
import java.util.concurrent.TimeUnit
import java.util.stream.Collectors
class DeviceChannelDao(
event_: EventBus?
) {
private val logger: Logger = LoggerFactory.getLogger(DeviceChannelDao::class.java)
private val cpuNum = Runtime.getRuntime().availableProcessors()
private var event: EventBus? = null
// private val organization = Organization()
private val device = Device()
private val deviceChannel = DeviceChannel()
init {
this.event = event_
saveOrUpdateDeviceChannel()
}
/**
* 保存或更新设备
*/
private fun saveOrUpdateDeviceChannel() {
val deviceCaffeineClient = Caffeine.newBuilder()
.expireAfterAccess(1, TimeUnit.MINUTES) // 缓存1分钟
.maximumSize(10240)
.initialCapacity(cpuNum * 10).build<String, Int> { key ->
val value = transaction {
addLogger(StdOutSqlLogger)
return@transaction device.slice(device.id).select { device.deviceId eq key }.withDistinct()
.map { it[device.id] }.firstOrNull()?.value ?: return@transaction -1
}
return@build value
} // 设备缓存
val deviceChannelCaffeineClient = Caffeine.newBuilder()
.expireAfterAccess(1, TimeUnit.MINUTES) // 缓存1分钟
.maximumSize(10240)
.initialCapacity(cpuNum * 10).build<String, Int> { key ->
val value = transaction {
addLogger(StdOutSqlLogger)
return@transaction deviceChannel.slice(deviceChannel.id).select { deviceChannel.channelId eq key }
.withDistinct()
.map { it[deviceChannel.id] }.firstOrNull()?.value ?: return@transaction -1
}
return@build value
} // 设备通道缓存
event!!.consumer<JsonArray>(EventBusAddress.SYS_DEVICE_CHANNEL_SYNC.address)?.handler { res ->
val message = res.body()
val insertInfo = message.stream().filter { index ->
index as JsonObject
index.getInteger("nodeType") == 3 &&
deviceCaffeineClient.get(index.getString("parentId")) != -1 &&
deviceChannelCaffeineClient.get(index.getString("channelId")) == -1 //节点为通道类型 设备表内存在该设备 且 该设备通道未入库
}.map {
it as JsonObject
it.put("deviceId", deviceCaffeineClient.get(it.getString("parentId")))
it
}.collect(Collectors.toList())
logger.info("设备通道入库·${insertInfo.size}")
transaction {
addLogger(StdOutSqlLogger)
deviceChannel.batchInsert(insertInfo) { device_ ->
this[deviceChannel.deviceId] = device_.getInteger("deviceId")
this[deviceChannel.channelNo] = device_.getString("channelId")
this[deviceChannel.channelId] = device_.getString("channelId")
this[deviceChannel.name] = device_.getString("name")
this[deviceChannel.orgCode] = device_.getString("orgCode")
this[deviceChannel.orgType] = device_.getString("orgType")
this[deviceChannel.online] = device_.getString("online")
this[deviceChannel.status] = device_.getInteger("status")
this[deviceChannel.sort] = device_.getInteger("sort")
this[deviceChannel.cameraType] = device_.getString("cameraType")
this[deviceChannel.cameraFunctions] = device_.getString("cameraFunctions")
this[deviceChannel.category] = device_.getString("category")
this[deviceChannel.isParent] = device_.getBoolean("isParent")
this[deviceChannel.parentId] = device_.getString("parentId")
this[deviceChannel.deviceCode] = device_.getString("deviceCode")
this[deviceChannel.channelCode] = device_.getString("channelCode")
this[deviceChannel.channelName] = device_.getString("channelName")
this[deviceChannel.channelSeq] = device_.getInteger("channelSeq")
this[deviceChannel.channelSn] = device_.getString("channelSn")
this[deviceChannel.channelType] = device_.getString("channelType")
this[deviceChannel.sn] = device_.getString("sn")
this[deviceChannel.stat] = device_.getInteger("stat")
this[deviceChannel.gpsX] = device_.getString("gpsX")
this[deviceChannel.gpsY] = device_.getString("gpsY")
this[deviceChannel.sn] = device_.getString("sn")
this[deviceChannel.unitType] = device_.getString("unitType")
this[deviceChannel.paasId] = device_.getString("paasId")
this[deviceChannel.intelliState] = device_.getInteger("intelliState")
this[deviceChannel.subType] = device_.getString("subType")
}
}
}
}
}

View File

@ -0,0 +1,141 @@
package com.hisense.dahua_video.dao
import com.github.benmanes.caffeine.cache.Caffeine
import com.hisense.dahua_video.consts.EventBusAddress
import com.hisense.dahua_video.modules.device.Device
import com.hisense.dahua_video.modules.device.Organization
import com.hisense.dahua_video.util.DevicesManagerUtil
import io.vertx.core.Vertx
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonArray
import io.vertx.core.json.JsonObject
import org.jetbrains.exposed.sql.StdOutSqlLogger
import org.jetbrains.exposed.sql.addLogger
import org.jetbrains.exposed.sql.batchInsert
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
import java.util.concurrent.TimeUnit
import java.util.stream.Collectors
class DeviceDao(
event_: EventBus?, vertx: Vertx
) {
private val logger: Logger = LoggerFactory.getLogger(OrganizationDao::class.java)
private val cpuNum = Runtime.getRuntime().availableProcessors()
private var event: EventBus? = null
private val organization = Organization()
private var devicesManagerUtil: DevicesManagerUtil? = null
private val device = Device()
private var vertx: Vertx? = null
init {
this.event = event_
this.vertx = vertx
devicesManagerUtil = DevicesManagerUtil(vertx)
saveOrupdateDevice()
}
/**
* 更新或保存设备信息
*/
private fun saveOrupdateDevice() {
val orgCaffeineClient = Caffeine.newBuilder()
.expireAfterAccess(60, TimeUnit.MINUTES) // 缓存1分钟
.maximumSize(10240)
.initialCapacity(cpuNum * 10).build<String, Int> { key ->
val value = transaction {
addLogger(StdOutSqlLogger)
return@transaction organization.slice(organization.id).select { organization.orgId eq key }.withDistinct()
.map { it[organization.id] }.firstOrNull()?.value ?: return@transaction -1
}
return@build value
} // 组织缓存
val deviceCaffeineClient = Caffeine.newBuilder()
.expireAfterAccess(60, TimeUnit.MINUTES) // 缓存60分钟
.maximumSize(1024 * 1000)
.initialCapacity(cpuNum * 10).build<String, Int> { key ->
val value = transaction {
addLogger(StdOutSqlLogger)
return@transaction device.slice(device.id).select { device.deviceId eq key }.withDistinct()
.map { it[device.id] }.firstOrNull()?.value ?: return@transaction -1
}
return@build value
} // 设备缓存
val taskOrgCaffeineClient = Caffeine.newBuilder()
.expireAfterAccess(60, TimeUnit.MINUTES) // 缓存60分钟
.maximumSize(10240)
.initialCapacity(cpuNum * 10).build<JsonObject, Long> { key ->
val teskId = vertx!!.setTimer(4000) {
event!!.request<JsonArray>(EventBusAddress.SYS_MONITOR_USER_ALLMONITORUSER_TOKEN.address, JsonObject()) {
if (it.succeeded()) {
val tokinInfo = it.result().body().stream().filter { index ->
index as JsonObject
index.getString("id") == key.getString("userId") // 获取对应用户的第三方token
}.findAny()
tokinInfo.ifPresent { token ->
token as JsonObject
val monitorUserWithToken = JsonObject()
.put("monitorDomain", token.getString("monitorDomain"))
.put("token", token.getString("token"))
.put("id", token.getInteger("id"))
logger.info("==================================同步该组织(${key.getString("parentId")})的设备通道============================================")
devicesManagerUtil!!.syncDeviceChannel(monitorUserWithToken, key.getString("parentId"))
}
}
}
}
return@build teskId
}
event!!.consumer<JsonArray>(EventBusAddress.SYS_DEVICE_SYNC.address)?.handler { res ->
val message = res.body()
val insertInfo = message.stream().filter { index ->
index as JsonObject
index.getInteger("nodeType") == 2 &&
orgCaffeineClient.get(index.getString("parentId")) != -1 &&
deviceCaffeineClient.get(index.getString("deviceId")) == -1 //节点为设备类型 组织表内存在该组织 且 该设备未入库
}.map {
it as JsonObject
it.put("organizationId", orgCaffeineClient.get(it.getString("parentId")))
it
}.collect(Collectors.toList())
logger.info("设备入库·${insertInfo.size}")
transaction {
addLogger(StdOutSqlLogger)
device.batchInsert(insertInfo) { device_ ->
this[device.organizationId] = device_.getInteger("organizationId")
this[device.nodeType] = device_.getInteger("nodeType")
this[device.category] = device_.getString("category")
this[device.deviceId] = device_.getString("deviceId")
this[device.name] = device_.getString("name")
this[device.online] = device_.getString("online")
this[device.isParent] = device_.getBoolean("isParent")
this[device.parentId] = device_.getString("parentId")
this[device.orgCode] = device_.getString("orgCode")
this[device.orgType] = device_.getString("orgType")
this[device.deviceCode] = device_.getString("deviceCode")
this[device.deviceName] = device_.getString("deviceName")
this[device.sort] = device_.getInteger("sort")
this[device.intelliFlag] = device_.getInteger("intelliFlag")
this[device.manufacturer] = device_.getString("manufacturer")
this[device.subType] = device_.getString("subType")
this[device.ip] = device_.getString("ip")
}
}
message.stream().forEach { index ->
index as JsonObject
val task = taskOrgCaffeineClient.get(
JsonObject().put("userId", index.getString("userId")).put("parentId", index.getString("parentId"))
)
logger.info("同步至组织的通道task:$task")
}
}
}
}

View File

@ -0,0 +1,95 @@
package com.hisense.dahua_video.dao
import com.hisense.dahua_video.consts.EventBusAddress
import com.hisense.dahua_video.consts.StatsInt
import com.hisense.dahua_video.modules.monitor.MonitorUser
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonArray
import io.vertx.core.json.JsonObject
import org.jetbrains.exposed.sql.StdOutSqlLogger
import org.jetbrains.exposed.sql.addLogger
import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
import java.time.LocalDateTime
class MonitorUserDao(event_: EventBus?) {
private val logger: Logger = LoggerFactory.getLogger(MonitorUserDao::class.java)
private var event: EventBus? = null
private val monitorUser = MonitorUser()
init {
this.event = event_
signUp()
allMonitorUser()
}
/**
* 响应注册
*/
private fun signUp() {
event?.consumer<JsonObject>(EventBusAddress.SYS_MONITOR_USER_SIGN_UP.address)?.handler { replay ->
val message = replay.body()
logger.info(message.encode())
transaction {
addLogger(StdOutSqlLogger)
monitorUser.insert {
it[monitorUser.userName] = message.getString("userName", "")
it[monitorUser.password] = message.getString("password", "")
it[monitorUser.createTime] = LocalDateTime.now()
it[monitorUser.status] = StatsInt.NORMAL.value
it[monitorUser.monitorDomain] = message.getString("monitorDomain", "")
it[monitorUser.userId] = message.getInteger("userId")
it[monitorUser.identifier] = message.getString("identifier")
}
}
}
}
/**
* 获取全量第三方用户信息
*/
private fun allMonitorUser() {
event?.consumer<JsonObject>(EventBusAddress.SYS_MONITOR_USER_ALLMONITORUSER.address)?.handler { replay ->
val value = transaction {
addLogger(StdOutSqlLogger)
return@transaction monitorUser
.slice(monitorUser.id, monitorUser.userName, monitorUser.password, monitorUser.monitorDomain)
.select { monitorUser.status eq StatsInt.NORMAL.value }
.withDistinct()
.map {
JsonObject().put("userName", it[monitorUser.userName])
.put("password", it[monitorUser.password])
.put("monitorDomain", it[monitorUser.monitorDomain])
.put("id", it[monitorUser.id].value)
}
}
replay.reply(JsonArray(value))
}
}
/**
* 更新第三方用户登录时间
*/
private fun updateMonitorUserLoginTime() {
event?.consumer<JsonObject>(EventBusAddress.SYS_MONITOR_USER_ALLMONITORUSER.address)?.handler { replay ->
val value = transaction {
addLogger(StdOutSqlLogger)
return@transaction monitorUser
.slice(monitorUser.id, monitorUser.userName, monitorUser.password, monitorUser.monitorDomain)
.select { monitorUser.status eq StatsInt.NORMAL.value }
.withDistinct()
.map {
JsonObject().put("userName", it[monitorUser.userName])
.put("password", it[monitorUser.password])
.put("monitorDomain", it[monitorUser.monitorDomain])
.put("id", it[monitorUser.id].value)
}
}
replay.reply(JsonArray(value))
}
}
}

View File

@ -0,0 +1,151 @@
package com.hisense.dahua_video.dao
import com.hisense.dahua_video.consts.EventBusAddress
import com.hisense.dahua_video.consts.StatsInt
import com.hisense.dahua_video.modules.monitor.MonitorUser
import com.hisense.dahua_video.modules.monitor.MonitorUserToken
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonArray
import io.vertx.core.json.JsonObject
import org.jetbrains.exposed.sql.StdOutSqlLogger
import org.jetbrains.exposed.sql.addLogger
import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.transactions.transaction
import org.jetbrains.exposed.sql.update
import java.time.LocalDateTime
class MonitorUserTokenDao(event_: EventBus?) {
private val logger: Logger = LoggerFactory.getLogger(MonitorUserTokenDao::class.java)
private var event: EventBus? = null
private val monitorUserToken = MonitorUserToken()
private val monitorUser = MonitorUser()
init {
this.event = event_
saveNewToken()
keepLiveToken()
getAllEffectiveToken()
cleanFailToken()
}
/**
* 保存新token
*/
private fun saveNewToken() {
event?.consumer<JsonObject>(EventBusAddress.SYS_MONITOR_USER_TOKEN_SAVE_NEW.address)?.handler { replay ->
val message = replay.body()
logger.info("saveNewToken:" + message.encode())
transaction {
addLogger(StdOutSqlLogger)
monitorUserToken.insert {
it[monitorUserToken.token] = message.getString("token")
it[monitorUserToken.createTime] = LocalDateTime.now()
it[monitorUserToken.updateTime] = LocalDateTime.now()
it[monitorUserToken.status] = StatsInt.NORMAL.value
it[monitorUserToken.userId] = message.getInteger("userId")
it[monitorUserToken.realm] = message.getString("realm")
it[monitorUserToken.randomKey] = message.getString("randomKey")
it[monitorUserToken.duration] = message.getInteger("duration")
}
}
}
}
/**
* 保活第三方token
*/
private fun keepLiveToken() {
event?.consumer<JsonObject>(EventBusAddress.SYS_MONITOR_USER_TOKEN_KEEP_LIVE.address)?.handler { replay ->
val message = replay.body()
logger.info("keepLiveToken:" + message.encode())
transaction {
addLogger(StdOutSqlLogger)
monitorUserToken.update({ monitorUserToken.token eq message.getString("token") }) {
it[monitorUserToken.updateTime] = LocalDateTime.now()
it[monitorUserToken.status] = StatsInt.NORMAL.value
}
}
}
}
/**
* 获取所有在有效期的token包含域名
*/
private fun getAllEffectiveToken() {
val sql = """
SELECT
token,
userName,
id,
monitorDomain,
duration
FROM
(
SELECT
sys_monitor_user_token.token,
sys_monitor_user_token.update_time,
sys_monitor_user_token.duration,
sys_monitor_user.userName,
sys_monitor_user.id,
sys_monitor_user.monitorDomain,
( strftime( '%s', sys_monitor_user_token.update_time, 'utc' ) + sys_monitor_user_token.duration ) AS effect,
strftime( '%s', 'now' ) AS _now
FROM
sys_monitor_user_token
LEFT JOIN sys_monitor_user ON sys_monitor_user_token.monitor_user_id = sys_monitor_user.id
WHERE
sys_monitor_user_token._status = 1
AND ( effect - _now ) > 0
ORDER BY
effect DESC
) t
GROUP BY
t.userName
ORDER BY
strftime( '%s', t.update_time, 'utc' ) DESC;
""".trimIndent()
event?.consumer<JsonObject>(EventBusAddress.SYS_MONITOR_USER_ALLMONITORUSER_TOKEN.address)?.handler { replay ->
val value = transaction {
val temp = JsonArray()
exec(sql) { res ->
while (res.next()) {
temp.add(
JsonObject()
.put("token", res.getString("token"))
.put("userName", res.getString("userName"))
.put("id", res.getInt("id"))
.put("monitorDomain", res.getString("monitorDomain"))
.put("duration", res.getString("duration"))
)
}
}
temp
}
logger.info("有效token" + value.encode())
replay.reply(value)
}
}
/**
* 清理失效token
*/
private fun cleanFailToken() {
val sql = """
DELETE FROM sys_monitor_user_token WHERE sys_monitor_user_token._status = 1 AND (( strftime( '%s', sys_monitor_user_token.update_time, 'utc' ) + sys_monitor_user_token.duration ) - strftime( '%s', 'now' )) < 0;
""".trimIndent()
event!!.consumer<JsonObject>(EventBusAddress.SYS_MONITOR_CLEANFAILTOKEN.address)?.handler {
logger.info("清理失效token")
transaction {
addLogger(StdOutSqlLogger)
exec(sql)
}
}
}
}

View File

@ -0,0 +1,107 @@
package com.hisense.dahua_video.dao
import com.github.benmanes.caffeine.cache.Caffeine
import com.hisense.dahua_video.consts.EventBusAddress
import com.hisense.dahua_video.modules.device.Organization
import com.hisense.dahua_video.util.DevicesManagerUtil
import io.vertx.core.Vertx
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonArray
import io.vertx.core.json.JsonObject
import org.jetbrains.exposed.sql.StdOutSqlLogger
import org.jetbrains.exposed.sql.addLogger
import org.jetbrains.exposed.sql.batchInsert
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
import java.util.concurrent.TimeUnit
import java.util.stream.Collectors
class OrganizationDao(event_: EventBus?, vertx: Vertx) {
private val logger: Logger = LoggerFactory.getLogger(OrganizationDao::class.java)
private val cpuNum = Runtime.getRuntime().availableProcessors()
private var event: EventBus? = null
private val organization = Organization()
private var devicesManagerUtil: DevicesManagerUtil? = null
private var vertx: Vertx? = null
init {
this.event = event_
this.vertx = vertx
saveOrUpdateOrganization()
devicesManagerUtil = DevicesManagerUtil(vertx)
}
/**
* 新建或更新组织信息
*/
private fun saveOrUpdateOrganization() {
val caffeineClient = Caffeine.newBuilder()
.expireAfterAccess(1, TimeUnit.MINUTES) // 缓存1分钟
.maximumSize(10240)
.initialCapacity(cpuNum * 10).build<String, Int> { key ->
val value = transaction {
addLogger(StdOutSqlLogger)
return@transaction organization.slice(organization.id).select { organization.orgId eq key }.withDistinct()
.map { it[organization.id] }.firstOrNull()?.value ?: return@transaction -1
}
return@build value
} // 缓存
event!!.consumer<JsonArray>(EventBusAddress.SYS_ORGANIZATION_SYNC.address).handler { res ->
val message = res.body()
val insertInfo = message.stream().filter { index ->
index as JsonObject
caffeineClient.get(index.getString("id")) == -1// 表内不存在
}.map { it as JsonObject }.collect(Collectors.toList())
logger.info("组织入库·${insertInfo.size}")
val re = transaction {
addLogger(StdOutSqlLogger)
organization.batchInsert(insertInfo) { organization_ ->
this[organization.userId] = organization_.getInteger("userId")
this[organization.orgId] = organization_.getString("id")
this[organization.name] = organization_.getString("name")
this[organization.memo] = organization_.getString("memo")
this[organization.orgType] = organization_.getString("orgType")
this[organization.isParent] = organization_.getBoolean("isParent")
this[organization.parentId] = organization_.getString("parentId")
this[organization.root] = organization_.getBoolean("root")
this[organization.orgCode] = organization_.getString("orgCode")
this[organization.orgName] = organization_.getString("orgName")
this[organization.sort] = organization_.getInteger("sort")
this[organization.orgSn] = organization_.getString("orgSn")
this[organization.sn] = organization_.getString("sn")
this[organization.subCount] = organization_.getInteger("subCount")
this[organization.parentNodeType] = organization_.getInteger("parentNodeType")
}
}
vertx!!.setTimer(3000) {
event!!.request<JsonArray>(EventBusAddress.SYS_MONITOR_USER_ALLMONITORUSER_TOKEN.address, JsonObject()) {
if (it.succeeded()) {
val tokinInfo = it.result().body().stream().filter { index ->
index as JsonObject
index.getString("id") == message.stream().map { it_ -> it_ as JsonObject }.findFirst()?.get()
?.getString("userId") ?: ""// 获取对应用户的第三方token
}.findAny()
tokinInfo.ifPresent { token ->
token as JsonObject
val tokenInfo = JsonObject()
.put("monitorDomain", token.getString("monitorDomain"))
.put("token", token.getString("token"))
.put("id", token.getInteger("id"))
message.stream().forEach { index ->
index as JsonObject
devicesManagerUtil!!.syncDevice(tokenInfo, index.getString("id"))
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,94 @@
package com.hisense.dahua_video.dao
import com.hisense.dahua_video.consts.EventBusAddress
import com.hisense.dahua_video.consts.StatsInt
import com.hisense.dahua_video.modules.sys.SysUser
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonObject
import org.jetbrains.exposed.sql.*
import org.jetbrains.exposed.sql.transactions.transaction
import java.time.LocalDateTime
/**
* 用户 dao
*/
class SysUserDao(event_: EventBus?) {
private val logger: Logger = LoggerFactory.getLogger(SysUserDao::class.java)
private var event: EventBus? = null
private val sysUser = SysUser()
init {
this.event = event_
signUp()
check()
checkLogin()
}
/**
* 响应注册
*/
private fun signUp() {
event?.consumer<JsonObject>(EventBusAddress.SYS_USER_SIGN_UP.address)?.handler { replay ->
val message = replay.body()
logger.info("signUp:" + message.encode())
transaction {
addLogger(StdOutSqlLogger)
sysUser.insert {
it[sysUser.userName] = message.getString("userName", "")
it[sysUser.password] = message.getString("password", "")
it[sysUser.createTime] = LocalDateTime.now()
it[sysUser.status] = StatsInt.NORMAL.value
}
}
}
}
/**
* 校验是否存在该用户 返回-1 时该用户名不存在
*/
private fun check() {
event?.consumer<JsonObject>(EventBusAddress.SYS_USER_CHECK.address)?.handler { replay ->
val message = replay.body()
logger.info(message.encode())
val value = transaction {
addLogger(StdOutSqlLogger)
return@transaction sysUser
.slice(sysUser.id)
.select { sysUser.userName eq message.getString("userName", "") }
.withDistinct()
.map { it[sysUser.id] }
.firstOrNull()?.value ?: return@transaction -1
}
replay.reply(value)
}
}
/**
* 校验用户登录
*/
private fun checkLogin() {
val temp = event?.consumer<JsonObject>(EventBusAddress.SYS_USER_CHECK_LOGIN.address)
temp?.exceptionHandler {
logger.error("注册总线异常", it)
}
temp?.handler { replay ->
val message = replay.body()
logger.info("checkLogin:" + message.encode())
val value = transaction {
addLogger(StdOutSqlLogger)
return@transaction sysUser
.slice(sysUser.id)
.select { sysUser.userName eq message.getString("userName", "") }
.andWhere { sysUser.password eq message.getString("password", "") }
.withDistinct()
.map { it[sysUser.id] }
.firstOrNull()?.value ?: return@transaction -1
}
replay.reply(value)
}
}
}

View File

@ -0,0 +1,27 @@
package com.hisense.dahua_video.modules.device
import org.jetbrains.exposed.dao.id.IntIdTable
/**
* 设备
*/
class Device : IntIdTable("sys_device") {
private val organization = Organization()
val organizationId = integer("organization_id").references(organization.id) // 所属设备组织。
val nodeType = integer("node_type") // 节点类型。2:设备3:通道。
val category = text("category") // 设备大类,参考设备大类。
val deviceId = text("device_id").uniqueIndex() // 设备编码。
val name = text("name") // 设备名称。
val online = text("online") // 设备是否在线。"1":在线;"0":离线。
val isParent = bool("is_parent") // 是否是父节点是否有子节点true:是父节点false:不是父节点。
val parentId = text("parentId") // 所属组织的ID如果属于root节点则为""。
val orgCode = text("org_code") // 和parentId一样。
val orgType = text("org_type") // 组织类型,"1"-基本组织;"2~6"-逻辑组织。
val deviceCode = text("device_code") // 设备编码。
val deviceName = text("device_name") // 设备名称。
val sort = integer("sort") // 排序码。
val intelliFlag = integer("intelli_flag") // 智能状态0:非智能 1:智能。
val manufacturer = text("manufacturer") // 参考厂商。
val subType = text("subType") // 参考设备小类。
val ip = text("ip") // 设备IP。
}

View File

@ -0,0 +1,38 @@
package com.hisense.dahua_video.modules.device
import org.jetbrains.exposed.dao.id.IntIdTable
/**
* 设备通道
*/
class DeviceChannel : IntIdTable("sys_device_channel") {
private val device = Device()
val deviceId = integer("device_id").references(device.id) // 所属设备(外键)。
val channelNo = text("channel_no").uniqueIndex() // 通道编码
val channelId = text("channel_id").uniqueIndex() // 通道编码 同channelNo
val name = text("name").nullable() // 通道名称
val orgCode = text("org_code").nullable() // 组织编码,根组织为""
val orgType = text("org_type").nullable() // 组织类型,"1"为基本组织
val online = text("online").nullable() // 通道是否在线。"1":在线;"0":离线
val status = integer("status").nullable() // 通道是否在线。1:在线 0:离线
val sort = integer("sort").nullable() // 排序码
val cameraType = text("camera_type").nullable() // 摄像头类型,"1":枪机,"2":球机,"3":半球等
val cameraFunctions = text("camera_functions").nullable() // 编码通道功能,一个通道如果支持多种功能,用","分隔
val category = text("category").nullable() // 设备大类
val isParent = bool("is_parent").nullable() // 是否是父节点是否有子节点true:是父节点false:不是父节点
val parentId = text("parent_id").nullable() // 通道所属设备编码(和设备的id相同)
val deviceCode = text("device_code").nullable() //和parentId一样
val channelCode = text("channel_code").nullable() // 通道编码。
val channelName = text("channel_name").nullable() // 通道名称。
val channelSeq = integer("channel_seq").nullable() // 通道序号从0开始
val channelSn = text("channel_sn").nullable() // 通道序列号。
val channelType = text("channel_type").nullable() // 参考通道类型
val sn = text("sn").nullable() // 通道序列号。同channelSn。
val stat = integer("stat").nullable() //启停状态1-启用2-停用。
val gpsX = text("gpsX").nullable()// 通道所在地图坐标的X值。
val gpsY = text("gpsY").nullable() // 通道所在地图坐标的Y值。
val unitType = text("unit_type").nullable() // 通道所属的单元类型,参考单元类型
val paasId = text("paas_id").nullable() // 所属的paas编号此值为paas基础平台所定义
val intelliState = integer("intelli_state").nullable() // 智能状态0:非智能 1:智能
val subType = text("sub_type").nullable() // 参考设备小类
}

View File

@ -0,0 +1,27 @@
package com.hisense.dahua_video.modules.device
import com.hisense.dahua_video.modules.monitor.MonitorUser
import org.jetbrains.exposed.dao.id.IntIdTable
/**
* 组织结构
*/
class Organization : IntIdTable("sys_organization") {
private val monitorUser = MonitorUser()
val userId = integer("monitor_user_id").references(monitorUser.id) // 归属第三方用户
val orgId = text("org_id").uniqueIndex() // 组织id
val name = text("name") // 组织名称
val memo = text("memo").nullable() // 备注信息
val orgType = text("org_type") // 组织类型,"1"为基本组织,"2"~"6"为业务组织
val isParent = bool("is_parent") // 是否是父节点是否有子节点true:是父节点false:不是父节点
val parentId = text("parent_id") // 父节点ID如果父节点是root节点则为""
val root = bool("root") // 是否是根节点true:是根节点false:不是根节点
val orgCode = text("org_code") // 父级组织编码和parentId一样
val orgName = text("org_name") // 组织名称。
val sort = integer("sort") // 排序码
val orgSn = text("orgSn") // 组织自定义编码,通常用于国标编码
val sn = text("sn") // 和orgSn一样
val subCount = integer("sub_count") // 一级子节点数量。
val parentNodeType = integer("parent_node_type").nullable() // 父节点类型1-组织2-设备。
}

View File

@ -0,0 +1,20 @@
package com.hisense.dahua_video.modules.monitor
import com.hisense.dahua_video.modules.sys.SysUser
import org.jetbrains.exposed.dao.id.IntIdTable
import org.jetbrains.exposed.sql.javatime.datetime
/**
* 第三方视频管理平台用户
*/
class MonitorUser : IntIdTable("sys_monitor_user") {
private val sysUser = SysUser() // 所属用户
val userName = text("userName").uniqueIndex() // 用户登录账户
val password = text("password") // 第三方平台密码
val monitorDomain = text("monitorDomain") // 管理平台域
val createTime = datetime("create_time")
val loginTime = datetime("login_time").nullable()
val status = integer("_status")
val userId = integer("sys_user_id").references(sysUser.id) // 归属用户
val identifier = text("identifier") // 标识名称
}

View File

@ -0,0 +1,20 @@
package com.hisense.dahua_video.modules.monitor
import org.jetbrains.exposed.dao.id.IntIdTable
import org.jetbrains.exposed.sql.javatime.datetime
/**
* 平第三方台返回的token
*/
class MonitorUserToken : IntIdTable("sys_monitor_user_token") {
private val monitorUser = MonitorUser()
val token = text("token") // 第三方token
val createTime = datetime("create_time") // 创建时间
val updateTime = datetime("update_time") // 更新时间
val status = integer("_status") // 是否可用
val userId = integer("monitor_user_id").references(monitorUser.id) // 归属第三方用户
val realm = text("realm") // 获取token的返回参数
val randomKey = text("random_key") // 获取token的返回参数
val duration = integer("duration") // token有效时长
}

View File

@ -0,0 +1,4 @@
/**
* 第三方平台大华
*/
package com.hisense.dahua_video.modules.monitor;

View File

@ -0,0 +1,16 @@
package com.hisense.dahua_video.modules.sys
import org.jetbrains.exposed.dao.id.IntIdTable
import org.jetbrains.exposed.sql.javatime.datetime
/**
* 平台用户表
*/
class SysUser : IntIdTable("sys_user") {
val userName = text("userName").uniqueIndex() // 用户登录账户
val password = text("password") // 平台密码
val createTime = datetime("create_time")
val loginTime = datetime("login_time").nullable()
val status = integer("_status")
val loginFailTime = datetime("login_fail_time").nullable() // 上次登录失败时间
}

View File

@ -0,0 +1,4 @@
/**
* 平台系统表
*/
package com.hisense.dahua_video.modules.sys;

View File

@ -0,0 +1,243 @@
package com.hisense.dahua_video.util
import com.hisense.dahua_video.consts.EventBusAddress
import io.vertx.core.Vertx
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonArray
import io.vertx.core.json.JsonObject
import io.vertx.ext.web.client.WebClient
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import java.util.concurrent.atomic.AtomicInteger
import java.util.stream.Collectors
/**
* 第三方设备管理
*/
class DevicesManagerUtil(vertx: Vertx) {
private val logger = LoggerFactory.getLogger(MonitorSessionUtil::class.java)
private val cpuNum = Runtime.getRuntime().availableProcessors()
private var vertx: Vertx
private var event: EventBus? = null
private var client: WebClient? = null
init {
this.vertx = vertx
this.event = this.vertx.eventBus()
client = WebClient.create(this.vertx)
}
/**
* 所有第三方用户同步组织架构 尝试全量同步
*/
fun allAuthorize() {
event!!.request<JsonArray>(EventBusAddress.SYS_MONITOR_USER_ALLMONITORUSER_TOKEN.address, JsonObject()) {
if (it.succeeded()) {
it.result().body().stream().forEach { index ->
index as JsonObject
syncOrganization(index)
}
}
}
}
/**
* 同步第三方组织架构
*/
fun syncOrganization(monitorUserWithToken: JsonObject) {
val port = monitorUserWithToken.getString("monitorDomain").substringAfterLast(":").toInt()
var domain = monitorUserWithToken.getString("monitorDomain").substringBeforeLast(":").substringAfterLast("/")
val tokenString = monitorUserWithToken.getString("token")
val userId = monitorUserWithToken.getInteger("id")
val pageSize = cpuNum * 10
var allCount = AtomicInteger(0)
/**
* 获取下级组织 (参数传空字符时为获取第三方平台根组织)
*/
fun getOrgenization(orgId: String, page: Int) {
val getOrgenizationUrl =
"/videoService/devicesManager/deviceTree?id=$orgId&nodeType=1&typeCode=01&page=$page&pageSize=$pageSize"
logger.info("获取组织url:$getOrgenizationUrl")
client!!.get(port, domain, getOrgenizationUrl)
.putHeader("X-Subject-Token", tokenString)
.send()
.onSuccess { res ->
val result = res.bodyAsJsonObject()
logger.info("组织信息 statusCode:" + res.statusCode())
when (res.statusCode()) {
200 -> { // 成功
logger.info("$orgId 组织信息:$result")
val nextPage = result.getInteger("nextPage", -1)
val resultResult = result.getJsonArray("results") // 获取下级组织
allCount.getAndAdd(resultResult.size())
event!!.publish(
EventBusAddress.SYS_ORGANIZATION_SYNC.address,
JsonArray(resultResult.stream().map {
it as JsonObject
it.put("userId", userId)
it
}.collect(Collectors.toList()))
) // 入库消息
resultResult.stream().filter { index -> // 过滤出存在下级组织的组织
index as JsonObject
index.getBoolean("isParent", false)
}.forEach { index -> // 对下级组织进行
index as JsonObject
GlobalScope.launch(Dispatchers.IO) { // 使用协程
getOrgenization(index.getString("id"), 1) // 递归调用获取下级组织
}
}
if (nextPage != -1) {
GlobalScope.launch(Dispatchers.IO) {// 使用协程
getOrgenization(orgId, nextPage) // 递归调用本组织下级组织
}
} else {
logger.info("组织完成本级分页!!!$orgId 总数据量:${allCount.get()}")
}
}
else -> { // 失败
logger.info("组织同步失败 $orgId")
}
}
}
.onFailure { fail ->
logger.error("获取组织失败$getOrgenizationUrl", fail)
}
}
getOrgenization("", 1) // 根组织开始递归
}
/**
* 同步设备
*/
fun syncDevice(monitorUserWithToken: JsonObject, orgId: String) {
val port = monitorUserWithToken.getString("monitorDomain").substringAfterLast(":").toInt()
var domain = monitorUserWithToken.getString("monitorDomain").substringBeforeLast(":").substringAfterLast("/")
val tokenString = monitorUserWithToken.getString("token")
val userId = monitorUserWithToken.getInteger("id")
val pageSize = cpuNum * 10
var allCount = AtomicInteger(0)
/**
* 获取第三方设备
*/
fun syncDeviceAction(orgId: String, page: Int) {
val getDeviceUrl =
"/videoService/devicesManager/deviceTree?id=$orgId&nodeType=1&typeCode=01;1;ALL&page=$page&pageSize=$pageSize"
logger.info("获取设备url:$getDeviceUrl")
client!!.get(port, domain, getDeviceUrl)
.putHeader("X-Subject-Token", tokenString)
.send()
.onSuccess { res ->
val result = res.bodyAsJsonObject()
logger.info("设备信息 statusCode:" + res.statusCode())
when (res.statusCode()) {
200 -> {
val resultResult = result.getJsonArray("results") // 获取下级组织
val nextPage = result.getInteger("nextPage", -1)
allCount.getAndAdd(resultResult.size())
event!!.publish(
EventBusAddress.SYS_DEVICE_SYNC.address,
JsonArray(resultResult.stream().map {
it as JsonObject
it.put("userId", userId)
it
}.collect(Collectors.toList()))
) // 入库消息
if (nextPage != -1) {
GlobalScope.launch(Dispatchers.IO) {// 使用协程
syncDeviceAction(orgId, nextPage) // 递归调用本组织设备
}
} else {
logger.info("设备完成本级分页!!!$orgId 总数据量:${allCount.get()}")
}
}
else -> {
logger.info("组织设备失败 $orgId")
}
}
}
.onFailure { fail ->
logger.error("获取设备失败$getDeviceUrl", fail)
}
}
syncDeviceAction(orgId, 1) // 分页获取本组织下的设备
}
/**
* 同步该区域设备通道
*/
fun syncDeviceChannel(monitorUserWithToken: JsonObject, orgId: String) {
val port = monitorUserWithToken.getString("monitorDomain").substringAfterLast(":").toInt()
var domain = monitorUserWithToken.getString("monitorDomain").substringBeforeLast(":").substringAfterLast("/")
val tokenString = monitorUserWithToken.getString("token")
val userId = monitorUserWithToken.getInteger("id")
val pageSize = cpuNum * 10
var allCount = AtomicInteger(0)
fun syncDeviceChannelAction(orgId: String, page: Int) {
val getDeviceChannelUrl =
"/videoService/devicesManager/deviceTree?id=$orgId&nodeType=1&typeCode=01;0;ALL;ALL&page=$page&pageSize=$pageSize"
logger.info("获取设备通道url:$getDeviceChannelUrl")
client!!.get(port, domain, getDeviceChannelUrl)
.putHeader("X-Subject-Token", tokenString)
.send()
.onSuccess { res ->
val result = res.bodyAsJsonObject()
logger.info("设备通道信息 statusCode:" + res.statusCode())
when (res.statusCode()) {
200 -> {
val resultResult = result.getJsonArray("results") // 获取下级组织
val nextPage = result.getInteger("nextPage", -1)
allCount.getAndAdd(resultResult.size())
event!!.publish(
EventBusAddress.SYS_DEVICE_CHANNEL_SYNC.address,
JsonArray(resultResult.stream().map {
it as JsonObject
it.put("userId", userId)
it
}.collect(Collectors.toList()))
) // 入库消息
if (nextPage != -1) {
GlobalScope.launch(Dispatchers.IO) {// 使用协程
syncDeviceChannelAction(orgId, nextPage) // 递归调用本组织设备
}
} else {
logger.info("设备完成本级分页!!!$orgId 总数据量:${allCount.get()}")
}
}
else -> {
logger.info("组织设备失败 $orgId")
}
}
}
.onFailure { fail ->
logger.error("获取设备失败$getDeviceChannelUrl", fail)
}
}
syncDeviceChannelAction(orgId, 1)
}
}

View File

@ -0,0 +1,184 @@
package com.hisense.dahua_video.util
import com.hazelcast.internal.util.MD5Util
import com.hisense.dahua_video.consts.EventBusAddress
import io.vertx.core.Vertx
import io.vertx.core.eventbus.EventBus
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonArray
import io.vertx.core.json.JsonObject
import io.vertx.ext.web.client.WebClient
/**
* 全局第三方会话管理工具
*/
class MonitorSessionUtil(vertx: Vertx) {
private val logger = LoggerFactory.getLogger(MonitorSessionUtil::class.java)
private var vertx: Vertx
private var event: EventBus? = null
private var client: WebClient? = null
private var devicesManagerUtil: DevicesManagerUtil? = null
init {
this.vertx = vertx
this.event = this.vertx.eventBus()
client = WebClient.create(this.vertx)
devicesManagerUtil = DevicesManagerUtil(this.vertx)
}
/**
* 所有第三方用户创建会话
*/
fun allAuthorize() {
event!!.request<JsonArray>(EventBusAddress.SYS_MONITOR_USER_ALLMONITORUSER.address, JsonObject()) {
if (it.succeeded()) {
it.result().body().stream().forEach { index ->
index as JsonObject
authorize(index)
}
}
}
}
/**
* 创建会话 第一步骤
*/
private fun authorize(monitorUser: JsonObject) {
logger.info("authorize:" + monitorUser.encode())
val port = monitorUser.getString("monitorDomain").substringAfterLast(":").toInt()
var domain = monitorUser.getString("monitorDomain").substringBeforeLast(":").substringAfterLast("/")
val loginUrl = "/videoService/accounts/authorize"
val parm = JsonObject().put("userName", monitorUser.getString("userName")).put("clientType", "winpc")
logger.info("domain: $domain port:$port")
client!!.post(port, domain, loginUrl)
.putHeader("Content-Type", "application/json")
.sendJson(parm)
.onSuccess { res ->
logger.info("statusCode:" + res.statusCode())
val result = res.bodyAsJsonObject()
logger.info("body:" + result.encode())
monitorUser.put("randomKey", result.getValue("randomKey"))
monitorUser.put("realm", result.getValue("realm"))
monitorUser.put("encryptType", result.getValue("encryptType"))
getToken(monitorUser)
}
.onFailure {
logger.error("创建会话失败", it)
}
}
/**
* 第二步骤 获取token
*/
private fun getToken(monitorUser: JsonObject) {
logger.info("getToken:" + monitorUser.encode())
var sigin = MD5Util.toMD5String(monitorUser.getString("password"))
sigin = MD5Util.toMD5String(monitorUser.getString("userName") + sigin)
sigin = MD5Util.toMD5String(sigin)
sigin = MD5Util.toMD5String(monitorUser.getString("userName") + ":" + monitorUser.getString("realm") + ":" + sigin)
sigin = MD5Util.toMD5String(sigin + ":" + monitorUser.getString("randomKey"))
val port = monitorUser.getString("monitorDomain").substringAfterLast(":").toInt()
var domain = monitorUser.getString("monitorDomain").substringBeforeLast(":").substringAfterLast("/")
val loginUrl = "/videoService/accounts/authorize"
logger.info("domain: $domain port:$port")
val parm = JsonObject()
.put("userName", monitorUser.getString("userName"))
.put("clientType", "winpc")
.put("randomKey", monitorUser.getValue("randomKey"))
.put("realm", monitorUser.getValue("realm"))
.put("encryptType", monitorUser.getValue("encryptType"))
.put("signature", sigin)
client!!.post(port, domain, loginUrl)
.putHeader("Content-Type", "application/json")
.sendJson(parm)
.onSuccess { res ->
val result = res.bodyAsJsonObject()
logger.info("statusCode:" + res.statusCode())
logger.info("body:" + result.encode())
val newToken = JsonObject()
.put("token", result.getString("token"))
.put("userId", monitorUser.getInteger("id"))
.put("realm", monitorUser.getValue("realm"))
.put("randomKey", monitorUser.getValue("randomKey"))
.put("duration", result.getInteger("duration"))
event!!.publish(EventBusAddress.SYS_MONITOR_USER_TOKEN_SAVE_NEW.address, newToken)
keepLiveToken(newToken, monitorUser)
}
.onFailure {
logger.error("获取token失败", it)
}
}
/**
* 第三步骤 定时刷新token
*/
private fun keepLiveToken(token: JsonObject, monitorUser: JsonObject) {
val time = ((token.getLong("duration") * 0.75) * 1000).toLong()
logger.info("token保活时间间隔$time 毫秒")
val syncOrganizationTaskId = syncOrganization(token, monitorUser)
val keepLiveTokenTaskId = vertx.setPeriodic(time) {
logger.info("刷新token!!!")
val port = monitorUser.getString("monitorDomain").substringAfterLast(":").toInt()
var domain = monitorUser.getString("monitorDomain").substringBeforeLast(":").substringAfterLast("/")
val keepLiveTokenUrl = "/videoService/accounts/token/keepalive"
val tokenString = token.getString("token")
val parm = JsonObject()
.put("token", tokenString)
client!!.put(port, domain, keepLiveTokenUrl)
.putHeader("X-Subject-Token", tokenString)
.putHeader("Content-Type", "application/json")
.sendJson(parm)
.onSuccess { res ->
val result = res.bodyAsString()
logger.info("statusCode:" + res.statusCode())
logger.info("body:$result")
when (res.statusCode()) {
200 -> {
event!!.publish(EventBusAddress.SYS_MONITOR_USER_TOKEN_KEEP_LIVE.address, token)
}
else -> {
vertx.cancelTimer(it)
vertx.cancelTimer(syncOrganizationTaskId)
}
}
}
.onFailure { fail ->
logger.error("token保活失败", fail)
vertx.cancelTimer(it)
vertx.cancelTimer(syncOrganizationTaskId)
}
logger.info("完成保活token")
}
}
/**
* 同步该第三方用户的组织
*/
private fun syncOrganization(token: JsonObject, monitorUser: JsonObject): Long {
devicesManagerUtil!!.syncOrganization(
JsonObject()
.put("monitorDomain", monitorUser.getString("monitorDomain"))
.put("token", token.getString("token"))
.put("id", monitorUser.getInteger("id"))
) // 尝试同步该用户对应组织
val syncOrganizationTaskId = vertx.setPeriodic(6 * 60 * 60 * 1000) { // 每间隔6小时进行一次全量组织同步与设备同步
logger.info("--------------------------全量组织同步---------------------")
devicesManagerUtil!!.syncOrganization(
JsonObject()
.put("monitorDomain", monitorUser.getString("monitorDomain"))
.put("token", token.getString("token"))
.put("id", monitorUser.getInteger("id"))
) // 尝试同步该用户对应组织
}
return syncOrganizationTaskId
}
}

View File

@ -0,0 +1,33 @@
package com.hisense.dahua_video.verticle
import com.hisense.dahua_video.consts.EventBusAddress
import com.hisense.dahua_video.util.MonitorSessionUtil
import io.vertx.core.Promise
import io.vertx.core.eventbus.EventBus
import io.vertx.core.file.FileSystem
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.kotlin.coroutines.CoroutineVerticle
/**
* 对接第三方工具端点
*/
class MonitorVerticle : CoroutineVerticle() {
private val logger = LoggerFactory.getLogger(MonitorVerticle::class.java)
var event: EventBus? = null
var fs: FileSystem? = null
override fun start(startFuture: Promise<Void>?) {
event = vertx.eventBus()
fs = vertx.fileSystem()
var shareDate = vertx.sharedData()
shareDate.getLocalLock(EventBusAddress.SYS_MONITOR_USER_ALLMONITORUSER.address)
.onSuccess {
val monitorSessionUtil = MonitorSessionUtil(this.vertx)
monitorSessionUtil.allAuthorize()
logger.info("monitorSessionUtil 创建成功!")
}
startFuture?.complete()
}
}

View File

@ -0,0 +1,32 @@
package com.hisense.dahua_video.verticle
import com.hisense.dahua_video.consts.EventBusAddress
import com.hisense.dahua_video.util.DevicesManagerUtil
import io.vertx.core.Promise
import io.vertx.core.eventbus.EventBus
import io.vertx.core.file.FileSystem
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.kotlin.coroutines.CoroutineVerticle
/**
* 第三方组织同步端点
*/
class OrganizationVerticle : CoroutineVerticle() {
private val logger = LoggerFactory.getLogger(OrganizationVerticle::class.java)
var event: EventBus? = null
var fs: FileSystem? = null
override fun start(startFuture: Promise<Void>?) {
event = vertx.eventBus()
fs = vertx.fileSystem()
var shareDate = vertx.sharedData()
// shareDate.getLocalLock(EventBusAddress.SYS_ORGANIZATION_SYNC.address)
// .onSuccess {
// val devicesManagerUtil = DevicesManagerUtil(vertx)
// logger.info("devicesManagerUtil 创建成功!")
// }
startFuture?.complete()
}
}

View File

@ -0,0 +1,49 @@
package com.hisense.dahua_video.verticle
import com.hisense.dahua_video.consts.EventBusAddress
import com.hisense.dahua_video.dao.*
import io.vertx.core.Promise
import io.vertx.core.eventbus.EventBus
import io.vertx.core.file.FileSystem
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.core.json.JsonObject
import io.vertx.kotlin.coroutines.CoroutineVerticle
/**
* 数据库工厂端点
*/
class SqlFactoryVerticle : CoroutineVerticle() {
private val logger = LoggerFactory.getLogger(SqlFactoryVerticle::class.java)
var event: EventBus? = null
var fs: FileSystem? = null
override fun start(startFuture: Promise<Void>?) {
event = vertx.eventBus()
fs = vertx.fileSystem()
var shareDate = vertx.sharedData()
shareDate.getLocalLock(EventBusAddress.SYS_USER_SIGN_UP.address)
.onSuccess { val sysUserDao = SysUserDao(this.event) }
shareDate.getLocalLock(EventBusAddress.SYS_MONITOR_USER_SIGN_UP.address)
.onSuccess { val monitorUserDao = MonitorUserDao(this.event) }
shareDate.getLocalLock(EventBusAddress.SYS_MONITOR_USER_TOKEN_SAVE_NEW.address)
.onSuccess {
val monitorUserTokenDao = MonitorUserTokenDao(this.event)
val cleanfailtokenTaskId = vertx.setPeriodic(5 * 60 * 1000) { // 每间隔5分钟进行一次失效token清理
logger.info("--------------------------定时清理失效token----------------------")
event!!.publish(EventBusAddress.SYS_MONITOR_CLEANFAILTOKEN.address, JsonObject())
}
}
shareDate.getLocalLock(EventBusAddress.SYS_ORGANIZATION_SYNC.address)
.onSuccess { val organizationDao = OrganizationDao(this.event, vertx) }
shareDate.getLocalLock(EventBusAddress.SYS_DEVICE_SYNC.address)
.onSuccess {
val deviceDao = DeviceDao(this.event, this.vertx)
val deviceChannelDao = DeviceChannelDao(this.event)
}
startFuture?.complete()
}
}

View File

@ -0,0 +1,90 @@
package com.hisense.dahua_video.verticle
import com.hisense.dahua_video.controller.CommonController
import com.hisense.dahua_video.controller.IndexController
import com.hisense.dahua_video.controller.MonitorUserController
import io.vertx.core.Promise
import io.vertx.core.Vertx
import io.vertx.core.eventbus.EventBus
import io.vertx.core.file.FileSystem
import io.vertx.core.http.HttpMethod
import io.vertx.core.http.HttpServerOptions
import io.vertx.core.impl.logging.Logger
import io.vertx.core.impl.logging.LoggerFactory
import io.vertx.ext.web.Router
import io.vertx.ext.web.handler.BodyHandler
import io.vertx.ext.web.handler.CorsHandler
import io.vertx.ext.web.handler.StaticHandler
import io.vertx.ext.web.templ.thymeleaf.ThymeleafTemplateEngine
import io.vertx.kotlin.coroutines.CoroutineVerticle
/**
* web接口
*/
class WebAPIVerticle : CoroutineVerticle() {
private val logger: Logger = LoggerFactory.getLogger(WebAPIVerticle::class.java)
var event: EventBus? = null
var fs: FileSystem? = null
override fun start(startFuture: Promise<Void>?) {
event = vertx.eventBus()
fs = vertx.fileSystem()
val config = Vertx.currentContext().config()
val port = config.getInteger("port", 8888)
val router = Router.router(vertx)
vertx.createHttpServer(HttpServerOptions().apply {
isTcpFastOpen = vertx.isNativeTransportEnabled
isTcpCork = vertx.isNativeTransportEnabled
isTcpQuickAck = vertx.isNativeTransportEnabled
isReusePort = vertx.isNativeTransportEnabled
isTcpNoDelay = vertx.isNativeTransportEnabled
}).requestHandler(router).listen(port) { http ->
if (http.succeeded()) {
startFuture?.complete()
logger.info("http 服务监听端口: $port")
/**
* 路由配置
*/
setRouter(router)
} else {
logger.error("创建 HTTP server 失败", http.cause())
startFuture?.fail(http.cause())
}
}
}
/**
* 设置全局路由
*/
private fun setRouter(router: Router = Router.router(vertx)) {
val templateEngine = ThymeleafTemplateEngine.create(vertx) // ThymeleafTemplateEngine 配置
val commonController = CommonController(event)
val indexControl = IndexController(this.vertx, templateEngine)
val monitorUserController = MonitorUserController(this.vertx, templateEngine)
router.route().method(HttpMethod.POST).handler(BodyHandler.create())
router.route("/*").handler(StaticHandler.create()) //静态资源
router.route().handler(
CorsHandler.create("*").allowedMethod(HttpMethod.GET).allowedMethod(HttpMethod.OPTIONS)
.allowedMethod(HttpMethod.POST).allowCredentials(true).addOrigin("*").allowedHeader("token")
.allowedHeader("Access-Control-Request-Method").allowedHeader("Access-Control-Allow-Credentials")
.allowedHeader("Access-Control-Allow-Origin").allowedHeader("Access-Control-Allow-Headers")
.allowedHeader("Content-Type")
)
/**
* 跨域
*/
router.route().method(HttpMethod.OPTIONS).handler(commonController::optionSCros)
router.route().method(HttpMethod.GET).handler(commonController::getCros)
logger.info("开放管理员后台")
router.route("/admin/*").order(0).handler(commonController::checkLogin) // 管理首页
router.route(HttpMethod.GET, "/admin/").handler(indexControl::index) // 首页
router.route(HttpMethod.POST, "/admin/check").handler(indexControl::check) // 注册校验
router.route(HttpMethod.POST, "/admin/sign_up").handler(indexControl::sign_up) // 注册表单
router.route(HttpMethod.POST, "/admin/monitor_user/sign_up").handler(monitorUserController::sign_up) // 第三方平台注册表单
}
}

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="log-pattern">%d{yyyy-MM-dd HH:mm:ss} |- %highlight{%5p}{TRACE=blue, DEBUG=green, INFO=green,
WARN=yellow, ERROR=red, FATAL=red} in %style{%C{1}:%L}{cyan} [%style{%t}{magenta}] - %m%n
</Property>
</Properties>
<Appenders>
<Appender></Appender>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${log-pattern}"/>
</Console>
<RollingRandomAccessFile name="INFO-FILE" fileName="logs/app.log" append="true"
filePattern="logs/app.log.%d{yyyyMMdd}-%i">
<PatternLayout>
<Pattern>%d %-5p [%c]-[%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="20 MB"/>
</Policies>
<CronTriggeringPolicy schedule="0 0 5 * * ? "/>
<DefaultRolloverStrategy>
<Delete basePath="logs" maxDepth="1">
<IfFileName glob="app.log.*"/>
<!--删除5天前的文件-->
<IfLastModified age="5d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="ERROR-FILE" fileName="logs/app-error.log" append="true"
filePattern="logs/app-error.log.%d{yyyyMMdd}-%i">
<PatternLayout>
<Pattern>%d %-5p [%c]-[%t] %m%n</Pattern>
</PatternLayout>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="20 MB"/>
</Policies>
<CronTriggeringPolicy schedule="0 0 5 * * ? "/>
<DefaultRolloverStrategy>
<Delete basePath="logs" maxDepth="1">
<IfFileName glob="app-error.*"/>
<!--删除5天前的文件-->
<IfLastModified age="5d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingRandomAccessFile>
</Appenders>
<!-- Logger levels: trace, debug, info, warn, error, fatal -->
<Loggers>
<!--name 是你需要打log的包名-->
<AsyncLogger name="com.hisense" level="DEBUG" additivity="false" includeLocation="true">
<AppenderRef ref="Console"/>
<appender-ref ref="INFO-FILE"/>
<appender-ref ref="ERROR-FILE"/>
</AsyncLogger>
<Root level="INFO">
<AppenderRef ref="Console"/>
<appender-ref ref="INFO-FILE"/>
<appender-ref ref="ERROR-FILE"/>
</Root>
</Loggers>
</Configuration>

View File

@ -0,0 +1,113 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>视频管理平台</title>
<link rel="stylesheet" th:href="@{/layui/css/layui.css}">
</head>
<body>
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<div class="layui-logo layui-hide-xs layui-bg-black">视频管理平台</div>
<!-- 头部区域可配合layui 已有的水平导航) -->
<ul class="layui-nav layui-layout-left" lay-header-event="menuLeft">
<li class="layui-nav-item layui-hide-xs"><a href="">视频预览</a></li>
<li class="layui-nav-item layui-hide-xs"><a href="">视频截图</a></li>
<li class="layui-nav-item">
<a href="javascript:;">nav groups</a>
<dl class="layui-nav-child">
<dd><a href="">menu 11</a></dd>
<dd><a href="">menu 22</a></dd>
<dd><a href="">menu 33</a></dd>
</dl>
</li>
</ul>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item layui-hide layui-show-md-inline-block">
<a href="javascript:;">
<img src="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg" class="layui-nav-img">
tester
</a>
<dl class="layui-nav-child">
<dd><a href="">Your Profile</a></dd>
<dd><a href="">Settings</a></dd>
<dd><a href="">Sign out</a></dd>
</dl>
</li>
<li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
<a href="javascript:;">
<i class="layui-icon layui-icon-more-vertical"></i>
</a>
</li>
</ul>
</div>
<div class="layui-side layui-bg-black">
<div class="layui-side-scroll">
<!-- 左侧导航区域可配合layui已有的垂直导航 -->
<ul class="layui-nav layui-nav-tree" lay-filter="test">
<li class="layui-nav-item layui-nav-itemed">
<a class="" href="javascript:;">menu group 1</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">menu 1</a></dd>
<dd><a href="javascript:;">menu 2</a></dd>
<dd><a href="javascript:;">menu 3</a></dd>
<dd><a href="">the links</a></dd>
</dl>
</li>
<li class="layui-nav-item">
<a href="javascript:;">menu group 2</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">list 1</a></dd>
<dd><a href="javascript:;">list 2</a></dd>
<dd><a href="">超链接</a></dd>
</dl>
</li>
</ul>
</div>
</div>
<div class="layui-body">
<!-- 内容主体区域 -->
<div style="padding: 15px;">内容主体区域。记得修改 layui.css 和 js 的路径</div>
</div>
<div class="layui-footer">
<!-- 底部固定区域 -->
<span th:text="${msg}"></span>
</div>
</div>
</body>
<script th:src="@{/layui/layui.js}"></script>
<script>
//JS
layui.use(['element', 'layer', 'util'], function(){
var element = layui.element
,layer = layui.layer
,util = layui.util
,$ = layui.$;
//头部事件
util.event('lay-header-event', {
//左侧菜单事件
menuLeft: function(othis){
layer.msg('展开左侧菜单的操作', {icon: 0});
console.log('展开左侧菜单的操作')
}
,menuRight: function(){
layer.open({
type: 1
,content: '<div style="padding: 15px;">处理右侧面板的操作</div>'
,area: ['260px', '100%']
,offset: 'rt' //右上角
,anim: 5
,shadeClose: true
});
}
});
});
</script>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #eee;border-left-width:6px;background-color:#FAFAFA;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:40px;line-height:40px;border-bottom:1px solid #eee}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 10px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view .layui-code-ol li:first-child{padding-top:10px}.layui-code-view .layui-code-ol li:last-child{padding-bottom:10px}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}.layui-code-demo .layui-code{visibility:visible!important;margin:-15px;border-top:none;border-right:none;border-bottom:none}.layui-code-demo .layui-tab-content{padding:15px;border-top:none}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,22 @@
package com.hisense.dahua_video
import io.vertx.core.Vertx
import io.vertx.junit5.VertxExtension
import io.vertx.junit5.VertxTestContext
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
@ExtendWith(VertxExtension::class)
class TestMainVerticle {
@BeforeEach
fun deploy_verticle(vertx: Vertx, testContext: VertxTestContext) {
vertx.deployVerticle(MainVerticle(), testContext.succeeding<String> { _ -> testContext.completeNow() })
}
@Test
fun verticle_deployed(vertx: Vertx, testContext: VertxTestContext) {
testContext.completeNow()
}
}