部署问题
-
下载不到
jeesite-xxx.jar
依赖包:有可能是你的 Maven 配置文件setting.xml
里添加了mirror
导致的问题,请删除这些配置,再尝试执行/web/bin/package.bat
脚本,预先下载依赖 jar 包即可。 -
国内 Maven 私服:官方已将 v4.1.8 及以上版本的 Maven 仓库已迁移到国内仓库,从旧版升级上来的用户请更新
/parent/pom.xml
和/web/pom.xml
最下方的repositories
和pluginRepositories
的仓库地址为最新的仓库配置地址代码。已付费用户,请使用官方提供的 Maven 私服工具。 -
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 publishing
和Pushlish module contexts to separate XML files
打钩即可 -
修改文件都需要重启比较麻烦,其实不是这样的,使用 Debug 运行系统,除非改变类结构(新增java类,新增属性或方法)才需要重启;其它情况(修改java类内的方法,修改视图文件,修改静态文件)下都不需要重启的。另外推荐使用 JRebel 热部署插件,可动态加载类结构。不建议使用 spring-boot-devtools 插件。
-
IntelliJ IDEA 中修资源文件必须重启才生效:https://www.cnblogs.com/chenzechao/p/10217157.html
-
设置 yml 里的参数后没有生效:检查你的yml格式是否正确,前面必须是空格,不可是Tab,检查父级选项是否打开,yml语法格式:http://www.ruanyifeng.com/blog/2016/07/yaml.html
- 自己新建的模块,为什么打包的时候,提示找不到我新增模块的类?是依赖问题。解决方法:先打包依赖项目,就是你自己新建的模块
mvn install
安装到本地 Maven 仓库,再打包被依赖项目。建议,将你新建的模块加入/root/pom.xml
模块里,打包项目的时候,直接运行/root/bin/backage.bat
一键打包即可。
其它问答
-
如果 erm 文件打不开,请使用 Eclipse 安装 ERMaster 插件,菜单 Help -> Install New Software -> Work with:
http://thinkgem.gitee.io/ermasterr
-> Select All -> 取消 Contact all update site… 复选框 -> 点击 Next 直到 Finish. 也可以手动下载安装插件包安装到 Eclipse:https://gitee.com/thinkgem/ermasterr -
${ctx}和${ctxStatic}是在哪里定义的,怎么添加新变量?https://gitee.com/thinkgem/jeesite4/issues/IICBF
-
登录后菜单不见了,菜单状态自动变为 2 停用状态?请检查下菜单归属的模块对应的状态是什么,归属模块指定的class必须是一个存在的class,如果不存在,模块状态会为“未安装”。所以菜单对应模块状态必须为“启用”才可以,否则启动系统时会自动设置菜单的状态停用。如果不需要此特性,你也可以关闭它:menu.updateStatusByModuleStatus=false
-
菜单权重是什么,添加的默认权重菜单,超级管理员怎么看不到:【内置功能】 搜索:
菜单权重
-
新建用户后的密码是多少?系统默认密码是
123456
。为了方便HR进行管理用户,不需要手动去设置一个密码,系统会自动默认,你也可以从参数设置
菜单中找到sys.user.initPassword
修改初始密码。 -
为什么当 Dao 调用,会加一个 status != 1,Service 调用,会加一个 status = 0?如果你的表中有 status 这个字段的时候就会默认加上,是因为大多数业务系统 Dao 调用都需要排除逻辑删除的数据,Service 调用查询正常的数据,为节省手动调用的麻烦。在特殊业务场景下,如果不需要添加状态条件,可以手动调用
getSqlMap().getWhere().disableAutoAddStatusWhere()
进行状态查询条件即可,如果想使用 Service 查询非删除的数据,则调用entity.setStatus("")
将状态设置为空字符串即可。 -
如果你开启了多租户,就会默认增加 corp_code 这个条件,有些情况需要管理员看全部数据,这时候,你可以调用
getSqlMap().getWhere().disableAutoAddCorpCodeWhere()
方法就不会默认添加这个字段了。 -
文件上传按钮点击没反应,这个可能是因为你的窗口位移或上传控件显示隐藏造成的,在位移或显示后,调用
window.webuploaderRefresh();
即可刷新按钮控件位置。 -
为何设置
session.sessionTimeout
会话超时时间大于30分钟将无效?因为会话是存到J2Cache缓存里的,J2Cache默认有个缓存超期时间,所以你还需要设置j2cache.caffeine.region.sessionCache
最大个数和超时时间,v4.2 之前版本打开j2cache.properties
属性文件进行设置。 -
如果你一个域名下部署了多个项目,可能会导致登录一个项目,另一个项目的会话被挤下的问题,这是因为 Cookie 的 Session 名称冲突原因。你只需要修改
application.yml
里的session.sessionIdCookieName
值为,多个项目不一样的就可以。 -
主子表的子表,第一次点击提交按钮时,子表数据不能提交到后台(子表属性没有添加 xxxList[i].xxxx 前缀);第二次点击提交按钮时,才能提交后台。这是因为在初始化 dataGrid 时会先去绑定表单 submit 事件,执行 dataGrid 的 updateListFieldName 方法,然后在进行提交。如果你将 validate 绑定表单事件放到 dataGrid 初始化前面去执行,就不会先去执行 updateListFieldName 所以造成了,第一次没有生效。解决方法:将 validate 代码,移动到 dataGrid 代码后面。
-
为什么 “作业监控”、“消息推送”、“国际化管理” 等功能菜单,显示 404 页面,是因为有些功能默认是没有开启的。你需要打开
application.yml
配置文件开启对应设置,如:web.core.enabled=true
、job.enabled=true
、msg.enabled=true
、lang.enabled=true
等。 -
Spring Boot 上传文件报错:
java.io.IOException: The temporary upload location [xxx] is not valid
,是因为:服务器内未查到指定目录。在application.yml
配置文件加入spring.servlet.multipart.location=/tmp/jeesite-tmp
配置,指定你的服务器临时目录即可 -
为什么在线预览打不开,提示 “An error occurred” 错误。若你没有配置 LibreOffice,则此功能默认使用的微软公司 Office Web Viewer 服务,需要将项目部署到外网域名默认端口才可以使用该功能。
-
如果数据表格使用复选框的时候出现重复的参数提交,请尝试将
$('#dataGrid').jqGrid('setGridParam', {postData: {}});
加入到ajaxSuccess
事件里。 -
为何我下载的代码没有顶部菜单?这个可以在 “参数设置” 菜单里找 “sys.index.menuStyle” 参数,设置为 “1” 即可将一级菜单显示到顶部。
-
下载文件提示 “文件已丢失或不存在”,该问题说明下载的文件没有在磁盘上,上传的文件默认存储在 webapp 下,有可能是你通过 IDE 多次部署的时候,清理了原部署文件,里面可能就包含已上传的文件。建议你修改 application.yml 里的
file.baseDir
指定一个绝对路径即可解决问题。 -
点击链接浏览器返回了 JSON 字符串,请按 F12 打开浏览器控制台,检查当前页面是否有 js 错误,若有根据情况解决,若没有错误,检查链接绑定 js 方法是否对 JSON 数据进行正确处理。
-
资源定义 Controller 应该返回一个视图页面,但返回了 JSON 字符串。一般这个问题开发环境正常,部署到正式上出现这个问题,问题原因是 Controller 返回的视图路径不对,导致返回了默认视图(JSON)。由于开发环境大多数是 Windows 系统,是不区分路径和文件名大小写的,发布到 Linux 上,文件系统是区分大小写的,大小写敏感的,导致找不到视图文件。出现这个问题时,请仔细检查视图文件路径是否匹配。