jeecgboot / JeecgBoot

🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
http://www.jeecg.com
Apache License 2.0
40.1k stars 14.7k forks source link

连接达梦数据库出启动失败! #2496

Closed HUANGZHENJIE2 closed 3 years ago

HUANGZHENJIE2 commented 3 years ago
版本号:

2.2.0

问题描述:

数据库达梦8 使用的连接达梦方案参考:http://doc.jeecg.com/2043951 第二种方案 启动时出现了异常:

() | | | | _ _ ____| | __ | | | |/ \/ _ \/ / _` |__| ' \ / \ / _ | | | | / / (| (| | | |) | () | () | | | |_|_|__, | |./ _/ _/ _| / | / |
|
/ |___/

Jeecg Boot Version: 2.2.1 Spring Boot Version: 2.1.3.RELEASE (v2.1.3.RELEASE)

2021-04-22 12:18:13.672 [main] INFO org.jeecg.JeecgApplication:50 - Starting JeecgApplication on iZ5nq6pzhk3htbZ with PID 7164 (C:\Users\Administrator\SonganProjects\jeecg-boot-master-master\jeecg-boot-master-master\jeecg-boot\jeecg-boot-module-system\target\classes started by Administrator in C:\Users\Administrator\SonganProjects\jeecg-boot-master-master\jeecg-boot-master-master\jeecg-boot) 2021-04-22 12:18:13.672 [main] INFO org.jeecg.JeecgApplication:679 - The following profiles are active: dev 2021-04-22 12:18:16.832 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:244 - Multiple Spring Data modules found, entering strict repository configuration mode! 2021-04-22 12:18:16.848 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:126 - Bootstrapping Spring Data repositories in DEFAULT mode. 2021-04-22 12:18:17.021 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate:182 - Finished Spring Data repository scanning in 158ms. Found 0 repository interfaces. 2021-04-22 12:18:17.147 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext:557 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'transactionManager' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceTransactionManagerAutoConfiguration$DataSourceTransactionManagerConfiguration.class]: @Bean definition illegally overridden by existing bean definition: Generic bean: class [org.springframework.orm.hibernate5.HibernateTransactionManager]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [applicationContext.xml] 2021-04-22 12:18:17.178 [main] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener:142 -

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2021-04-22 12:18:17.188 [main] ERROR org.springframework.boot.SpringApplication:858 - Application run failed org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'transactionManager' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceTransactionManagerAutoConfiguration$DataSourceTransactionManagerConfiguration.class]: @Bean definition illegally overridden by existing bean definition: Generic bean: class [org.springframework.orm.hibernate5.HibernateTransactionManager]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [applicationContext.xml] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.isOverriddenByExistingDefinition(ConfigurationClassBeanDefinitionReader.java:309) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:202) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:141) at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:117) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:327) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:232) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:275) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:95) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:705) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:531) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) at org.jeecg.JeecgApplication.main(JeecgApplication.java:32)

Process finished with exit code 1

截图&代码:

system中的pom: <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">

4.0.0
<artifactId>jeecg-boot-module-system</artifactId>

<parent>
    <groupId>org.jeecgframework.boot</groupId>
    <artifactId>jeecg-boot-parent</artifactId>
    <version>2.2.1</version>
</parent>

<repositories>
    <repository>
        <id>aliyun</id>
        <name>aliyun Repository</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>jeecg</id>
        <name>jeecg Repository</name>
        <url>http://maven.jeecg.org/nexus/content/repositories/jeecg</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.jeecgframework.boot</groupId>
        <artifactId>jeecg-boot-base-common</artifactId>
    </dependency>
    <dependency>
        <groupId>org.jeecgframework.boot</groupId>
        <artifactId>jeecg-boot-module-songan</artifactId>
        <version>2.2.1</version>
    </dependency>
    <!--  达梦驱动包-->
    <dependency>
        <groupId>com.dameng</groupId>
        <artifactId>DmJdbcDriver18</artifactId>
        <version>1.0</version>
    </dependency>
    <!--  c3p0数据库连接池-->
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

System中的JeecgApplication.java package org.jeecg;

import lombok.extern.slf4j.Slf4j; import org.apache.catalina.Context; import org.apache.tomcat.util.scan.StandardJarScanner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ImportResource; import org.springframework.core.env.Environment;

import java.net.InetAddress; import java.net.UnknownHostException;

@Slf4j @SpringBootApplication @ImportResource("classpath:applicationContext.xml") public class JeecgApplication extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(JeecgApplication.class);
}

public static void main(String[] args) throws UnknownHostException {
    //System.setProperty("spring.devtools.restart.enabled", "true");

    ConfigurableApplicationContext application = SpringApplication.run(JeecgApplication.class, args);
    Environment env = application.getEnvironment();
    String ip = InetAddress.getLocalHost().getHostAddress();
    String port = env.getProperty("server.port");
    String path = env.getProperty("server.servlet.context-path");
    log.info("\n----------------------------------------------------------\n\t" +
            "Application Jeecg-Boot is running! Access URLs:\n\t" +
            "Local: \t\thttp://localhost:" + port + path + "/\n\t" +
            "External: \thttp://" + ip + ":" + port + path + "/\n\t" +
            "Swagger文档: \thttp://" + ip + ":" + port + path + "/doc.html\n" +
            "----------------------------------------------------------");

}

/**
 * tomcat-embed-jasper引用后提示jar找不到的问题
 */
@Bean
public TomcatServletWebServerFactory tomcatFactory() {
    return new TomcatServletWebServerFactory() {
        @Override
        protected void postProcessContext(Context context) {
            ((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
        }
    };
}

}

sysytem中的application-dev.yml server: port: 8080 tomcat: max-swallow-size: -1 servlet: context-path: /songan-dev compression: enabled: true min-response-size: 1024 mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*

management: endpoints: web: exposure: include: metrics,httptrace

spring: servlet: multipart: max-file-size: 10MB max-request-size: 10MB enabled: false mail: host: smtp.163.com username: jeecgos@163.com password: ?? properties: mail: smtp: auth: true starttls: enable: true required: true

quartz定时任务,采用数据库方式

quartz: job-store-type: jdbc initialize-schema: embedded

设置自动启动,默认为 true

auto-startup: false
#启动时更新己存在的Job
overwrite-existing-jobs: true
properties:
  org:
    quartz:
      scheduler:
        instanceName: MyScheduler
        instanceId: AUTO
      jobStore:
        class: org.quartz.impl.jdbcjobstore.JobStoreTX
        driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
        tablePrefix: QRTZ_
        isClustered: true
        misfireThreshold: 60000
        clusterCheckinInterval: 10000
      threadPool:
        class: org.quartz.simpl.SimpleThreadPool
        threadCount: 10
        threadPriority: 5
        threadsInheritContextClassLoaderOfInitializingThread: true

json 时间戳统一转换

jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 aop: proxy-target-class: true activiti: check-process-definitions: false

启用作业执行器

async-executor-activate: false
#启用异步执行器
job-executor-activate: false

jpa: open-in-view: false

配置freemarker

freemarker:

设置模板后缀名

suffix: .ftl
# 设置文档类型
content-type: text/html
# 设置页面编码格式
charset: UTF-8
# 设置页面缓存
cache: false
prefer-file-system-access: false
# 设置ftl文件路径
template-loader-path:
  - classpath:/templates

设置静态文件路径,js,css等

mvc: static-path-pattern: /** resource: static-locations: classpath:/static/,classpath:/public/ autoconfigure: exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource:

druid:

stat-view-servlet:

enabled: true

loginUsername: admin

loginPassword: 123456

allow:

web-stat-filter:

enabled: true

dynamic:

druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)

连接池的配置信息

初始化大小,最小,最大

initial-size: 5

min-idle: 5

maxActive: 20

配置获取连接等待超时的时间

maxWait: 60000

配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

timeBetweenEvictionRunsMillis: 60000

配置一个连接在池中最小生存的时间,单位是毫秒

minEvictableIdleTimeMillis: 300000

validationQuery: SELECT 1 FROM DUAL

testWhileIdle: true

testOnBorrow: false

testOnReturn: false

打开PSCache,并且指定每个连接上PSCache的大小

poolPreparedStatements: true

maxPoolPreparedStatementPerConnectionSize: 20

配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙

filters: stat,wall,slf4j

通过connectProperties属性来打开mergeSql功能;慢SQL记录

connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000

datasource:

master:

moracle数据源配置

url: 888888

username: 888888

password: 8888888

driver-class-name: oracle.jdbc.driver.OracleDriver

      # 多数据源配置
      #multi-datasource1:
      #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
      #username: root
      #password: root
      #driver-class-name: com.mysql.cj.jdbc.Driver

redis 配置

redis: database: 0 host: 47.94.7.164 lettuce: pool: max-active: 8 #最大连接数据库连接数,设 0 为没有限制 max-idle: 8 #最大等待连接中的数量,设 0 为没有限制 max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 min-idle: 0 #最小等待连接中的数量,设 0 为没有限制 shutdown-timeout: 100ms password: '' port: 6379

mybatis plus 设置

mybatis-plus: mapper-locations: classpath*:org/jeecg/modules/*/xml/Mapper.xml global-config:

关闭MP3.0自带的banner

banner: false
db-config:
  #主键类型  0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)";
  id-type: 4
  # 默认数据库表下划线命名
  table-underline: true

configuration:

这个配置会将执行的sql打印出来,在开发或测试的时候可以用

#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 返回类型为Map,显示null对应的字段
call-setters-on-nulls: true

jeecg专用配置

jeecg :

本地:local\Minio:minio\阿里云:alioss

uploadType: local path :

文件上传根目录 设置

#    upload: D://opt//upFiles
upload:  C:\Users
#webapp文件路径
webapp: D://opt//webapp

短信秘钥

sms: accessKeyId: 8888888 accessKeySecret: 8888888 shiro: excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/,/category/,/visual/,/map/,/jmreport/bigscreen2/**

阿里云oss存储配置

oss: endpoint: oss-cn-beijing.aliyuncs.com accessKey: ?? secretKey: ?? bucketName: jeecgos staticDomain: ??

ElasticSearch 6设置

elasticsearch: cluster-name: jeecg-ES cluster-nodes: 127.0.0.1:9200 check-enabled: false

表单设计器配置

desform:

主题颜色(仅支持 16进制颜色代码)

theme-color: "#1890ff"
# 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)
upload-type: system

在线预览文件服务器地址配置

file-view-domain: 127.0.0.1:8012

minio文件上传

minio: minio_url: http://minio.jeecg.com minio_name: ?? minio_pass: ?? bucketName: otatest

大屏报表参数设置

jmreport:

是否需要校验token

is_verify_token: false
#必须校验方法
verify_methods: remove,delete,save,add,update

Wps在线文档

wps: domain: https://wwo.wps.cn/office/ appid: ?? appsecret: ??

Mybatis输出sql日志

logging: level: org.jeecg.modules.system.mapper : debug

cas单点登录

cas: prefixUrl: http://cas.example.org:8443/cas

enable swagger

swagger: enable: true

songan: suren: connectTimeout: 1000 socketTimeout: 7000 qzUrl: http://47.93.112.220:8553/sys/ applySealUrl: ApplySealFileServletRequest systemId: 100011 license: hbbgwcsqz

本地文件存储路径

sourcePath: /Users/coco/Desktop/test
applyPrintUrl: ApplyPrintFileServletRequest
applyViewUrl: ApplyViewFileServletRequest

ofdBaserServer: ofdBaserPath: C:\Users

友情提示: 未按格式要求发帖,会直接删掉。

zhangdaiscott commented 3 years ago

最新版本2.4.3才支持达梦数据库,老版本不支持

zgz757183190 commented 12 months ago

最新版本2.4.3才支持达梦数据库,老版本不支持

@zhangdaiscott 大佬,3.5.3版本也不支持集成嘛? 大神帮忙看看 #5429 感谢!