jfinal4.9.03 mysql8 eclips4.9 按照官网maven

image.png

我用的官网的maven-demo

image.png

image.png

image.png

image.png

image.png

该怎么办呢?我在网上查到的,包括:MySQLURL时区设置,新版本用.cj.,还有密码加密的方式,还有数据库连接池用四个参数问题,还有低版本不兼容,还有eclipse版本要求,我都试了。所以,我列出自己的版本,和大家都说会出问题的地方。我是真没办法了。

评论区

JFinal

2020-12-01 00:03

NullPointerException 这个很好解决,调置一个断点,看看哪个对象是 null 引发的异常,分分钟就解决了

lznas

2020-12-01 18:12

好的,谢谢指导,困扰我的问题,原来需要我学会用断点,我没用过断点,见笑了,正好学习一下,我自己先排查一下,

lznas

2020-12-01 19:48

@JFinal
undertow-server: 优先使用配置文件中的 undertow.port = 80
undertow-server: 优先使用配置文件中的 undertow.devMode = true
Starting JFinal 4.9.03 -> http://192.168.1.3:80
Info: jfinal-undertow 2.2, undertow 2.0.32.Final, jvm 1.8.0_271
Starting Complete in 14.1 seconds. Welcome To The JFinal World (^_^)
我好像自己解决了,太开心了。第一次用断点找到原因了,竟然还可以这么玩。不过,应该说,是咱们的demo无意中给我这种新手设置了一个误解,我没看懂。本来想贴图,没贴上,只能留言了。谢谢领导给我一个思路。
问题出在这里:
static Prop p;
/**
* PropKit.useFirstFound(...) 使用参数中从左到右最先被找到的配置文件
* 从左到右依次去找配置,找到则立即加载并立即返回,后续配置将被忽略
*/
static void loadConfig() {
if (p == null) {
p = PropKit.useFirstFound("demo-config-pro.txt", "demo-config-dev.txt");
}
}
这是官网给我们源代码和说明。
我把键值写在了这里
"demo-config-dev.txt"
所以,没有prop返回值,是我对这段语句的一个误解。
当我发现是这个对象没有取到值的时候,删除了"demo-config-pro.txt";代码通过了。
在这里,也头一次跟大家分享自己的经历和心得。感谢领导那么晚,还没休息,给我回复。我真的搞了一晚上,实在没办法了,抱着试试看的角度,问一下。
下面是改正后的代码,让和我遇到同样问题人,基础差的朋友,看的清除,不至于耽误这么久。
解决问题的过程,痛苦并快乐着。
/**
* PropKit.useFirstFound(...) 使用参数中从左到右最先被找到的配置文件
* 从左到右依次去找配置,找到则立即加载并立即返回,后续配置将被忽略
*/
static void loadConfig() {
if (p == null) {
p = PropKit.useFirstFound( "demo-config-dev.txt");
}
}
不过,"demo-config-pro.txt"这个文件是什么,我还没理解,也没找到。咱们这里为啥要提到这个文件,有啥用呢,然后,我们官网给的文件,却让我们把键值写在了 "demo-config-dev.txt"这里。

lznas

2020-12-01 19:52

由于刚出现问题的时候,语句停留在数据库连接池哪里,我一直以为是我的jdbc配置出错了,根本没想到是键值没有读取到。我甚至直接给函数变量赋值,也没解决。以为空指针发生在这里,根本没想到是读取数据除了问题。

lznas

2020-12-01 19:55

我也试过,上面的做法,遗憾的是,我改变了其它的参数,掩盖了自己的怀疑,交叉错误,造成陷入死胡同。一次很好的成长经历。

lznas

2020-12-01 19:57

从今晚开始按照领导的建议,到解决问题,18点到接近20点,我用了1.5小时。哈哈哈。谢谢领导。

JFinal

2020-12-01 20:20

demo-config-dev.txt 中的 dev 是 development 的缩写,代表开发

而 pro 是 production 的缩写,代表生产

dev 表示开发环境用的配置文件, pro 表示生产环境用的配置文件,这个是基本常识


为什么要引入 dev 与 pro 两类配置文件:
1:你在开发时一般是在自己的电脑上,各种配置可能不一样,例如数据库用户名密码,devMode = true 等等

2:生产环境是另一套配置,而对于较大规模的,比较专业的公司,生产环境的用户名、密码是敏感信息,不能放在本地项目中,也就是说你看不到 xxx-pro.txt 这个配置文件

为什么要使用 PropKit.useFirstFound("xxx-pro.txt", "xxx-dev.txt"):
1:在你开发的时候,由于本地不存在 "xxx-pro.txt",所以会加载 "xxx-dev.txt" 中的配置,正好是你开发环境下的配置

2:项目部署到生产环境,运维可以通过下面命令先复制一份你的配置到 xxx-pro.txt:
cp xxx-dev.txt xxx-pro.txt

3:然后修改 xxx-pro.txt 中的配置与生产环境相匹配即可。例如修改数据库的用户名与密码

JFinal

2020-12-01 20:22

你碰到这个问题的本质原因是因为你自行创建了 "demo-config-pro.txt",你自己创建了它,就要对此负责

我的建议:在起步阶段先不要搞创新,先学习接受,等熟悉到一定程度以后再创新不迟

JFinal

2020-12-01 20:23

最后,调试是 IT 入行的基本标志,会写代码根本不是入行标志

现在大量从学校出来的学生,连 debug 是什么都不知道,这是极端可怕的事情,因为:代码根本不是写出来的,而是调出来的

lznas

2020-12-04 20:34

@JFinal 我还是没懂。按照官网给的demo,我自己并没有创建任何文件,代码和文件都是原版的,所以才郁闷的没法解决,也没看懂。
我自己并没有创建 "demo-config-pro.txt",我也没有在官网的demo中找到这个文件,所以,不知道文件建在哪里,所以,我是不会这么做的。
我五年前就接触了jfinal,还买了小木的课,还是没有搞明白怎么使用。现在小木把网上的课给删除了,我的钱也白花了,郁闷的不行。最近又买了一些介绍jfinal的课,说的还都是云山雾罩的,没有解决我的问题。
我实在是没弄明白,这句代码p = PropKit.useFirstFound("demo-config-pro.txt", "demo-config-dev.txt");我是保留,还是改成我后来的样子呢?
对于我们来说,最难的就是这些没有人介绍的基础,不怕不会,就是找不到解决问题的途径和渠道,找不到参考资料。非常感谢领导的耐心讲解。可是我要怎么解决我的问题呢。
这几天,没有回您的话,是因为,上个问题,我自己稀里糊涂解决了,就享福看看web端效果,可是,我用jfinal的默认模板引擎,根本出不来效果,我查官方文档还有自己找资料,也没弄明白,怎么能出效果呢。这里也帖不了图。我是按照官网的demo,出来的都不是视图。不知道该在哪里找资料和介绍,也不知道如何下手区解决这个问题。官方的介绍文档,对我这种水平来说,不知道说的是什么,照着做,也出不来结果,更别说自己敢随便改demo代码了。

lznas

2020-12-04 20:36

我电脑本地就没有"xxx-pro.txt",只有官网demo解压出来的 "xxx-dev.txt",这句p = PropKit.useFirstFound("demo-config-pro.txt", "demo-config-dev.txt");也是demo直接解压的,我自己真的没有创新,所以,出现问题后,自己就不知所然。

lznas

2020-12-04 20:37

按照领导的建议,debug后,才发现,是上面的问题,有不知道该怎么做才对,如果不问您,根本不知道怎么回事。

lznas

2020-12-04 20:45

今天,又得麻烦您给指条路,这个默认的Engine模板怎么用呀,我按照官网的demo,无法运行。首先,浏览器不自动识别代码,需要手动设置浏览器为utf-8,才能看到中文。其次,页面上都是代码,没有渲染效果。按照我理解的官网的配置要求,也不行,总是报错,还不清楚报的什么错,也不知道如何销售解决。
我这次是下决心要学会使用jfinal,还请领导指点方向。

lznas

2020-12-04 20:47

我还是没懂。按照官网给的demo,我自己并没有创建任何文件,代码和文件都是原版的,所以才郁闷的没法解决,也没看懂。
我自己并没有创建 "demo-config-pro.txt",我也没有在官网的demo中找到这个文件,所以,不知道文件建在哪里,所以,我是不会这么做的。
我五年前就接触了jfinal,还买了小木的课,还是没有搞明白怎么使用。现在小木把网上的课给删除了,我的钱也白花了,郁闷的不行。最近又买了一些介绍jfinal的课,说的还都是云山雾罩的,没有解决我的问题。
我实在是没弄明白,这句代码p = PropKit.useFirstFound("demo-config-pro.txt", "demo-config-dev.txt");我是保留,还是改成我后来的样子呢?
对于我们来说,最难的就是这些没有人介绍的基础,不怕不会,就是找不到解决问题的途径和渠道,找不到参考资料。非常感谢领导的耐心讲解。可是我要怎么解决我的问题呢。
这几天,没有回您的话,是因为,上个问题,我自己稀里糊涂解决了,就想看看web端效果,可是,我用jfinal的默认模板引擎,根本出不来效果,我查官方文档还有自己找资料,也没弄明白,怎么能出效果呢。这里也帖不了图。我是按照官网的demo,出来的都不是视图。不知道该在哪里找资料和介绍,也不知道如何下手去解决这个问题。官方的介绍文档,对我这种水平来说,不知道说的是什么,照着做,也出不来结果,更别说自己敢随便改demo代码了

JFinal

2020-12-04 23:18

你自己的回复,时间在: 2020-12-01 19:48

其中有这么一句:
当我发现是这个对象没有取到值的时候,删除了 "demo-config-pro.txt";代码通过了。

我才认为你自己创建了 "demo-config-pro.txt", 要不从何删起

engine 的用法已经不能再简单了,表达式当 java 用,多看看文档

lznas

2020-12-05 17:57

@JFinal 谢谢领导的回复,其实,误解都是因为我们是阅读文字,不是语言交流。给我的感觉是,您的团队和您本人在软件行业是绝对的高手和精英,不过,在文案和教学方面,可能是时间问题,确实不能满足像我一样的人能够读懂和理解。我也愿意在这方面做出自己的帮助。让与我一样的人,能够有信心入门和使用这个工具。
您说的很对,对于engine,真的用法很简单,我刚刚把demo代码跑起来,已经实现了demo在浏览器中的效果和读取删除数据库功能,真的很高兴,这些天的努力有了成果,所以马上过来回复您,也报告一下我的进展。
因此,回过头来,我才有上面的感想。弄明白了,才发现简单,可是对于入门来说,官方文档是写给老手的,我们新手读起来真的很费力。而且,我也说了,我看了一些教学视频资料,也是一头雾水。对于你们来说,简单的事,可是你们没有站在我这种水平考虑你们写的东西,换位思考,你们可能感觉我们太笨了,太可笑了,可是我真的感觉给我刚入门造成很大困扰。
本来我们是降低学习成本,极速开发,可是,学起来,却看不懂官方文档再说什么,把简单的事,搞复杂了。或者说,把复杂的事,搞简单了。

您上面的回复,也证明,即使是您这样的高手,读了我的文字,我自己以为表述很清楚了,是官方代码就这么写的,我修改了官方代码,才让软件跑起来。而您却认为是我修改造成的问题。

这就是沟通障碍造成的。我说的问题,可见一斑。

还有,虽然代码跑起来了,其中的问题和艰辛,自己排查出来,算是进步。当然,我还对demo做了修改,不然还是跑不起来,是个500错误,我还没想清楚,为什么我这么改,就能运行。

还有关于官方demo最后一个问题没有解决,就是校验,添加记录时,如果是没有填写内容,需要校验和提示,demo里有关于这方面的代码,可是并没有起作用,这方面,我还没有研究明白。

代码虽然运行了,基本功能也实现了,demo最后一个功能校验还是没有实现目标。

lznas

2020-12-05 18:02

目前,对于engine,我的困惑不是用法,也不是文档,而是demo的运行,我一直无法实现渲染和页面跳转,还有一会是空指针,一会是400或500错误,头都大了。

还好,自己一点一点解决了。这是看官方文档给不了我的答案,难就难在这里。也是我对官方文档读不懂的困惑。

中国太大,语言表述也是复杂,打字真的说不清楚呀。

lznas

2020-12-05 18:44

@JFinal 太好了,现在完美了,校验问题解决了,整个demo代码我都看懂了,问题也弄明白了,实现了全部功能。
现在可以进行下一步学习了。
能给我一些建议吗?我下一步要怎么学习和应用,来提高我的水平,让我更深入的应用这个开发工具。

demo中关于增删改查的服务层,我还有待研究一下,没太懂。
请问:是不是每个表都要像demo中blog的样子,建控制、服务、拦截、校验四个类,还都要有自己的baseBlog类呢?

JFinal

2020-12-05 22:56

@lznas 上手可能会稍微碰到一点点问题,熟悉以后就会好很多,因为 jfinal 是极简设计,整个框架所涉及的概念被最少化过了,所以学习成本才会低

学习 jfinal 的步骤:
1:以最快的速浏览文档,重点关注自己想关注的部分
2:下载 demo,跑起来
3:在 demo 里面添加代码,改代码,验证自己在文档中学到的知识点
4:上手开发实际的项目

当然,最后我不得不打个广告,加入 jfinal 俱乐部,拿走 jfinal.com 源码,这是一套 jfinal 最佳实践代码,能省多时间

当然,如果舍不得那一百多块钱的话,来杯咖啡授权 获取 jfinal-kit.js & jfinal-blog 项目也可以节省大量时间,这也是一套最佳实践

JFinal

2020-12-05 22:56

@lznas jfinal-kit.js & jfinal-blog 的 咖啡授权 在这里:
https://jfinal.com/app/1

lznas

2020-12-06 18:29

@JFinal 哦,是这个样子啊,晓得了。加入俱乐部就可以拿走 jfinal.com 源码吗?是否包含jfinal-kit.js & jfinal-blog 的 咖啡授权,还是需要另外来杯咖啡授权。
最头疼的起步,我已经过了,demo完美运行了。
第三步和第四步了,目前还无从下手,希望给点指引。
你的建议,我觉得还是加入俱乐部比较好。只是,前期学习过程,受到太大挫折,有心理阴影了。
我听你的建议,会加入俱乐部的。谢谢!

JFinal

2020-12-06 19:59

@lznas 俱乐部与咖啡授权是分开的,俱乐部的资源要多很多,你可以进入这里看一下:
https://jfinal.com/my/club

热门反馈

扫码入社