项目是JFinal做的,用的IntelliJ IDEA,先介绍下环境,当然出现此问题的原因后JFinal是没有关系的,是maven配置的问题。
启动项目的时候突然报了以下错误
java.lang.IllegalArgumentException: Properties file not found in classpath: config-dev.txt at com.jfinal.kit.Prop.<init>(Prop.java:67) at com.jfinal.kit.PropKit.use(PropKit.java:79) at com.jfinal.kit.PropKit.use(PropKit.java:53) at com.ousense.common.config.MainConfig.loadConfig(MainConfig.java:49) at com.ousense.common.config.MainConfig.configConstant(MainConfig.java:59) at com.jfinal.core.Config.configJFinal(Config.java:51) at com.jfinal.core.JFinal.init(JFinal.java:61) at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:63) at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:111) at io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:80) at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:591) at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:556) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:598) at com.jfinal.server.undertow.UndertowServer.configHttp(UndertowServer.java:284) at com.jfinal.server.undertow.UndertowServer.doStart(UndertowServer.java:262) at com.jfinal.server.undertow.UndertowServer.start(UndertowServer.java:159) at com.jfinal.server.undertow.UndertowServer.start(UndertowServer.java:84) at com.ousense.common.config.MainConfig.main(MainConfig.java:41)
其实就是resources文件夹没有编译进去,百度了下资料,有在pom.xml文件下加入以下代码的。
<resources> <resource> <directory>src/main/resources</directory> </resource> </resources>
当然,Project Settings下的Modules,也在对应的项目下设置了Resources
启动,依然报错。
其实解决java.lang.IllegalArgumentException: Properties file not found in classpath的问题的方法也很简单,如果以上2不都设置了还是报错,看看pom.xml文件是不是配置了
<packaging>pom</packaging>
如果是,注释掉吧。这样在运行项目,就不会报错了。