发表于: 2017-02-07 23:49:47
3 1959
今天完成的事情:
1、学习使用IDEA
2、把CSS任务中的Task10的静态页面变成动态内容
明天计划的事情:
把CSS任务中的Task10的静态页面变成动态内容
遇到的问题:
1、IDEA创建maven web项目卡在:
原因:IDEA根据maven archetype的本质,其实是执行mvn archetype:generate命令,该命令执行时,需要指定一个archetype-catalog.xml文件。
该命令的参数-DarchetypeCatalog,可选值为:remote,internal ,local等,用来指定archetype-catalog.xml文件从哪里获取。
默认为remote,即从
http://repo1.maven.org/maven2/archetype-catalog.xml路径下载archetype-catalog.xml文件。
http://repo1.maven.org/maven2/archetype-catalog.xml 文件约为3-4M,下载速度很慢,导致创建过程卡住
解决方法:
第一种:在下面界面添加一个属性,archetypeCatalog = internal
第二种:指定-DarchetypeCatalog为internal,即可使用maven默认的archetype-catalog.xml,而不用再remote下载。
具体步骤:点击file -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Runner, VM Options 配置 -DarchetypeCatalog=internal:
PS:注意右上角的灰字:for default project,而不是for current project
第三种:mvn命令创建项目时
mvn archetype:generate -DarchetypeCatalog=internal
2、Tomcat启动时报错:
造成这种情况的原因很可能是以下两种情况:
一、项目的WEB-INF/lib下有servlet-api.jar,与Tomcat自带的servlet-api.jar冲突了。
二、项目的WEB-INF/lib下有包含javax.servlet包的其他JAR包(如WebLogic 8.1的weblogic.jar),造成与Tomcat自带的servlet-api.jar的冲突。
因为Tomcat的WebappClassLoader加载JAR包时会进行校验,一旦发现上述冲突就会报出上面的异常
解决方案:
在pom.xml文件中把javax.servlet-api依赖注掉:
之后又报错:
tomcat被卡死,网上找了些说法,大多数讲没配置log4j,其实配置正确也会出现这个问题;
这个是在加载org.springframework.web.context.ContextLoader这个listener的时候没找到log4j的配置文件造成的。
仔细查看web.xml发现在加载org.springframework.web.context.ContextLoader这个listener之后才加载org.springframework.web.util.Log4jConfigListener,把log4j的配置放到org.springframework.web.context.ContextLoader之前,就可以解决这个问题了。
3、改成动态页面没有得到数据:
收获:
IDEA设置自动导包:Settings→Editor→General→Auto Import
选中Optimize imports on the fly和Add unambiguous imports on the fly
Optimize imports on the fly:自动去掉一些没有用到的包
Add unambiguous imports on the fly:自动帮我们优化导入的包
评论