JFinal

登录 注册
JFinal 已连续多年蝉联最受欢迎中国开源软件冠军,投出您宝贵的一票今年继续夺冠! 评选传送门

用jfinalide创建一个纯净的web项目,启动Tomcat,MainConfig创建不了

如图,我用tomcat7部署新建的项目,blob.png


项目结构如图:blob.png


MainConfig如图:

package com.ronny.common.config;


import com.jfinal.config.Constants;

import com.jfinal.config.Handlers;

import com.jfinal.config.Interceptors;

import com.jfinal.config.JFinalConfig;

import com.jfinal.config.Plugins;

import com.jfinal.config.Routes;

import com.jfinal.core.JFinal;

import com.jfinal.kit.PropKit;

import com.jfinal.plugin.activerecord.ActiveRecordPlugin;

import com.jfinal.plugin.activerecord.dialect.MysqlDialect;

import com.jfinal.plugin.c3p0.C3p0Plugin;

import com.jfinal.render.ViewType;


public class MyMainConfig extends JFinalConfig {

/**

* 配置JFinal常量

*/

@Override

public void configConstant(Constants me) {

//读取数据库配置文件

PropKit.use("config.properties");

//设置当前是否为开发模式

me.setDevMode(PropKit.getBoolean("devMode"));

//设置默认上传文件保存路径 getFile等使用

me.setBaseUploadPath("upload/temp/");

//设置上传最大限制尺寸

//me.setMaxPostSize(1024*1024*10);

//设置默认下载文件路径 renderFile使用

//me.setBaseDownloadPath("");

//设置默认视图类型

me.setViewType(ViewType.JSP);

//设置404渲染视图

//me.setError404View("404.html");

}

/**

* 配置JFinal路由映射

*/

@Override

public void configRoute(Routes me) {

//第三个参数为该Controller的视图存放路径

me.add("/", com.ronny.index.IndexController.class);

}

/**

* 配置JFinal插件

* 数据库连接池

* ORM

* 缓存等插件

* 自定义插件

*/

@Override

public void configPlugin(Plugins me) {

//配置数据库连接池插件

C3p0Plugin c3p0Plugin=new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password"));

//orm映射 配置ActiveRecord插件

ActiveRecordPlugin arp=new ActiveRecordPlugin(c3p0Plugin);

arp.setShowSql(PropKit.getBoolean("devMode"));

arp.setDialect(new MysqlDialect());

/********在此添加数据库 表-Model 映射*********/

//添加到插件列表中

me.add(c3p0Plugin);

me.add(arp);

}

/**

* 配置全局拦截器

*/

@Override

public void configInterceptor(Interceptors me) {


}

/**

* 配置全局处理器

*/

@Override

public void configHandler(Handlers me) {


}

public static void main(String[] args) {

JFinal.start("WebRoot", 8080, "/", 5);

}


}


各位出现过这个问题吗????

评论

  • 12-02 10:38
    典型的配置问题,普通 java 项目的类路径有的在 bin 目录下面,而 web 类路径在 WEB-INF/classes 之下,那么在用 main 方法启动的那个时刻用的是 bin下面的 class,而 web被加载时使用的是 WEB-INF/classes 下面的 class

    结果就是看似完全一样的类文件,分别来自不同的地方,造成加载异常

    又扫描了一下你的贴子,这个异常是说工不到 class 文件,比上面我提到的情况还要基本, Default Output folder 没有配置好而已,看一下手册,里面有详细的图文并茂的配置
  • 12-02 10:53
    @JFinal jfinal_my_Demo/WebRoot/WEB-INF/classes Default Output folder默认是这样子的 编译还是那个问题额
  • 12-04 22:22
    @RonnyZhang 1、Tomcat启动失败,选择项目 右键选择 Properties ,选择 Deployment Assembly ,是不是源码没映射到WEB-INF/classes 的 Deploy Path 里 。2、如果通过main启动失败 将 编译的输出目录调整到 WEB-INF/classes 目录,编译输出放在其他目录启动时候自定义的JfinalConfig类加载器是AppClassLoader ,jfinal.jar的加载器是WebClassLoader ,类加载器不同导致 if (temp instanceof JFinalConfig) 判断失败。
  • 01-04 14:26
    jetty启动正常 tomcat一般就没问题 需要看看你的web-inf下面classes正常否
  • 发送