@ActionKey 404

我定义了一个控制器

import com.jfinal.core.ActionKey;

import com.jfinal.core.Controller;

public class FileUploadController extends Controller{

@ActionKey("/uploadServer")

public void index() {

renderJson(new FileUploadServer().fileLocalUpload(getFile()));

}

}

image.png

通过http://localhost:8080/uploadServer去访问显示404,

但是我把@ActionKey("/uploadServer")注释了,定义到configRoute中却可以访问成功

public void configRoute(Routes me) {

me.add("/uploadServer",FileUploadController.class);

me.add(new AdminRoutes());

}

image.png

百思不得解

评论区

JFinal

2018-05-09 21:32

注意看控制台输出的异常信息,根据异常解决问题

a614784512

2018-05-09 21:54

@JFinal 控制台提示404,没有其它异常信息

JFinal

2018-05-09 22:24

@a614784512 添加好 log4j.properties 以及 log4j 的 jar 包,异常信息自然就出来了

在首页右侧下载 jfinal demo ,直接用上里头的这两个文件

a614784512

2018-05-09 23:31

@JFinal 添加了,没异常信息。 2018-05-09 23:27:01 [WARN]-[com.jfinal.core.ActionHandler] 404 Action Not Found: /uploadServer

JFinal

2018-05-10 00:27

@a614784512 404 错误是路由配置不对,按照文档改下配置即可

a614784512

2018-08-30 09:49

@JFinal 是因为我用的maven,ActionKey不扫描jar包呀,我自己写了一个扫描器就可以了

JFinal

2018-08-30 12:01

@a614784512 jfinal 官方是不玩路由扫描的,有很多潜在的缺点。 例如,如果支持扫描,那第三方 jar 中完全可以扔一个注解进去让你扫描,从而轻松接管你的项目

spring boot 这类路由扫描是有巨大安全隐患的,spring boot 这类项目通常依赖的 jar 包非常多,这些 jar 包中可以轻轻松松放个注解让你扫描,人家就可以通过这个路径干任何事情了

还有性能方面等等各种缺点,就不一一细说了,光是安全性就够规模稍大的公司引起重视了

热门反馈

扫码入社