Spring 3 使用Ant编译问题(No parameter name specified…)


最近一个项目用到了Spring MVC,在代码中使用了@RequestParam和@PathVariable两个注解。最近碰到了一个奇怪的问题,使用了这两个注解的程序,在eclipse+tomcat的环境中运行正常,但是拿到ant+tomcat的环境中就不正常了。

提示下面的错误:

No parameter name specified for argument of type [java.lang.String], and no parameter name information found in class file either.

查看页面提交的参数个数已经名称,甚至顺序,都没有问题。怀疑是ant编译的问题。

最后在http://stackoverflow.com/questions/2622018/compile-classfile-issue-in-spring-3找到了答案。原来eclipse默认编译的代码属于Debug级别,而@RequestParam和@PathVariable两个注解的名称绑定只在Debug级别才会使用默认值(也就是后面的参数名称),而ant编译的时候,debug级别默认是关闭的,通过打开javac debug=”on”可以解决这个问题。

不过这也是治标不治本。最终还是通过修改代码:在每个使用@RequestParam和@PathVariable两个注解的地方都明确指定参数名,再使用ant+tomcat环境运行代码,没有再出现问题。

Advertisements

Spring 3 使用Ant编译问题(No parameter name specified…)》上有1条评论

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s