Maven项目使用main函数问题

波总,请教一下

用main函数启动正常,但一旦访问页面,报错

eclipse 配置启动项时指定了 argument: src/main/webapp 8084 / 5

启动时日志输出:

image.png

访问页面时,日志输出:

image.png

image.pngimage.png

评论区

JFinal

2017-08-28 16:43

ClassNotFoundException 是最基本的异常,这个不用我多说了吧,在 jfinal 官网我起码就回复过几十个这样的错误了,用一下搜索功能:
http://www.jfinal.com/feedback/1654

tianya

2017-08-28 17:38

@JFinal 额,关键是调用的类在jfinal.jar里,NotFound的类也是在jfinal.jar里
JspRender.java调用com.jfinal.plugin.activerecord.ModelRecordElResolver.init();报错: java.lang.ClassNotFoundException: com.jfinal.plugin.activerecord.ModelRecordElResolver
如果不是采用main函数方法启动,使用jetty:run,则可以正常运行

JFinal

2017-08-28 17:43

@tianya 仔细追溯,而不是看表面:
1:点开 eclipse JRE System Library 下方的 Maven Dependencies 左边的加号,看里面的 jfinal 依赖的版本号
2:看是否有多个 jfinal 版本被依赖
3:点开 jfinal.jar ,看里面是不是真的存在报异常的那个 classes 文件,总之就是不要相信直觉,要去现场仔细排查

当然,更厉害的一招是:
1:删除该项目中的所有文件,只保留 src 目录与 pom.xml
2:重新导入项目,导入的时候选择 Existing Maven Project,整个世界清静了

JFinal

2017-08-28 17:45

注意,前面我讲的删除项目中的所有文件,核心点在于删除 ecipse 自动生成的 .project、.setting 等等的隐藏目录,以及 .project 配置文件等等,一切 eclipse 生成的配置文件

删干净再次导入目的就是让 eclipse 重新生成这些文件,以改正以往你改配置时留下的一些问题

tianya

2017-08-29 18:38

@JFinal 尝试了,但还是一样
然后仔细看了官方maven的demo,寻找我的系统与demo不一样的地方,反复测试。最终把系统的me.setViewType(ViewType.JSP);注释掉了,系统不报错了,不过jsp的功能丢失了。
PS:在maven的demo里面,加上me.setViewType(ViewType.JSP),错误一致。

是否还有别的解决方案?

JFinal

2017-08-29 19:58

如果需要使用 jsp,除了 jetty-server 那个依赖以外,再添加一下下面的maven依赖:
groupId:org.eclipse.jetty
artifactId:jetty-jsp
version:8.1.8.v20121106

由于回复不支持 xml 内容,以上配置自行转换为 xml 形式即可,除此之外的任何有关 jsp 的依赖全部删掉

tianya

2017-08-29 20:04

@JFinal 厉害!!!搞定

热门反馈

扫码入社