一、搭建环境:
jdk版本:1.8
tomcat版本:apache-tomcat-7.0.42
maven版本:apache-maven-3.5.3
开发工具:Eclipse IDE for Enterprise Java Developers. Version: 2018-12 (4.10.0)
开发操作系统:windows 7 64位
线上服务器:centos 7
二、问题记录
1.创建完成后,项目上出现了红叉,出现如下错误:
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
问题原因及解决办法:
- 因为没有配置项目运行环境也就是tomcat,配置项目运行的tomcat与jdk即可。
2.配置完pom.xml后报错:
Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the project context menu or use Quick Fix.
- 问题原因及解决办法:因pom.xml文件修改,项目还没有同步过来,右键点击项目-》Maven-》Update Project即可.
3.项目打war包扔到服务器上,会出现各种问题,其一,tomcat跑到一半不跑了,卡在哪里一动不动:
tomcat卡在:INFO: Starting Servlet Engine: Apache Tomcat/7.0.82这行不进行下去了。
- 分析原因及解决办法:上网查说可能是之前启动次数太多,正在创建Servlet的线程没有被释放,Java分配的空间满了,后面都在排队所以一直卡在这里,突然想到tomcat jvm内存设置 具体归类于哪类还没有研究,修改TOMCAT_HOME/bin/catalina.sh ,代码如下:
- 在位置cygwin=false前加入。JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m"
4.服务器启动tomcat时,运行一半不继续进行了,卡在这一行:
At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
- 分析原因及解决办法:tomcat每次启动中会大量的扫描jar包,并进行tlds规范校验(这个好像是jstl,具体我也不是很清楚),因为这个项目用到的是maven,
-
在我本地pom.xml中为:
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>现在修改pom.xml中:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>因此,一直报错。
5.使用maven发布项目时,控制台报出错误:
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?等。。。
- 问题及解决办法:因为Eclipse-->Window-->preferences-->Java-->Installed JREs里面配置的jre,现更换成jdk配置路径问题解决。
6.配置后了db.properties文件后启动项目报错。
- Cannot load JDBC driver class '${driver}'
- 问题及解决办法:大概意思就是找不到这个属性,也就是说没有加载属性文件中的值。
- 首先要检查3点:
(1)属性文件中每行结束不要有空格
(2)applicationContext.xml中配置这句话,用来加载属性文件。
<!-- 加载属性文件 -->
<context:property-placeholder location="classpath:db.properties"/>
(3)applicationContext-mybatis.xml中的配置
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- <property name="sqlSessionFactory" ref="sqlSessionFactory"/> 这个是我之前的-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />//这个是我修改之后的
<property name="basePackage" value="com.zsscyjsyjy.dao"/>
</bean>