Object's Blog

8月-10月踩坑记录(2020)

字数统计: 1.7k阅读时长: 7 min
2020/10/17 分享

SpringBoot项目启动后如何自动打开浏览器访问url

  • 问题描述

    在SpringBoot项目启动完成后,自动打开浏览器访问项目url。

  • 解决方案

    实现一个监听。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Component
    public class MyCommandRunner implements CommandLineRunner {
    @Override
    public void run(String... args) {
    System.out.println("开始自动加载指定的页面");
    try {
    Runtime.getRuntime().exec("cmd /c start http://localhost:8080/");//指定自己项目的url
    } catch (Exception ex) {
    ex.printStackTrace();
    }
    }

    }

RedHat使用光盘挂载的方式更新yum库安装软件包(无网络)

  • 问题描述

    在没有网络的情况下,如何使用yum命令来安装软件包?

  • 解决方案

    1. 将RedHat Enterprise Linux的安装光盘插入到光驱,用root执行mount /dev/dvd/mnt命令,就可以将dvd的内容挂载到/mnt目录下。

    2. 执行mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak将操作系统原来的yum源配置进行备份。

    3. 创建新的yum源文件vi /etc/yum.repos.d/iso.repo,将该文件的内容设置为:

      [iso] name=iso baseurl=file:///mnt/ enabled=1 gpgcheck=0

    4. 更新本地的yum数据库:yum update

Oracle11g安装报错:Error in invoking target ‘agent nmhs’ of makefile

  • 问题描述

    安装Oracle时报错,如图所示。

    oracle安装报错

  • 解决方案

    1. 在makefile中添加libnnzl1库的参数

      修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL)-lnnzl1

      修改makefile

    2. 保存退出后,点击Retry

      重试

Oracle报错:ORA-01219 数据库未打开

  • 问题描述

    操作Oracle数据库时报错,ORA-01219 数据库未打开。

    解决方案

    这个问题的原因是因为数据库文件损坏,需要进行删除。

    1
    2
    3
    alter database create datafile 24;
    alter database datafile 24 offline drop;
    alter database open;

Linux硬盘分区扩容

  • 问题描述

    由于linux虚拟机分配的空间不足,但是如果重装系统有很大的成本,所以进行硬盘扩容。

  • 解决方案

    1. 使用fdisk -l命令查看分区空间。
    2. 然后使用fdisk /dev/sha,然后输入n增加分区,输入p增加主分区,输入回车确认起始和结束扇区,最后使用w保存退出。
    3. 使用mkfs.ext4 /dev/sda3建立文件系统
    4. 使用pvcreate /dev/sda3创建物理卷
    5. 查看一次分区空间fdisk -l,查看物理卷pvdisplay
    6. 查看卷组:vgdisplay
    7. 扩展卷组:vgextend vg_fab1 /dev/sda3
    8. 查看逻辑卷:lvdisplay
    9. 扩展逻辑卷:xfs_growfs /dev/mapper/cl-root
    10. 查看空间情况:df -h

Oracle连接数太多,无法启动

  • 问题描述

    数据库改了连接数过大,导致无法启动。

  • 解决方案

    先使用sqlplus / as sysdba命令登录进数据库,然后使用createpfile from spfile;命令创建pfile文件,然后使用文本编辑器修改pfile,再运行一遍createspfile from pfile;

    然后使用startup启动数据库。

安装Oracle使用隧道传输图形界面时,XShell报错

  • 问题描述

    在安装数据库时,需要使用到隧道来传输图形界面,但是传输时XShell报错。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    >>> Ignoring required pre-requisite failures. Continuing...
    Preparing to launch Oracle Universal Installer from /tmp/OraInstall2020-08-25_05-47-20PM. Please wait ...[oracle@localhost database]$ Exception in thread "main" java.lang.NoClassDefFoundError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at java.awt.Toolkit$2.run(Toolkit.java:821)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:804)
    at com.jgoodies.looks.LookUtils.isLowResolution(LookUtils.java:484)
    at com.jgoodies.looks.LookUtils.<clinit>(LookUtils.java:249)
    at com.jgoodies.looks.plastic.PlasticLookAndFeel.<clinit>(PlasticLookAndFeel.java:135)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:242)
    at javax.swing.SwingUtilities.loadSystemClass(SwingUtilities.java:1779)
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:453)
    at oracle.install.commons.util.Application.startup(Application.java:780)
    at oracle.install.commons.flow.FlowApplication.startup(FlowApplication.java:165)
    at oracle.install.commons.flow.FlowApplication.startup(FlowApplication.java:182)
    at oracle.install.commons.base.driver.common.Installer.startup(Installer.java:348)
    at oracle.install.ivw.db.driver.DBInstaller.startup(DBInstaller.java:124)
    at oracle.install.ivw.db.driver.DBInstaller.main(DBInstaller.java:155)
  • 解决方案

    出现上述报错是因为服务器没有支持XManager的包。

    所以我们只安装一个xhost,使用yum -y install xhost命令。

    然后使用yum -y install xclock命令安装xclock。

    运行xclock命令,如果在本地出现时钟,说明已经成功了,可以继续安装Oracle。

ORA-12514 TNS:监听程序无法识别连接符请求中的服务

  • 问题描述

    在执行脚本时,报错:TNS:监听程序当前无法识别连接描述符中请求的服务。

  • 解决方案

    1. 检查监听

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      # listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora
      # Generated by Oracle configuration tools.
      SID_LIST_LISTENER =
      (SID_LIST =
      (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db)
      (SID_NAME = orcl)
      )
      )
      LISTENER =
      (DESCRIPTION_LIST =
      (DESCRIPTION =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/oracle/product/11.2.0/db)
      (SID_NAME = orcl)
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.20.23.120)(PORT = 1521))
      )
      )
      ADR_BASE_LISTENER = /u01/app/oracle
      DIAG_ADR_ENABLED_LISTENER = OFF
    2. 检查连接实例名,连接的实例名一定要和SID_NAME相同,这里是orcle

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      conn sys/hundsun@10.20.23.120/orcl as sysdba
      @F:\DBDevice\ORDevice_data.sql
      @F:\DBDevice\ORUser_data.sql

      conn sys/hundsun@10.20.23.120/orcl as sysdba
      @F:\DBDevice\ORDevice_his.sql
      @F:\DBDevice\ORUser_his.sql

      conn sys/hundsun@10.20.23.120/orcl as sysdba
      @F:\DBDevice\ORDevice_fil.sql
      @F:\DBDevice\ORUser_fil.sql

      conn sys/hundsun@10.20.23.120/orcl as sysdba
      @F:\DBDevice\ORDevice_eap.sql
      @F:\DBDevice\ORUser_eap.sql

ORA-12154 无法解析指定的连接标识符

  • 问题描述

    连接数据库时,出现ORA-12154错误

  • 解决方案

    检查tnsnames.ora文件,内容和文件名都不能有错。

Jackson数组类型JSON串转换为List

  • 问题描述

    项目中需要使用Jackson,将数组型JSON串转换为List。

  • 解决方案

    1
    2
    3
    4
    5
    6
    ObjectMapper mapper = new ObjectMapper();
    try {
    exportData = mapper.readValue(exportDataJson,new TypeReference<List<Map<String,String>>>() { });
    } catch (JsonProcessingException e) {
    logger.error("质检抽样导出JSON转换异常,异常信息:{}",e.getMessage());
    }

使用Post请求完成导出功能

  • 问题描述

    项目中需要将前台的数据传输到后台,然后生成xls或者xlsx文件导出。

    但是通常的导出都是直接跳转下载,但是那样只能使用get请求,get请求并不能传输很大量的数据,所以需要一种使用post请求的导出方式。

  • 解决方案

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    ## 20200902  新增仿异步post请求导出数据
    _export ={
    canExport:false,
    post:function(data,exportUrl){
    _export.canExport =true;
    if($('#exportIframe').length >0){
    $('#exportIframe').remove();
    }
    $('body').append('<iframe id="exportIframe" width="0" height="0" src="${appServer}/export"></iframe>');
    $('#exportIframe').load(function(){
    if(_export.canExport){
    var formData ='<form method="post" action='+exportUrl+' >';
    for(var name in data){
    formData = formData +'<input type="text" name="'+name+'" value='+data[name]+' />';
    }
    formData = formData +'<input type="submit" id="submitExportForm"/>';
    formData = formData +'</form>';
    $(this).contents().find('body').append(formData);
    $(this).contents().find('#submitExportForm').click();
    _export.canExport =false;
    }
    });
    }
    }

Java HSDB工具启动方式

  • 问题描述

    学习JVM时需要用到HSDB,但之前没有用过,遂进行记录。

  • 解决方案

    进入安装Java的目录,然后进入jdk/lib目录下使用java -cp .\sa-jdi.jar sun.jvm.hotspot.HSDB启动HSDB

原文作者:Object

原文链接:http://blog.objectspace.cn/2020/10/17/8月-10月踩坑记录(2020)/

发表日期:2020 October 17th, 12:00:00 am

更新日期:2020 October 16th, 10:05:13 pm

版权声明:未经作者授权请勿转载

目录
  1. 1. SpringBoot项目启动后如何自动打开浏览器访问url
    1. 1.1. 问题描述
    2. 1.2. 解决方案
  2. 2. RedHat使用光盘挂载的方式更新yum库安装软件包(无网络)
    1. 2.1. 问题描述
    2. 2.2. 解决方案
  3. 3. Oracle11g安装报错:Error in invoking target ‘agent nmhs’ of makefile
    1. 3.1. 问题描述
    2. 3.2. 解决方案
  4. 4. Oracle报错:ORA-01219 数据库未打开
    1. 4.1. 问题描述
    2. 4.2. 解决方案
  5. 5. Linux硬盘分区扩容
    1. 5.1. 问题描述
    2. 5.2. 解决方案
  6. 6. Oracle连接数太多,无法启动
    1. 6.1. 问题描述
    2. 6.2. 解决方案
  7. 7. 安装Oracle使用隧道传输图形界面时,XShell报错
    1. 7.1. 问题描述
    2. 7.2. 解决方案
  8. 8. ORA-12514 TNS:监听程序无法识别连接符请求中的服务
    1. 8.1. 问题描述
    2. 8.2. 解决方案
  9. 9. ORA-12154 无法解析指定的连接标识符
    1. 9.1. 问题描述
    2. 9.2. 解决方案
  10. 10. Jackson数组类型JSON串转换为List
    1. 10.1. 问题描述
    2. 10.2. 解决方案
  11. 11. 使用Post请求完成导出功能
    1. 11.1. 问题描述
    2. 11.2. 解决方案
  12. 12. Java HSDB工具启动方式
    1. 12.1. 问题描述
    2. 12.2. 解决方案