Tomcat的8080端口占用问题

Tomcat的8080端口被占用,控制台输入netstat -ano | findstr “8080”找到对应的pid值,通过任务管理器找到相应的程序,发现是Oracle-TNSLSNR.EXE占用8080端口号的问题。

解决方法之一:改变TNSLSNR.exe占用的端口。

  1. 运行cmd,输入sqlplus / as sysdba;
  2. 输入exec dbms_xdb.sethttpport(8088)。(其中8088为更改后的端口)

解决方法之二:修改Tomcat配置文件

  1. 进入tomcat的安装路径,进入到conf文件中找到server.xml。

  2. 找到Connector标签,protocol属性为’’HTTP/1.1’’。修改其中的port属性值

    1
    2
    3
    <Connector port="80" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" useBodyEncodingForURI="true"/>

Junit单元测试报错java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

使用Junit进行单元测试的时候,控制它报出java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误。

image-20191230103653431

原因是使用Junit进行单元测试,没有导入hamcrest-core-1.3这个jar包。

解决方法:导入hamcrest-core-1.3这个jar包。

image-20191230103911806

SpringBoot的@RunWith注解报错问题

在SpringBoot中提供的单元测试中,使用@RunWith注解指定运行环境,发现注解报错

后来发现是使用Idea提供的Spring Initializr快速构建SpringBoot项目中,pom.xml指定使用junit进行单元测试

解决方法:删除所框选的那段代码

SpringBoot中配置文件server.context-path无效问题

在SpringBoot配置文件中,使用:/projectName**,发现运行之后并未生效。

1
server.context-path:/boot2

后来查询资料后发现,SpringBoot在2.0+版本之后server.context-path被弃用。

解决方法:使用SpringBoot2.0+版本之后提供的server.servlet.context-path=/projectName修改项目路径。

1
server.servlet.context-path=/boot2

image-20191230102553333