web.xml配置:
<filter>
<filter-name>nutz</filter-name>
<filter-class>org.nutz.mvc.NutFilter</filter-class>
<init-param>
<param-name>modules</param-name>
<param-value>com.clcg.luna.receive.ImageReceiver</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>nutz</filter-name>
<url-pattern>/uploadimage</url-pattern>
</filter-mapping>
部分java代码:
public class ImageReceiver {
private static Logger logger = Logger.getLogger(ImageReceiver.class);
@AdaptBy(type=UploadAdaptor.class, args={"${app.root}/WEB-INF/tmp/", "8192", "utf-8", "100", "10240000"})
@POST
@Ok("json")
@At("/uploadimage")
public JsonMsg uploadAvatar(@Param("file") TempFile tf, @Param("uid") String uid, AdaptorErrorContext err) {
if (err != null && err.getAdaptorErr() != null) {
return JsonMsg.createMsg(JsonMsg.CODE_ERROR, "FILE_SIZE_OVER");
}
.......
log:
2015-11-02 12:04:13 org.nutz.mvc.impl.UrlMappingImpl: Search mapping for path=/uploadimage : NOT Action match
请帮忙分析哪里没映射正确
7 回复
问题已经解决,本案例:文件接收接口,那么在浏览器直接访问这个URL,没有提交文件参数,那么在执行 uploadAvatar方法时,部分参数为null,无法去匹配方法所以抛出了Not action match的错误信息。反馈给浏览器就是404。
事实上这种提示个人以及同僚感觉非常不友好,首先无法从404里确定到底是配置问题,还是地址拼写问题,特别是在刚开始使用的时候。not action match 更容易理解为该地址没有对应的注解。
像本案例的情况我个人认为不应该出404,可以出500或是其他东西来给出一个信号:该地址没问题,只是参数异常了。
@wendal 因为我这边只利用了nutz的文件接收结构,其他接口的实现我用了我们自己更简单的一种方式,所以这里做了强制只拦截这一个uri。不过问题已经解决,实际上还是感觉挺奇葩的,或许还是理念上一时无法跟上nutz吧
@wendal 希望我们nutz越办越好!!
添加回复
请先登陆