JeeSite 4.x

Spring Boot 最好的快速开发平台

使用 JeeSite 4 过程中的 ★ 常见问题 ★

  • 下载不到jeesite-xxx.jar依赖包:相关包已经发布到Sonatype Repository快照仓库,在web项目的pom.xml里已配置,有可能是你的 Maven setting.xml里添加了mirrorrepository导致的问题,请清理或追加添加Sonatype Repository仓库地址,再尝试执行 /web/bin/package.bat 脚本,预先下载依赖jar包即可。

  • IntelliJ IDEA中提示NoClassDefFoundError: javax/servlet/ServletOutputStream 错误,你只需要修改web项目下的pom.xml,注释掉spring-boot-starter-tomcat<scope>provided</scope>部分改为<scope>compile</scope>即可。

  • 出现NoSuchMethodError错误,一般是依赖包版本需要更新,请尝试如下操作:在web项目上右键,选择菜单 -> Maven -> Update Project…(或按Alt+F5) -> 点击 Select All 按钮 -> 选择 Force Update of Snapshots/Releases 复选框 -> 点击OK按钮即可。

  • MySql执行init-data.bat初始化数据失败,你可尝试设置下 my.ini 给 [mysqld] 增加如下配置:
    sql_mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    
  • 如果遇到ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.错误,请在 my.ini 中加入如下配置:
    innodb_large_prefix = ON 
    innodb_file_format = Barracuda 
    innodb_file_per_table = ON
    

    并修改报错的建表语句后面加上:row_format=DYNAMIC;

  • MySql下报You can't specify target table 'xxx' for update in FROM clause错误,这是在Mysql的一个BUG,影响版本 MySql 5.7.6 到 5.7.10 【参考】,并避开此版本,升级MySql数据库,即可解决。

  • 若在初始化每一行语句的都报事务相关的错。MySql下报The command cannot be executed when global transaction is in the ACTIVE state,Oracle下报SQLSyntaxErrorException: ORA-02089: COMMIT 不允许在附属会话中错误。请检查设置jdbc.jta.enabled=false是否关闭后再进行尝试导入。

  • 启动报UnsatisfiedLinkError错误,如果你是在 Eclipse 手动部署到 Tomcat 服务,请打开 Servers 选项卡,双击你新增的 Tomcat 服务,进入设置,找到Server Options给以下选项Serve models without publishingPushlish module contexts to separate XML files打钩即可

  • 修改文件都需要重启比较麻烦,其实不是这样的,使用 Debug 运行系统,除非改变类结构(新增java类,新增属性或方法)才需要重启;其它情况(修改java类内的方法,修改视图文件,修改静态文件)下都不需要重启的;

  • IntelliJ IDEA 中修资源文件必须重启才生效,解决办法:http://bbs.ibeetl.com/bbs/bbs/topic/612-1.html

  • 设置 yml 里的参数后没有生效:检查你的yml格式是否正确,前面必须是空格,不可是Tab,检查父级选项是否打开,yml语法格式:http://www.ruanyifeng.com/blog/2016/07/yaml.html

  • 如果erm文件打不开,请下载这个最新版插件:https://github.com/think-gem/ermasterr

  • ${ctx}和${ctxStatic}是在哪里定义的,怎么添加新变量?https://gitee.com/thinkgem/jeesite4/issues/IICBF

  • 登录后菜单不见了,菜单状态自动变为 2 停用状态?请检查下菜单归属的模块对应的状态是什么,归属模块指定的class必须是一个存在的class,如果不存在,模块状态会为“未安装”。所以菜单对应模块状态必须为“启用”才可以,否则启动系统时会自动设置菜单的状态停用。如果不需要此特性,你也可以关闭它:menu.updateStatusByModuleStatus=false

  • 菜单权重是什么,添加的默认权重菜单,超级管理员怎么看不到:【内置功能】 搜索:菜单权重

  • 新建用户后的密码是多少?系统默认密码是123456。为了方便HR进行管理用户,不需要手动去设置一个密码,系统会自动默认,你也可以从参数设置菜单中找到sys.user.initPassword修改初始密码。

  • 为什么默认会加一个 status != 1,如果你的表中有status这个字段的时候就会默认加上,是因为大多数业务系统都需要排除逻辑删除的数据,节省手动调用的麻烦,如果不需要,调用 entity.setStatus("") 并且 getSqlMap().getWhere().disableAutoAddStatusWhere() 即可。

  • 如果你开启了多租户,就会默认增加 corp_code 这个条件,有些情况需要管理员看全部数据,这时候,你可以调用 getSqlMap().getWhere().disableAutoAddCorpCodeWhere() 方法就不会默认添加这个字段了。

  • 文件上传按钮点击没反应,这个可能是因为你的窗口位移或上传控件显示隐藏造成的,在位移或显示后,调用 window.webuploaderRefresh(); 即可刷新按钮控件位置。

  • 为何设置 session.sessionTimeout 会话超时时间大于30分钟将无效?因为会话是存到J2Cache缓存里的,J2Cache默认有个缓存超期时间,该会话的超期时间默认也是30分钟,所以你需要打开 j2cache.properties 属性文件,同步设置 caffeine.region.sessionCache 的最大个数和超时时间即可。

  • 自己新建的模块,为什么打包的时候,提示找不到我新增模块的类?是依赖问题。解决方法:先打包依赖项目,就是你自己新建的模块 mvn install 安装到本地 Maven 仓库,再打包被依赖项目。建议,将你新建的模块加入 /root/pom.xml 模块里,打包项目的时候,直接运行 /root/bin/backage.bat 一键打包即可。

  • 如果你一个域名下部署了多个项目,可能会导致登录一个项目,另一个项目的会话被挤下的问题,这是因为 Cookie 的 Session 名称冲突原因。你只需要修改 application.yml 里的 session.sessionIdCookieName 值为,多个项目不一样的就可以。

  • 主子表的子表,第一次点击提交按钮时,子表数据不能提交到后台(子表属性没有添加 xxxList[i].xxxx 前缀);第二次点击提交按钮时,才能提交后台。这是因为在初始化 dataGrid 时会先去绑定表单 submit 事件,执行 dataGrid 的 updateListFieldName 方法,然后在进行提交。如果你将 validate 绑定表单事件放到 dataGrid 初始化前面去执行,就不会先去执行 updateListFieldName 所以造成了,第一次没有生效。解决方法:将 validate 代码,移动到 dataGrid 代码后面。