cskefu icon indicating copy to clipboard operation
cskefu copied to clipboard

现在有个问题我springBoot升级到了2.x,跳转访问不到login.html

Open anewoneday2019 opened this issue 2 years ago • 16 comments

image image image 这块都没改过,我现在怀疑是pug4j 依赖版本低导致,有新的支持springBoot2.x的版本的吗

anewoneday2019 avatar Mar 22 '22 03:03 anewoneday2019

image image

anewoneday2019 avatar Mar 22 '22 03:03 anewoneday2019

18 年尝试过做这个升级,当时发现有很多工作量,没做成。 现在不知道是不是可以简单一点。 社区是非常期待这个 PR 的。


请使用以下工具提升沟通效率

  • 工单管理: https://github.com/chatopera/cskefu/issues
  • 文档中心:https://docs.chatopera.com/
  • 商务洽谈:https://www.chatopera.com/mail.html

春松客服大讲堂

https://chatopera.blog.csdn.net/article/details/121599407

hailiang-wang avatar Mar 22 '22 04:03 hailiang-wang

@anewoneday2019 老铁,你是准备升级到2.6版吗? 我升级到2.3版是可以访问的,但只要升级到2.4或以上就会出现和你一样的情况。 不过你是用osc分支,我是用springboot2.x分支。 虽然很想贡献代码到社区,但osc与springboot2.x在我使用的时候就已经是有很大区别了

  1. 前端 osc使用pug4j springboot2.x使用freemarker
  2. mysql数据与数据结构

如果不介意使用 spring boot 2.3.12.RELEASE ES 7.6.2(不改依赖,最高升级到7.14.2) 可以参考我的分支提交记录: https://github.com/dph5199278/wit/commit/621c949e471e8338045d0fef51dd77800dda950e

我认为这个404问题在osc或springboot2.x分支上都是一样的问题造成的,如果已解决,能否分享下? 如果我这边解决的话,我将提交到我的分支,并在此附上我的那个提交记录

dph5199278 avatar Mar 22 '22 06:03 dph5199278

从刚接触咋们这个项目到现在确实改了不少地方,等本地调试通过会提PR,但目前还是卡在上面的这个问题了

anewoneday2019 avatar Mar 22 '22 06:03 anewoneday2019

@dph5199278 好的,目前未解决,我的是springBoot 2.1.0.RELEASE ES 6.X可以 7.x好像有问题 mq 我改成了rabbitMq,就出现了上面问题好几天了没解决,一开始以为是别的问题导致,改来改去怀疑问题应该在pug4j这块

anewoneday2019 avatar Mar 22 '22 06:03 anewoneday2019

@anewoneday2019 老铁,你是准备升级到2.6版吗? 我升级到2.3版是可以访问的,但只要升级到2.4或以上就会出现和你一样的情况。 不过你是用osc分支,我是用springboot2.x分支。 虽然很想贡献代码到社区,但osc与springboot2.x在我使用的时候就已经是有很大区别了

  1. 前端 osc使用pug4j springboot2.x使用freemarker
  2. mysql数据与数据结构 ...

您的工作太赞了! 👍

hailiang-wang avatar Mar 22 '22 06:03 hailiang-wang

@dph5199278 你的这个分支能参考下载一下吗,因为时间问题,我暂时放弃osc 升级2.x版本了,决定在现有基础进行二次开发,之前没注意有spring boot 2.x版本的,直接下载下来就是osc的

anewoneday2019 avatar Mar 22 '22 08:03 anewoneday2019

@dph5199278 您取得进展很大,可以将关于 spring boot 2.x 变动提交到 cskefu osc 分支吗?这将是社区的福音。 社区共建!


请使用以下工具提升沟通效率

  • 工单管理: https://github.com/chatopera/cskefu/issues
  • 文档中心:https://docs.chatopera.com/
  • 商务洽谈:https://www.chatopera.com/mail.html

春松客服大讲堂

https://chatopera.blog.csdn.net/article/details/121599407

hailiang-wang avatar Mar 22 '22 08:03 hailiang-wang

@hailiang-wang 必须的,当前我的mq使用的是rabbitMq,等我完成现有工作之后我会按原先的activeMq提交一版

anewoneday2019 avatar Mar 22 '22 08:03 anewoneday2019

@anewoneday2019 当然可以,两边都是Apache 2.0的开源协议,只要遵守协议即可,不过我那分支不一定支持这边的插件 我那边对框架的改造: 升级spring boot 2.3.12.RELEASE 升级ES 7.6.2(不改依赖,最高升级到7.14.2) 将activemq改为activemq-artemis

@hailiang-wang 谢谢,对于合并到osc会有些麻烦,如果你们可以合并的话是可以的,因为osc与springboot2.x分支本身代码上就有很多差异,而我是在springboot2.x分支上开发来的,无法保证pug4j与freemarker的兼容性,也无法保证项目的正确性。

dph5199278 avatar Mar 22 '22 10:03 dph5199278

@dph5199278

是的,理想的做法是在现在的 osc 分支上,做变更,升级 spring boot 到 2.x。 您可以先提交 PR 到 https://github.com/chatopera/cskefu/tree/springboot2.x。

我们应该在一起并肩努力,而不是做很多的独立的实现。春松客服没有合并到优客服,是因为优客服的开源版代码问题很多,我们几乎是重构了所有的代码。这一点您可以去比较我们基于的优客服的代码。我们维护的春松客服的代码、部署、维护、开发文档,是比优客服提升了很多的。

但是,如果今天我可以回到最开始,我会和优客服的人合作,对于开源社区的建设,团结才能带来共赢,单兵或几个人小团队作战,都不足以做出一个好的软件,而只有好的软件能带来持续的经济回报。过去我对开源的理解有错误。

最终,我们会发现,基于别人的劳动基础却不给与回报,是不利己的。我看到了您的变更,我想到了过去的一些选择,其实从2021年,春松客服与优客服联系比之前多。虽然它现在不开源了,我相当折服优客服潘俊锋对开源精神的领悟和魄力。

因果循环反复,利他也是利己。

hailiang-wang avatar Mar 22 '22 11:03 hailiang-wang

@hailiang-wang 是的,没错,团队比起单干有更好的效益。 并非这边不想合作,osc上的pug4j并不符合这边预期的开发方式,区别:

  1. spring boot版本
  2. pug4j与freemarker 基于此,这边选用了springboot2.x分支。

当然,提交PR到springboot2.x是可以的,我也很佩服春松客服与优客服的开源精神与贡献,没有你们的存在,这边的项目肯定也不可能存在的。

但每个人有每个人的理念与方式,开源的精神是开放的,如果是被一方所束缚,那么这种开源对于开发者是一种折磨。

@anewoneday2019 这边经过排查,已发现问题所在,但精力有限,无法立马解决,认为咱们的问题是同一个问题。 如果那边有时间解决,可以进行尝试🙂 login.html被识别为ResourceHttpRequestHandler,而不是HandlerMethod,因此访问了静态资源文件夹,但templates并非资源文件夹。 原因也比较简单:spring boot将login.html识别为静态资源,而非java路由。

方案一(修改范围较广,影响较大): 将项目中UserInterceptorHandler的login.html替换为login 以上只是修复了login页面,其余页面需要一一测试并修改。

方案二(对源码研究修改,可以兼容全部,但对后续spring升级比较不利): 需要研究下spring前后版本差异,为何之前login.html可以工作,而现在不行。

方案三: 到spring官网研究是否有配置可以实现login.html不会自动进入静态资源。

dph5199278 avatar Mar 22 '22 14:03 dph5199278

真正束缚一个人的,是他卑微狭隘的自我。我并没有要求合并,每个人心中的良知自然会要求: 如果因使用春松客服而受益,那么就应该回报到社区。

我并特指对您的看法,事实上,您属于做贡献的。如果能更多,就更好了,社区的福音!

@dph5199278

hailiang-wang avatar Mar 23 '22 00:03 hailiang-wang

@dph5199278 @anewoneday2019

你们的技术都不错,期待提交 PR 到春松客服 OSC 分支,然后将你们记录到 code 贡献者名单,thanks in advance, for any enhancements.


请使用以下工具提升沟通效率

  • 工单管理: https://github.com/chatopera/cskefu/issues
  • 文档中心:https://docs.chatopera.com/
  • 商务洽谈:https://www.chatopera.com/mail.html

春松客服大讲堂

https://chatopera.blog.csdn.net/article/details/121599407

hailiang-wang avatar Mar 23 '22 01:03 hailiang-wang

@anewoneday2019 @dph5199278 升级到 spring boot 2 增加这个配置项 spring.mvc.pathmatch.use-suffix-pattern=true 就可以了。

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide#spring-mvc-path-matching-default-behavior-change

看升级文档的时候,太长了,看了个大概,后来尝试升级的时候忘记了。但是想想访问 login.html 却能匹配到 /login controller 确实挺怪异的。然后就改了 login.html controller 能正常访问了。又搜索了才仔细看看这块的升级内容。

xiaobo9 avatar Apr 24 '22 15:04 xiaobo9

@xiaobo9 谢谢,思路基本相通了,我这边使用的方式是实现WebMvcConfigurer,然后

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.setUseSuffixPatternMatch(true);
    }

这是我的提交记录 https://github.com/dph5199278/wit/commit/f95d06f281018cd80554a8c3a1ce8126883c5753

这些只是临时方案,因为这些都是被废弃的配置,如果要为spring boot3做准备的话,需要重头构造,工作量较大。

dph5199278 avatar May 04 '22 06:05 dph5199278