mina1.7结合spring的应用

本文详细介绍了如何使用Spring框架配置Apache Mina来创建一个多端口服务器,包括配置文件、服务器组件、过滤器及客户端测试。重点在于简化服务器部署过程并展示其实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然说 mina已经发布了2.0的版本了。但是1.7还是应用很多。mina通过spring的配置,使用起来就更加的简单了

 

现在 先看mina在spring中的配置:

 

本次练习中是监听2个端口

applicationContext-mina.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

 

 <bean
  class="org.springframework.beans.factory.config.CustomEditorConfigurer">
  <property name="customEditors">
   <map>
    <entry key="java.net.SocketAddress">
     <bean
      class="org.apache.mina.integration.spring.InetSocketAddressEditor" />
    </entry>
   </map>
  </property>
 </bean>

 

 

<!--创建服务器-->

 <bean id="ioAcceptor"
  class="org.apache.mina.integration.spring.IoAcceptorFactoryBean">
  <property name="target">
   <bean
    class="org.apache.mina.transport.socket.nio.SocketAcceptor" />
  </property>
  <property name="bindings">
   <list>//这里是个list 里面可以创建多个监听
    <bean
     class="org.apache.mina.integration.spring.Binding">
     <property name="address" value=":8888" />//监听端口:8888
     <property name="handler" ref="SampleHandler" />//SampleHandler:定义服务器的handler
     <property name="serviceConfig">
      <bean
       class="org.apache.mina.transport.socket.nio.SocketAcceptorConfig">
       <property name="filterChainBuilder"//配置filter
        ref="filterChainBuilder" />//指向:filterChainBuilder
       <property name="reuseAddress" value="true" />
      </bean>
     </property>
    </bean>
    
    <bean
     class="org.apache.mina.integration.spring.Binding">
     <property name="address" value=":9999" />//第二个监听端口:9999
     <property name="handler" ref="bossSampleHandler" />//监听该端口的 handler
     <property name="serviceConfig">
      <bean
       class="org.apache.mina.transport.socket.nio.SocketAcceptorConfig">
       <property name="filterChainBuilder"
        ref="filterChainBuilder" />
       <property name="reuseAddress" value="true" />
      </bean>
     </property>
    </bean>
    
   </list>
  </property>
 </bean>
 <bean id="SampleHandler" class="cn.org.handler.HandlerTwo" />

 <bean id="bossSampleHandler" class="cn.org.handler.HandlerOne" />

 

//定义filter
 <bean id="filterChainBuilder"
  class="org.apache.mina.integration.spring.DefaultIoFilterChainBuilderFactoryBean">
  <property name="filters">
   <list>
    <bean
     class="org.apache.mina.filter.codec.ProtocolCodecFilter">
     <constructor-arg>
        <bean
       class="org.apache.mina.filter.codec.textline.TextLineCodecFactory" /> //这个是编码格式filter
     </constructor-arg>
    </bean>
    <bean class="org.apache.mina.filter.LoggingFilter" />//日志的filter
   </list>
  </property>
 </bean>
</beans>

 

 

sprng的简单配置文件就是这样:

 

然后看 handler:

 

 

SampleHandler 和 bossSampleHandler 。我写的都是一样的:

 

package cn.org.handler;

import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.IoHandlerAdapter;
import org.apache.mina.common.IoSession;

public class HandlerOne extends IoHandlerAdapter {

 public HandlerOne() {
  // TODO Auto-generated constructor stub
 }

 @Override
 public void exceptionCaught(IoSession session, Throwable cause)
   throws Exception {

 }

 @Override
 public void messageReceived(IoSession session, Object message)
   throws Exception {
  // TODO Auto-generated method stub
  System.out.println("收到信息");
  System.out.println("message :"+message.toString());
 }

 @Override
 public void messageSent(IoSession session, Object message) throws Exception {
      System.out.println("小心发送");
 }

 @Override
 public void sessionClosed(IoSession session) throws Exception {
  // TODO Auto-generated method stub
  super.sessionClosed(session);
 }

 @Override
 public void sessionCreated(IoSession session) throws Exception {
  System.out.println(session.getRemoteAddress().toString() +"---create");

 }

 @Override
 public void sessionIdle(IoSession session, IdleStatus status)
   throws Exception {
               System.out.println(session.getServiceAddress() +"IDS");
 }

 @Override
 public void sessionOpened(IoSession session) throws Exception {
     System.out.println("连接打开:"+session.getLocalAddress());
 }

}

 

 

 

 

现在测试:

 

Test.java

 

public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  ClassPathXmlApplicationContext ct =    new ClassPathXmlApplicationContext("applicationContext-mina.xml");  

 }

}

 

 

控制台打印出:

 

2010-1-16 19:00:51 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing
org.springframework.context.support.ClassPathXmlApplicationContext@4b4333: display name [org.springframework.context.support.ClassPathXmlApplicationContext@4b4333]; startup date [Sat Jan 16 19:00:51 CST 2010]; root of context hierarchy
2010-1-16 19:00:51 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [applicationContext-mina.xml]
2010-1-16 19:00:51 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@4b4333]:
org.springframework.beans.factory.support.DefaultListableBeanFactory@1975b59
2010-1-16 19:00:52 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in
org.springframework.beans.factory.support.DefaultListableBeanFactory@1975b59: defining beans [org.springframework.beans.factory.config.CustomEditorConfigurer#0,ioAcceptor,SampleHandler,bossSampleHandler,filterChainBuilder]; root of factory hierarchy

表明服务器就已经启动了:

 

 

现在你可以用telent的方式测试。也可以写个客户端的测试类:

 

写了个客户端的测试类:Clint.java

public class Clint {

 /**
  * @param args
  */
 
 final static char end = 0x1a;
 
 public static void main(String[] args) {
     SocketConnector connector = new SocketConnector();
  SocketAddress address = new InetSocketAddress("127.0.0.1", 8888);
  SocketConnectorConfig config = new SocketConnectorConfig();
  config.setConnectTimeout(10);// 秒
  connector.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "GB2312" )))); //设置编码过滤器 

  connector.getFilterChain().addLast( "logger", new org.apache.mina.filter.LoggingFilter() );

  IoSession session =null;
  ConnectFuture cf = connector.connect(address, new ClintHandler(),
    config);
  cf.join();
  if (cf.isConnected()) {
   session = cf.getSession();
   System.out.println("连接成功");
   session.write("abc");
  }else{
   System.out.println("连接失败!!!");
  }

    }
 }

 

这这个测试类中。我只 连接了端口:8888  。也可以测试连接端口:9999。看下是什么情况

主要是jar包:spring.jar和mina1.7里面的jar包。还有下载slf4j-nop-1.5.2.jar(这个包是日志相关的)

 

"C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:D:\IDEA\IntelliJ IDEA 2023.2.8\lib\idea_rt.jar=58609:D:\IDEA\IntelliJ IDEA 2023.2.8\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_191\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar;D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master\target\classes;D:\repository\org\springframework\boot\spring-boot-starter-data-redis\2.7.18\spring-boot-starter-data-redis-2.7.18.jar;D:\repository\org\springframework\boot\spring-boot-starter\2.7.18\spring-boot-starter-2.7.18.jar;D:\repository\org\springframework\boot\spring-boot-starter-logging\2.7.18\spring-boot-starter-logging-2.7.18.jar;D:\repository\ch\qos\logback\logback-classic\1.2.12\logback-classic-1.2.12.jar;D:\repository\ch\qos\logback\logback-core\1.2.12\logback-core-1.2.12.jar;D:\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;D:\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;D:\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;D:\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\repository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;D:\repository\org\springframework\data\spring-data-redis\2.7.18\spring-data-redis-2.7.18.jar;D:\repository\org\springframework\data\spring-data-keyvalue\2.7.18\spring-data-keyvalue-2.7.18.jar;D:\repository\org\springframework\data\spring-data-commons\2.7.18\spring-data-commons-2.7.18.jar;D:\repository\org\springframework\spring-tx\5.3.31\spring-tx-5.3.31.jar;D:\repository\org\springframework\spring-oxm\5.3.31\spring-oxm-5.3.31.jar;D:\repository\io\lettuce\lettuce-core\6.1.10.RELEASE\lettuce-core-6.1.10.RELEASE.jar;D:\repository\io\netty\netty-common\4.1.101.Final\netty-common-4.1.101.Final.jar;D:\repository\io\netty\netty-handler\4.1.101.Final\netty-handler-4.1.101.Final.jar;D:\repository\io\netty\netty-resolver\4.1.101.Final\netty-resolver-4.1.101.Final.jar;D:\repository\io\netty\netty-buffer\4.1.101.Final\netty-buffer-4.1.101.Final.jar;D:\repository\io\netty\netty-transport-native-unix-common\4.1.101.Final\netty-transport-native-unix-common-4.1.101.Final.jar;D:\repository\io\netty\netty-codec\4.1.101.Final\netty-codec-4.1.101.Final.jar;D:\repository\io\netty\netty-transport\4.1.101.Final\netty-transport-4.1.101.Final.jar;D:\repository\io\projectreactor\reactor-core\3.4.34\reactor-core-3.4.34.jar;D:\repository\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;D:\repository\org\springframework\boot\spring-boot-starter-cache\2.7.18\spring-boot-starter-cache-2.7.18.jar;D:\repository\org\springframework\spring-context-support\5.3.31\spring-context-support-5.3.31.jar;D:\repository\org\springframework\spring-beans\5.3.31\spring-beans-5.3.31.jar;D:\repository\org\springframework\spring-context\5.3.31\spring-context-5.3.31.jar;D:\repository\org\springframework\boot\spring-boot-starter-web\2.7.18\spring-boot-starter-web-2.7.18.jar;D:\repository\org\springframework\boot\spring-boot-starter-json\2.7.18\spring-boot-starter-json-2.7.18.jar;D:\repository\com\fasterxml\jackson\core\jackson-databind\2.13.5\jackson-databind-2.13.5.jar;D:\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.5\jackson-annotations-2.13.5.jar;D:\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.5\jackson-datatype-jdk8-2.13.5.jar;D:\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.5\jackson-datatype-jsr310-2.13.5.jar;D:\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.5\jackson-module-parameter-names-2.13.5.jar;D:\repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.18\spring-boot-starter-tomcat-2.7.18.jar;D:\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.83\tomcat-embed-core-9.0.83.jar;D:\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.83\tomcat-embed-el-9.0.83.jar;D:\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.83\tomcat-embed-websocket-9.0.83.jar;D:\repository\org\springframework\spring-web\5.3.31\spring-web-5.3.31.jar;D:\repository\org\springframework\spring-webmvc\5.3.31\spring-webmvc-5.3.31.jar;D:\repository\org\springframework\spring-expression\5.3.31\spring-expression-5.3.31.jar;D:\repository\org\springframework\boot\spring-boot-starter-websocket\2.7.18\spring-boot-starter-websocket-2.7.18.jar;D:\repository\org\springframework\spring-messaging\5.3.31\spring-messaging-5.3.31.jar;D:\repository\org\springframework\spring-websocket\5.3.31\spring-websocket-5.3.31.jar;D:\repository\org\springframework\boot\spring-boot-configuration-processor\2.7.18\spring-boot-configuration-processor-2.7.18.jar;D:\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.2.0\mybatis-spring-boot-starter-2.2.0.jar;D:\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.2.0\mybatis-spring-boot-autoconfigure-2.2.0.jar;D:\repository\org\mybatis\mybatis\3.5.7\mybatis-3.5.7.jar;D:\repository\org\mybatis\mybatis-spring\2.0.6\mybatis-spring-2.0.6.jar;D:\repository\org\springframework\boot\spring-boot-starter-security\2.7.18\spring-boot-starter-security-2.7.18.jar;D:\repository\org\springframework\spring-aop\5.3.31\spring-aop-5.3.31.jar;D:\repository\org\springframework\security\spring-security-config\5.7.11\spring-security-config-5.7.11.jar;D:\repository\org\springframework\security\spring-security-web\5.7.11\spring-security-web-5.7.11.jar;D:\repository\org\springframework\boot\spring-boot-starter-jdbc\2.7.18\spring-boot-starter-jdbc-2.7.18.jar;D:\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;D:\repository\org\springframework\spring-jdbc\5.3.31\spring-jdbc-5.3.31.jar;D:\repository\com\alibaba\druid-spring-boot-starter\1.2.23\druid-spring-boot-starter-1.2.23.jar;D:\repository\com\alibaba\druid\1.2.23\druid-1.2.23.jar;D:\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;D:\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.18\spring-boot-autoconfigure-2.7.18.jar;D:\repository\org\glassfish\jaxb\jaxb-runtime\2.3.9\jaxb-runtime-2.3.9.jar;D:\repository\org\glassfish\jaxb\txw2\2.3.9\txw2-2.3.9.jar;D:\repository\com\sun\istack\istack-commons-runtime\3.0.12\istack-commons-runtime-3.0.12.jar;D:\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;D:\repository\com\mysql\mysql-connector-j\8.2.0\mysql-connector-j-8.2.0.jar;D:\repository\org\postgresql\postgresql\42.5.1\postgresql-42.5.1.jar;D:\repository\org\checkerframework\checker-qual\3.5.0\checker-qual-3.5.0.jar;D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master\libs\jdbc-x86\kingbase8-8.6.0.jar;D:\repository\com\github\pagehelper\pagehelper-spring-boot-starter\1.4.6\pagehelper-spring-boot-starter-1.4.6.jar;D:\repository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.4.6\pagehelper-spring-boot-autoconfigure-1.4.6.jar;D:\repository\com\github\pagehelper\pagehelper\5.3.2\pagehelper-5.3.2.jar;D:\repository\com\github\jsqlparser\jsqlparser\4.5\jsqlparser-4.5.jar;D:\repository\org\springdoc\springdoc-openapi-ui\1.6.10\springdoc-openapi-ui-1.6.10.jar;D:\repository\org\springdoc\springdoc-openapi-webmvc-core\1.6.10\springdoc-openapi-webmvc-core-1.6.10.jar;D:\repository\org\webjars\swagger-ui\4.13.2\swagger-ui-4.13.2.jar;D:\repository\org\webjars\webjars-locator-core\0.50\webjars-locator-core-0.50.jar;D:\repository\com\fasterxml\jackson\core\jackson-core\2.13.5\jackson-core-2.13.5.jar;D:\repository\io\github\classgraph\classgraph\4.8.149\classgraph-4.8.149.jar;D:\repository\org\springdoc\springdoc-openapi-security\1.6.10\springdoc-openapi-security-1.6.10.jar;D:\repository\org\springdoc\springdoc-openapi-common\1.6.10\springdoc-openapi-common-1.6.10.jar;D:\repository\io\swagger\core\v3\swagger-core\2.2.2\swagger-core-2.2.2.jar;D:\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.13.5\jackson-dataformat-yaml-2.13.5.jar;D:\repository\io\swagger\core\v3\swagger-annotations\2.2.2\swagger-annotations-2.2.2.jar;D:\repository\io\swagger\core\v3\swagger-models\2.2.2\swagger-models-2.2.2.jar;D:\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;D:\repository\org\springframework\security\spring-security-core\5.7.11\spring-security-core-5.7.11.jar;D:\repository\org\springframework\security\spring-security-crypto\5.7.11\spring-security-crypto-5.7.11.jar;D:\repository\com\github\xiaoymin\knife4j-springdoc-ui\3.0.3\knife4j-springdoc-ui-3.0.3.jar;D:\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\repository\org\springframework\boot\spring-boot-starter-aop\2.7.18\spring-boot-starter-aop-2.7.18.jar;D:\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;D:\repository\javax\sip\jain-sip-ri\1.3.0-91\jain-sip-ri-1.3.0-91.jar;D:\repository\org\slf4j\log4j-over-slf4j\1.7.36\log4j-over-slf4j-1.7.36.jar;D:\repository\org\dom4j\dom4j\2.1.3\dom4j-2.1.3.jar;D:\repository\com\alibaba\fastjson2\fastjson2\2.0.57\fastjson2-2.0.57.jar;D:\repository\com\alibaba\fastjson2\fastjson2-extension\2.0.57\fastjson2-extension-2.0.57.jar;D:\repository\com\alibaba\fastjson2\fastjson2-extension-spring5\2.0.57\fastjson2-extension-spring5-2.0.57.jar;D:\repository\com\squareup\okhttp3\okhttp\4.10.0\okhttp-4.10.0.jar;D:\repository\com\squareup\okio\okio-jvm\3.0.0\okio-jvm-3.0.0.jar;D:\repository\org\jetbrains\kotlin\kotlin-stdlib-common\1.6.21\kotlin-stdlib-common-1.6.21.jar;D:\repository\org\jetbrains\kotlin\kotlin-stdlib\1.6.21\kotlin-stdlib-1.6.21.jar;D:\repository\org\jetbrains\annotations\13.0\annotations-13.0.jar;D:\repository\com\squareup\okhttp3\logging-interceptor\4.10.0\logging-interceptor-4.10.0.jar;D:\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk8\1.6.21\kotlin-stdlib-jdk8-1.6.21.jar;D:\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk7\1.6.21\kotlin-stdlib-jdk7-1.6.21.jar;D:\repository\io\github\rburgst\okhttp-digest\2.7\okhttp-digest-2.7.jar;D:\repository\org\bitbucket\b_c\jose4j\0.9.3\jose4j-0.9.3.jar;D:\repository\org\mitre\dsmiley\httpproxy\smiley-http-proxy-servlet\1.12.1\smiley-http-proxy-servlet-1.12.1.jar;D:\repository\org\apache\httpcomponents\httpclient\4.5.14\httpclient-4.5.14.jar;D:\repository\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;D:\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\repository\com\alibaba\easyexcel\3.3.2\easyexcel-3.3.2.jar;D:\repository\com\alibaba\easyexcel-core\3.3.2\easyexcel-core-3.3.2.jar;D:\repository\com\alibaba\easyexcel-support\3.3.2\easyexcel-support-3.3.2.jar;D:\repository\org\apache\poi\poi\4.1.2\poi-4.1.2.jar;D:\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;D:\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;D:\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;D:\repository\org\apache\poi\poi-ooxml\4.1.2\poi-ooxml-4.1.2.jar;D:\repository\com\github\virtuald\curvesapi\1.06\curvesapi-1.06.jar;D:\repository\org\apache\poi\poi-ooxml-schemas\4.1.2\poi-ooxml-schemas-4.1.2.jar;D:\repository\org\apache\xmlbeans\xmlbeans\3.1.0\xmlbeans-3.1.0.jar;D:\repository\org\apache\commons\commons-csv\1.8\commons-csv-1.8.jar;D:\repository\org\ehcache\ehcache\3.10.8\ehcache-3.10.8.jar;D:\repository\javax\cache\cache-api\1.1.1\cache-api-1.1.1.jar;D:\repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;D:\repository\org\apache\commons\commons-compress\1.24.0\commons-compress-1.24.0.jar;D:\repository\com\github\oshi\oshi-core\6.2.2\oshi-core-6.2.2.jar;D:\repository\net\java\dev\jna\jna\5.12.1\jna-5.12.1.jar;D:\repository\net\java\dev\jna\jna-platform\5.12.1\jna-platform-5.12.1.jar;D:\repository\org\springframework\session\spring-session-core\2.7.4\spring-session-core-2.7.4.jar;D:\repository\org\springframework\spring-jcl\5.3.31\spring-jcl-5.3.31.jar;D:\repository\com\google\guava\guava\32.1.3-jre\guava-32.1.3-jre.jar;D:\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;D:\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\repository\com\google\errorprone\error_prone_annotations\2.21.1\error_prone_annotations-2.21.1.jar;D:\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-annotations-2.8.jar;D:\repository\org\apache\ftpserver\ftpserver-core\1.2.0\ftpserver-core-1.2.0.jar;D:\repository\org\apache\mina\mina-core\2.1.6\mina-core-2.1.6.jar;D:\repository\org\apache\ftpserver\ftplet-api\1.2.0\ftplet-api-1.2.0.jar;D:\repository\org\projectlombok\lombok\1.18.30\lombok-1.18.30.jar;D:\repository\io\github\sevdokimov\logviewer\log-viewer-spring-boot\1.0.10\log-viewer-spring-boot-1.0.10.jar;D:\repository\org\springframework\boot\spring-boot\2.7.18\spring-boot-2.7.18.jar;D:\repository\io\github\sevdokimov\logviewer\log-viewer\1.0.10\log-viewer-1.0.10.jar;D:\repository\io\github\sevdokimov\logviewer\log-viewer-frontend\1.0.10\log-viewer-frontend-1.0.10.jar;D:\repository\com\google\code\gson\gson\2.9.1\gson-2.9.1.jar;D:\repository\com\github\ben-manes\caffeine\caffeine\2.9.3\caffeine-2.9.3.jar;D:\repository\com\typesafe\config\1.3.3\config-1.3.3.jar;D:\repository\org\mozilla\rhino\1.7.13\rhino-1.7.13.jar;D:\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;D:\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;D:\repository\org\springframework\spring-core\5.3.31\spring-core-5.3.31.jar" com.genersoft.iot.vmp.VManageBootstrap ___ __ ___ ___ ________ ________ ________ ________ |\ \ |\ \|\ \ / /|\ __ \ |\ __ \|\ __ \|\ __ \ \ \ \ \ \ \ \ \ / / | \ \|\ \ ____________\ \ \|\ \ \ \|\ \ \ \|\ \ \ \ \ __\ \ \ \ \/ / / \ \ ____\\____________\ \ ____\ \ _ _\ \ \\\ \ \ \ \|\__\_\ \ \ / / \ \ \___\|____________|\ \ \___|\ \ \\ \\ \ \\\ \ \ \____________\ \__/ / \ \__\ \ \__\ \ \__\\ _\\ \_______\ \|____________|\|__|/ \|__| \|__| \|__|\|__|\|_______| 2025-08-21 16:01:04.159 [main] INFO --- com.genersoft.iot.vmp.VManageBootstrap: 55 Starting VManageBootstrap using Java 1.8.0_131 on DESKTOP-UF2P6NE with PID 174620 (D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master\target\classes started by lenovo in D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master) 2025-08-21 16:01:04.163 [main] INFO --- com.genersoft.iot.vmp.VManageBootstrap: 638 The following 1 profile is active: "274-dev" 2025-08-21 16:01:05.021 [main] INFO --- o.s.context.annotation.ConfigurationClassParser: 471 Properties location [classpath:git.properties] not resolvable: class path resource [git.properties] cannot be opened because it does not exist 2025-08-21 16:01:05.687 [main] INFO --- o.s.d.r.config.RepositoryConfigurationDelegate: 262 Multiple Spring Data modules found, entering strict repository configuration mode 2025-08-21 16:01:05.689 [main] INFO --- o.s.d.r.config.RepositoryConfigurationDelegate: 132 Bootstrapping Spring Data Redis repositories in DEFAULT mode. 2025-08-21 16:01:05.807 [main] INFO --- o.s.d.r.config.RepositoryConfigurationDelegate: 201 Finished Spring Data repository scanning in 107 ms. Found 0 Redis repository interfaces. 2025-08-21 16:01:06.525 [main] INFO --- o.s.boot.web.embedded.tomcat.TomcatWebServer: 108 Tomcat initialized with port(s): 8080 (http) 2025-08-21 16:01:06.535 [main] INFO --- org.apache.coyote.http11.Http11NioProtocol: 173 Initializing ProtocolHandler ["http-nio-8080"] 2025-08-21 16:01:06.537 [main] INFO --- org.apache.catalina.core.StandardService: 173 Starting service [Tomcat] 2025-08-21 16:01:06.537 [main] INFO --- org.apache.catalina.core.StandardEngine: 173 Starting Servlet engine: [Apache Tomcat/9.0.83] 2025-08-21 16:01:06.797 [main] INFO --- o.a.c.core.ContainerBase.[Tomcat].[localhost].[/]: 173 Initializing Spring embedded WebApplicationContext 2025-08-21 16:01:06.797 [main] INFO --- o.s.b.w.s.c.ServletWebServerApplicationContext: 292 Root WebApplicationContext: initialization completed in 2595 ms 2025-08-21 16:01:07.117 [main] INFO --- c.a.d.s.b.a.DruidDataSourceAutoConfigure: 68 Init DruidDataSource 2025-08-21 16:01:07.235 [main] ERROR --- o.s.boot.web.embedded.tomcat.TomcatStarter: 61 Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'proxyServletConfig': Unsatisfied dependency expressed through field 'mediaServerService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mediaServerServiceImpl': Unsatisfied dependency expressed through field 'mediaServerMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mediaServerMapper' defined in file [D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master\target\classes\com\genersoft\iot\vmp\storager\dao\MediaServerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/genersoft/iot/vmp/conf/MybatisConfig.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class 2025-08-21 16:01:07.255 [main] INFO --- org.apache.catalina.core.StandardService: 173 Stopping service [Tomcat] 2025-08-21 16:01:07.268 [main] WARN --- org.apache.catalina.loader.WebappClassLoaderBase: 173 The web application [ROOT] appears to have started a thread named [lettuce-timer-3-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: java.lang.Thread.sleep(Native Method) io.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:600) io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:496) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.lang.Thread.run(Thread.java:748) 2025-08-21 16:01:07.269 [main] WARN --- o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext: 599 Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat 2025-08-21 16:01:07.287 [main] INFO --- o.s.b.a.l.ConditionEvaluationReportLoggingListener: 136 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2025-08-21 16:01:07.301 [main] ERROR --- o.s.b.diagnostics.LoggingFailureAnalysisReporter: 40 *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (the profiles 274-dev are currently active). Process finished with exit code 1 分析错误
最新发布
08-22
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值