开发者社区> 问答> 正文

maven 构建 jfinal 项目时候运行报错 普通web项目没有问题?报错

jfinal 的ServerFactory 类 里面的

private static String detectWebAppDir() {
String rootClassPath = PathKit.getRootClassPath();
String[] temp = null;
if (rootClassPath.indexOf("\\WEB-INF\\") != -1)
temp = rootClassPath.split("\\\\");
else
temp = rootClassPath.split("/");
return temp[temp.length - 3];
}
这个方法.
错误:java.lang.ArrayIndexOutOfBoundsException: -2
debug 查看 rootClassPath 变量
maven 项目下为:/E:/workspaces/MyEclipse/mys/target/classes/
普通web项目下为:/E:/workspaces/MyEclipse/ss/WebRoot/WEB-INF/classes/

是什么情况请大神分析下.

展开
收起
爱吃鱼的程序员 2020-06-22 14:27:14 610 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
    @Jfinal

    这个的话,你设置一下你自己的classpat吧

    不管怎么配置始终都是在/target/classes这个目录 

    应该是你启动方式有误,使用MAVEN构建时,按JFinal文档那个新建JAVAApplication启动项时启动,会出现这样的问题。如果从Config类main方法启动,应该是可行的。

    publicstaticvoidmain(String[]args){JFinal.start("WebRoot",80,"/",5);}注意“WebRoot”参数,我的是maven项目是普通项目结构,如果是maven结构的,应该是“src/main/webapp”。

    应该是你的项目结构有问题,你可以参考我的博客这篇文章的3.2节(http://my.oschina.net/u/554168/blog/178841)创建个测试项目,然后关联JFinal,试试。这样能启动吗,我的报了错误NoSuchMethodError:javax.servlet.ServletContext.getContextPath()Ljava/lang/String;发表不了评论?

    引用来自“Adam.ZLQ”的答案

    应该是你启动方式有误,使用MAVEN构建时,按JFinal文档那个新建JAVAApplication启动项时启动,会出现这样的问题。如果从Config类main方法启动,应该是可行的。

    publicstaticvoidmain(String[]args){JFinal.start("WebRoot",80,"/",5);}注意“WebRoot”参数,我的是maven项目是普通项目结构,如果是maven结构的,应该是“src/main/webapp”。

    并不是maven不科学,而是我们对它还并不熟悉。
    2020-06-22 14:27:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Web应用系统性能优化 立即下载
高性能Web架构之缓存体系 立即下载
PWA:移动Web的现在与未来 立即下载