我已经得出结论,Spring Web MVC与Payara 5和6不兼容,我有一个应用程序使用了Glassfish 3、Spring Web MVC和EclipseLink JPA,我打算将代码升级到Java 17和Jakarta EE,看在好心的份上,进展并不顺利,在我所有的努力中,是Spring的WebMVC导致了这些问题。Spring收取支持费用,这对我来说不是一个可行的选择。在我放弃它的使用之前,让我们来听听你的意见。
如果有人用Payara 5和/或6成功实现了Spring Web MVC,请分享你是如何实现的。
我的第一步是尝试Payara 6 Jakarta EE。在创建了一个非常小的Hello World Web应用程序后,我包含了Spring Web MVC jar,并做了最小的工作来激活它的Dispatcher Servlet。我从来没有能够克服CDI不可用的错误。
其次,我回到了Payara 5。在那次尝试中,它尝试示例化一个JPA EAO Bean,应用将在所有控制器中使用该Bean来访问应用的数据库。这里的错误似乎是在它尝试使用FasterXML读取persistence.xml文件时出现的。当我使用JUnit创建EAO对象时,应用的这一部分工作正常。
而不是提供所有血淋淋的细节,审查工件从一个成功实现的应用程序与帮助我巨大。
谢谢你的帮助!
2条答案
按热度按时间6yt4nkrj1#
因此,在我绞尽脑汁尝试各种方法使它工作了几个星期之后,我写信给SpringFramework的开发人员之一Juergen Hoeller,下面是他的回复.... a.
很遗憾听说Payara上还是有这么多麻烦,我们在GitHub上也有相应的报道:https://github.com/spring-projects/spring-framework/issues/29718https://github.com/spring-projects/spring-framework/issues/29743不幸的是,就我所知,这两个问题都不是Spring自己要解决的实际问题。
关于CDI问题,Payara的CDI实现不能解析Java 17的新记录类型。另外,我想知道如果你实际上没有使用CDI,为什么Payara需要解析每一个部署的类文件。也许可以关闭它,但至少,Payara应该防御性地处理“未知”类型。
关于Hibernate的问题,这是Hibernate 6在Payara上初始化其Jackson配置的问题,似乎没有可用的StAX提供程序,Hibernate坚持为Jackson提供一个。
总的来说,这需要被带到Payara和Hibernate上,我们不知道Spring还有什么可以做得更好的。请随意添加更多的评论到GitHub问题上,以防我们能做些什么!即使我们现在的重点是Tomcat/Jetty,我们当然希望Spring 6在Payara上也能工作得很好。
感谢你为我们所做的努力,
于尔根
那么现在,我们如何引起甲骨文的Glassfish开发人员和Payara开发人员的注意,以解决这个问题呢????与此同时,我想我必须安装Tomcat或其他免费的Web服务器。谢谢,甲骨文。
t3irkdon2#
以前针对Hibernate报告过这个问题,但是Glassfish/Payara只是有一个损坏的类路径配置。
也许可以尝试使用Wildfly,它也是免费的;)