发表于: 2016-10-17 22:16:56
0 2008
今天完成的事情:部署问题依然没有解决,最后我灵机一动,应该通过看tomcat的日志来寻找解决问题的办法啊。然后开始学习tomcat,而且我打开tomcat
的日志文件夹,主要是catalina.log。
明天计划的事情;甲方决定延期20天,我是不是应该高兴呢,页面基本定下来了,我需要修改接口,很多以前没有考虑到位但是现在想到的事情,
这次一定要补上。
遇到的问题
1.
springmvc将form表单提交的数据封装成对象貌似是不需要注释的,只要在对应方法的参数列表中写上实体类就可以了,
我本以为去掉userinfo就可以了,结果在添加方法中去掉接受参数的对象后依然不能进入指定方法,页面报404,这里可能是方法映射路径有问题
2.
Syntax error, annotations are only available if source level is 1.5 or greater
在项目上右键 -> Properties -> Java Compiler,在 Compiler compliance level: 后的下拉列表中,选择 1.5 或 1.5 以上即可。
3.
在服务器上配置项目又出问题了,log4j没有error级别的错误,但就是不能发布,最后想起了通过tomcat log来寻找问题出在哪里了。
首先学习tomcat
http://www.cnblogs.com/fantiantian/p/3620022.html
startup.bat的内容是什么:
第一行@echo off
意思是下面的命令只需要执行不用显示出来
第十七行if "%OS%" == "Windows_NT" setlocal
这里%os%是一个环境变量,这是一句if判断语句,setlocal(放本地)这个命令的意思是它后面执行关于环境变量的修改只对本批处理文件
(就是startup.bat)有影响,
第二十五行set "CURRENT_DIR=%cd%"
%cd%的值是执行文件的当前路径,赋值给CURRENT_DIR
第二十六行 if not "%CATALINA_HOME%" == "" goto gotHome
如果cataline_home环境变量的值不为空,就直接到gotHome处
第二十七行set "CATALINA_HOME=%CURRENT_DIR%"
因为前面catalina_home为空,所以将当前路径赋值给它
第二十八行if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome 如果找到了catalina.bat文件就去okHome处
这里没有明白,当前路径也就是startup.bat文件的路径,一般是\apache-tomcat\bin路径,这个路径下没有bin文件夹啊,这里应该执行的是失败的结果
cd ..
set "CATALINA_HOME=%cd%"
cd "%CURRENT_DIR%"
上一句如果失败了,就返回上一级目录,重新给current_dir赋值
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
这里是gotHome节点的内容
如果找到了catalina.bat文件,就去okHome处
不然的话打印catalina_home 环境没有找到,运行项目需要此环境,
:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
这里到了okHome节点
给executable赋值
如果executable变量存在就去okExec节点
否则输出 找不到executable
运行项目需要这个文件,也就是catalina.bat
:okExec
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgs
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
:end
这是okExec节点
将:setArgs节点下的返回结果赋值给CMD_LINE_ARGS变量。然后传给catalina.bat文件
他的解释是
在:setArgs的第一条命令,如果%1也就是第一个参数为空,那么直接跳转到:doneSetArgs节点,执行catalina.bat文件,
此时应该没有传递参数。如果存在参数的话,那么就循环所有的参数,将所有的参数链接在
一起,赋值给CMD_LINE_ARGS变量,然后执行catalina.bat文件,此时应该有传递参数。
评论