发表于: 2016-10-17 22:16:56

0 2005


今天完成的事情:部署问题依然没有解决,最后我灵机一动,应该通过看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文件,此时应该有传递参数。 




返回列表 返回列表
评论

    分享到