笔记:实际遇到的问题

[已解决] Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘0‘)

在这里插入图片描述

从svn上check生产环境的代码,本地启动后,浏览器一片空白,F12之后,报这个错误;但是check开发环境的代码,代码是一样的却不报错。
解决方法:F12定位到出错的地方,然后在项目中找到对应的位置,位于node_modules文件夹(放依赖的文件夹)中,然后注释掉,接着看报错的地方,接着注释,直到不报错为止。

[已解决] npm install 之后报错Failed at the phantomjs-prebuilt@2.1.14 install script ‘node install.js’.

解决方法:npm install phantomjs-prebuilt@2.1.14 --ignore-scripts

[已解决]GET https:xxx/xx/xx.png NET::ERR_CERT_COMMON_NAME_INVALID

运行后图片显示不出来,前端发送请求访问图片到后端,后端配置文件中图片的路径不对,这个错误是说和证书有关,不用管,去看访问文件的路径,在配置文件中,路径来原来是https://192.168.1.40/file,后面改成https://service.urovo.com:911/file不报错可以访问到图片。

file:
  fileServer: https://service.urovo.com:911/file  #原来是https://192.168.1.40/file
  avatarAccept[0]: "image/jpeg"
  avatarAccept[1]: "image/png"
  companyLogoAccept[0]: "image/jpeg"
  configFileAccept: ".txt"
  # 单位:字节
  configFileMaxSize: 10240
  appCenterPackage: "com.urovo.clouddesktop"
  appDescPicAccept[0]: "image/jpeg"
  appDescPicAccept[1]: "image/png"
  appIconAccept[0]: "image/jpeg"
  appIconAccept[1]: "image/png"

【已解决】npm ERR! Failed at the node-sass@4.14.1 postinstall script.

npm install之后报这个错误,网上说是node版本太高,让卸载重新装node,但是不用。
把node_modules删除,先npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass,然后npm install就不报这个错误了。

[已解决] spring整合quartz,报警告可能会造成内存泄露

参考:https://blog.csdn.net/liujun_for_java/article/details/78101478?utm_source=blogxgwz5
报错如下:
07-Nov-2022 18:08:00.534 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[RKICA]似乎启动了一个名为[DefaultQuartzScheduler_Worker-10]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
java.lang.Object.wait(Native Method)
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)]
07-Nov-2022 18:08:00.534 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[RKICA]似乎启动了一个名为[DefaultQuartzScheduler_QuartzSchedulerThread]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
java.lang.Object.wait(Native Method)
org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:410)]
07-Nov-2022 18:08:00.565 信息 [main] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler [“http-nio-8082”]
07-Nov-2022 18:08:00.581 信息 [main] org.apache.coyote.AbstractProtocol.destroy 正在摧毁协议处理器 [“http-nio-8082”]

这是quartz框架的问题,主进程完成任务后关闭,但是这个时候quartz所占用的线程还在,所以可能会造成内存泄漏。
解决办法:设置Listener去监听,一旦Tomcat关闭,立刻结束quartz线程。

public class QuartzSchedulerListener implements ServletContextListener {

    private static Logger logger = Logger.getLogger(QuartzSchedulerListener.class);
    
    public void contextDestroyed(ServletContextEvent event) {
        //
        System.out.println("tomcat已经关闭!开始关闭quartz!");
         
        try {
            Scheduler defaultScheduler = StdSchedulerFactory.getDefaultScheduler();
            defaultScheduler.shutdown(true);
            System.out.println("关闭定时器线程成功!");
            logger.info("关闭定时器线程成功!");
        } catch (SchedulerException e) {
            // TODO Auto-generated catch block
            System.out.println("关闭定时器线程失败!");
            logger.info("关闭定时器线程失败", e);
        }
  
         public void contextInitialized(ServletContextEvent arg0) {
         }
        
    }

web.xml

<listener>
        
    <listener-class>com.timetask.listener.QuartzSchedulerListener</listener-class>
</listener>

【已解决】mapper中写sql语句报错:注意注释

org.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping:
ParameterMapping{property=‘userNamePinyin’, mode=IN, javaType=class java.lang.String, jdbcType=VARCHAR, numericScale=null, resultMapId=‘null’, jdbcTypeName=‘null’, expression=‘null’}. Cause: org.apache.ibatis.type.
TypeException: Error setting non null for parameter #1 with JdbcType VARCHAR . Try setting a different JdbcType for this parameter or a different configuration property.
Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

报错会说你的参数类型错误,然后说参数的索引不对,需要0个但是你输入了1个。
但真实原因是注释,你用了–,/**/去注释,最好用 ,养成习惯用 去注释。

只按照appName一个条件查询,appName[*]的长度不确定,所以内连接第二个表where中需要嵌套查询他的长度
<if test="appName != null and appName.length() > 0">
    select m.dvc_id,m.company_code,
    JSON_UNQUOTE(JSON_EXTRACT(dvcApps,json_unquote(m1.appN))) as appName,
    JSON_UNQUOTE(JSON_EXTRACT(dvcApps,json_unquote(CONCAT(json_unquote(m1.P1),json_unquote(m1.P2),"VersionName")))) as appVersionName,
    JSON_UNQUOTE(JSON_EXTRACT(dvcApps,json_unquote(CONCAT(json_unquote(m1.P1),json_unquote(m1.P2),"PackageName")))) as appPackageName
    from  t_hou_device_monitor m

    inner join

    (SELECT dvc_id, JSON_SEARCH(dvcApps,"one",#{appName},null,"$[*].appName") as appN,
    left(json_unquote(JSON_SEARCH(dvcApps,"one",#{appName},null,"$[*].appName")),LENGTH(json_unquote(JSON_SEARCH(dvcApps,"one",#{appName},null,"$[*].appName")))-7) as P1,
    substr(json_unquote(JSON_SEARCH(dvcApps,"one",#{appName},null,"$[*].appName")),-7,3) as P2
    FROM t_hou_device_monitor
    where  JSON_CONTAINS(dvcApps,JSON_OBJECT('appName', #{appName})) and LENGTH(json_unquote(JSON_SEARCH(dvcApps,"one",#{appName},null,"$[*].appName"))) IN
    (select LENGTH(appN) as L
    FROM(SELECT json_unquote(JSON_SEARCH(dvcApps,"one",#{appName},null,"$[*].appName")) as appN
    FROM t_hou_device_monitor
    where  JSON_CONTAINS(dvcApps,JSON_OBJECT('appName', #{appName}))
    ) P
    )

    ) m1
    on
    m1.dvc_id=m.dvc_id
</if>
<if test="appName != null and appName.length() > 0 and app_version_name != null and app_version_name.length() > 0 and appPackageName != null and appPackageName.length() > 0">
    select m.dvc_id,m.company_code,
    JSON_UNQUOTE(JSON_EXTRACT(dvcApps,json_unquote(m1.appN))) as appName,
    JSON_UNQUOTE(JSON_EXTRACT(dvcApps,json_unquote(m1.appP))) as appPackageName,
    JSON_UNQUOTE(JSON_EXTRACT(dvcApps,json_unquote(m1.appV))) as appVersionName
    from  t_hou_device_monitor m
    inner join
    (SELECT dvc_id, JSON_SEARCH(dvcApps,"one",#{appName},null,"$[*].appName") as appN,
    JSON_SEARCH(dvcApps,"one",#{appPackageName},null,"$[*].appPackageName") as appP,
    JSON_SEARCH(dvcApps,"one",#{app_version_name},null,"$[*].appVersionName") as appV
    FROM t_hou_device_monitor
    where

    JSON_CONTAINS(dvcApps,JSON_OBJECT('appName', #{appName},'appPackageName',#{appPackageName},'appVersionName',#{app_version_name}))

    )  m1
    on
    m1.dvc_id=m.dvc_id
    <if test="sn != null and sn.length() > 0 ">
        and m.dvc_id=#{sn}
    </if>
    <if test="company_code != null and company_code.length() > 0 ">
        and m.company_code in
        <foreach collection="list" index="index" open="(" item="item" close=")" separator=",">
            #{item}
        </foreach>
    </if>
</if>

【已解决】捕捉http错误码400、403、404、500等,跳转到自己自定义的的界面

403、404、500错误码可以通过web.xml配置

web.xml:
    <error-page>
        <error-code>403</error-code>
        <location>/error/400.jsp</location>
    </error-page>
    <error-page>
        <error-code>404</error-code>
        <location>/error/404.jsp</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/error/500.jsp</location>
    </error-page>
 
 404.jsp如下:
 <!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>404</title>
    <link rel="shortcut icon" type="image/x-icon" th:href="@{/img/favicon.ico}"/>
    <link rel="stylesheet" type="text/css" th:href="@{/css/404.css}"/>
</head>
<body>
    <h1 align="center" >404 Server Error</h1>
    <hr>
    <div align="center">
        <p>The request failed.</p>
        <p>The resource expected by the request was not found on the server.</p>
    </div>
    <div style="display: none">
        <p>404 error </p>
    </div>
</body>
</html>

400不能通过以上方式捕捉到,会在页面上显示报错信息,查了可能是Tomcat版本太高了,换了Tomcat7试了之后,页面上不显示报错信息了,但是控制台显示报错。
解决方法:在Tomcat中server.xml中配置,注意这里jsp页面不解析,要用html页面:

Host标签内新增如下内容:
 <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" errorCode.400="webapps/400.html">
               </Valve>

【已解决】当运行npm install 的时候,报错nodejs版本太高或者太低,可以试一下改package.json中的node-sass,nodejs的版本为16.17.0时,将node-sass改为"^6.0.1"可以下载依赖成功。

【已解决】Error: Couldn’t find preset “es2015” relative to directory "D:\IdeaProjects\06-UhomeV2.7\front-end\cloud-desk-customer-page\src”

方法:运行:npm install babel-preset-es2015 --save-dev

【已解决】第一次checkUMS代码,浏览器一片空白,F12不报错,有可能是语言问题,因为第一次cookie中没有数据,所以打印看看当前语言是什么,看index.js文件

在这里插入图片描述

【已解决】Eclipse出现 “XXXX” cannot be resolved (to a type) 的解决办法

1.Eclipse的jdk和项目使用的jdk不一致导致的.
Eclipse中设置JDK:
在这里插入图片描述

项目设置JDK:
在这里插入图片描述

2.项目设置正确的Deployment Assembly

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值