java 问题记录

问题一:uaa项目cannot determine embedded database driver class for database type NONE

在这里插入图片描述
这里我只是用maven clean一下,然后直接运行项目,就可以运行成功,不要rebuild,uaa项目的正确运行和部署方式是rebuild->clean->run->install

二:包导入失败

一.包导入失败的原因可能是
1.数据库连接池版本太早,maven中央仓库已经找不到包
2.可能是连接池和数据库版本不匹配
3.更改或添加另一个仓库地址:

 <repositories>
        <repository>
            <id>jasper</id>
            <name>jasper</name>
            <url>https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts/</url>
        </repository>
        <repository>
            <id>aliyun</id>
            <name>aliyun central</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
        <repository>
            <id>jboss-public-repository-group</id>
            <name>JBoss Public Maven Repository Group</name>
            <url>https://repository.jboss.org/nexus/content/groups/public/</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

如果还不行也可以试试调整三个的位置(把jasper仓库换到第二个或者第三个)
4.把mybatisx的插件禁用(即取消勾选即可,但这种问题一般不打紧,不影响运行,当子模块的pom文件引入依赖才会下载)
5.由于为RELEASE,导致maven会自动去下载最新的RELEASE包版本,由于没有向下兼容,所以导致某些依赖包找不到,import失败

		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>

改为某个固定版本最为稳妥,即可解决问题

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.6</version>
            <scope>compile</scope>
        </dependency>

6.更换maven的setting.xml文件,用idea自带的试试
7.直接启动项目,有的包问题不影响项目的运行

三.MySQL数据库连接不上

1.检查数据库链接url和用户名密码
2.如果有多个profile配置类似这样:**

<profiles>
        <!-- 本地开发环境  -->
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- 数据库 -->
                <db.application.database.type>mysql</db.application.database.type>
                <db.driver>com.mysql.jdbc.Driver</db.driver>
                <db.url>jdbc:mysql://xxx.xxx.x.xx:3367/databoot?useUnicode=true&amp;characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;transformedBitIsBoolean=true&amp;useOldAliasMetadataBehavior=true</db.url>
                <db.username>root</db.username>
                <db.password>2mA%aKZG$^</db.password>
                <AppCenterDBDatabase>databoot</AppCenterDBDatabase>
                <!-- mongodb -->
                <mongoUrl>192.168.2.3</mongoUrl>
                <mongoPort>28001</mongoPort>
                <!-- redis -->
                <redisHost>192.168.2.3</redisHost>
                <redisPassword></redisPassword>
                <!-- solr -->
                <baseSolrUrl>http://localhost:8984/solr/dbc-files</baseSolrUrl>
                <!-- 日志级别 -->
                <log.level>debug</log.level>
                <mybatis.log>STDOUT_LOGGING</mybatis.log>
                <jzgClientId>20210415170559021105696</jzgClientId>
                <jzgClientSecret>34609154-843b-4a15-a765-e7d454d55bf2</jzgClientSecret>
                <xsClientId>20210415170535484244090</xsClientId>
                <xsgClientSecret>8daf64d8-de30-4a59-a262-9ca7a60312da</xsgClientSecret>
            </properties>
        </profile>

        <!-- xxxxxx正式环境  -->
        <profile>
            <id>prod</id>
            <!--             <activation>-->
            <!--                <activeByDefault>true</activeByDefault>-->
            <!--            </activation>-->
            <properties>
                <!-- 数据库 -->
                <db.application.database.type>mysql</db.application.database.type>
                <db.driver>com.mysql.jdbc.Driver</db.driver>
                <db.url>jdbc:mysql://xx.xxx.3.159:3357/xxxx?useUnicode=true&amp;characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;transformedBitIsBoolean=true&amp;useOldAliasMetadataBehavior=true</db.url>
                <db.username>root</db.username>
                <db.password>xxxx</db.password>
                <AppCenterDBDatabase>xxxx</AppCenterDBDatabase>
                <!-- mongodb -->
                <mongoUrl>127.0.0.1</mongoUrl>
                <mongoPort>27017</mongoPort>
                <!-- redis -->
                <redisHost>127.0.0.1</redisHost>
                <redisPassword>123123</redisPassword>
                <!-- solr -->
                <baseSolrUrl>http://localhost:8984/solr/dbc-files</baseSolrUrl>
                <!-- 日志级别 -->
                <log.level>debug</log.level>
                <mybatis.log>STDOUT_LOGGING</mybatis.log>
                <jzgClientId>20200921191947652070920</jzgClientId>
                <jzgClientSecret>5033aadd-24f2-49ab-bcb3-b492258ade74</jzgClientSecret>
                <xsClientId>20200918120801948580935</xsClientId>
                <xsgClientSecret>472e534e-041f-4b6b-939a-8391f4cc22da</xsgClientSecret>
            </properties>
        </profile>
    </profiles>

那要在右侧maven的profile栏目里勾选你想要的配置,例如我想要ID为dev的测试环境的配置:
在这里插入图片描述
问题解决!

问题四:

“errorMessage”:"JSON parse error: Unrecognized token ‘GH’: was expecting (‘true’, ‘false’ or ‘null’);在这里插入图片描述

public static String doPost2(String url, Map<String, String> param,Map<String, String> header) {
        // 创建Httpclient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        String resultString = "";
        try {
            // 创建Http Post请求
            HttpPost httpPost = new HttpPost(url);
            httpPost.setHeader("Content-Type","application/json");
            if (header != null) {
                for (String key : header.keySet()) {
                    httpPost.addHeader(key, header.get(key));
                }
            }
            // 创建参数列表
//            if (param != null) {
//                List<NameValuePair> paramList = new ArrayList<>();
//                for (String key : param.keySet()) {
//                    paramList.add(new BasicNameValuePair(key, param.get(key)));
//                }
//                // 模拟表单
//                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
//                httpPost.setEntity(entity);
//            }
            if (param != null) {
                JSONObject jsonObject = new JSONObject();
                for (String key : param.keySet()) {
                    jsonObject.put(key, param.get(key));
                }
                httpPost.setEntity(new StringEntity(jsonObject.toString()));
            }
            // 执行http请求
            response = httpClient.execute(httpPost);
            resultString = EntityUtils.toString(response.getEntity(), "utf-8");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        return resultString;
    }

使用 UrlEncodedFormEntity 来设置 body,消息体内容类似于“KEY1=VALUE1&KEY2=VALUE2&…”这种形式,和前端数据接收格式不匹配,所以报错,替换成StringEntity即可!太恶心了

问题五:try、catch、finally都有return语句时执行哪个

在try或catch有return时,先执行finally,再执行try语句,如果try语句没有异常,则执行完try的return之后不会再执行catch的return(因为没有异常嘛,怎么会进入到catch呢?),有异常就只执行catch里的return
在try、catch和finally都有return的情况下,只执行finally的return,不会再管try和catch的return

问题六:运行项目出现Process finished with exit code 1

这种通常是配置文件的问题,删除logback-spring.xml就可以正常启动,我也不知道为什么

问题七:Nacos启动异常:failed to req API:/api//nacos/v1/ns/instance after all servers([127.0.0.1:8848])

解决方案:
  删掉nacos文件夹下的data文件夹,重新启动

原因:
  Nacos负载过高

问题八:报错:参数类型不匹配

原因:可能是参数错误,也可能是没有加注解(例:@RequestBody)

问题九:com.alibaba.fastjson.JSONObject cannot be cast to …

将字符串转成对象List时最好不好直接强转:

List<SubTrade> subTrades = (List<SubTrade>) json.get("org");

改成:

List<SubTrade> subTrades = JSON.parseArray(json.getString("org"), SubTrade.class);

解决!

问题10:unknow column “xxx” in fieldList

可能是实体和数据库的字段不匹配,又有可能是数据库不正确,库名有问题,在实际业务中很容易忽略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值