问题标签 [spring5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 带有休眠 3 的 Spring 5
我有点困惑我应该使用什么休眠版本。
我们有一个当前使用 Spring 3 和 Hibernate 3 的应用程序。我们必须将其迁移到 Spring 5.2.6,但我不确定我们是否可以保持 hibernate 版本相同或者我们是否应该升级。我知道 Spring 中发生了很多变化,可能与当前的休眠版本不兼容。
你能建议我吗?
java - Spring Boot 应用程序不提供 Web 内容
我最初为内部 Tomcat 服务器(工作)构建了 Spring Boot Web 应用程序。然后我采用该应用程序在 Web Logic 服务器上运行。我的应用程序编译并部署到服务器没有问题,但是当它不提供 MVC 页面时。每次调用都会引发 404 错误。从下面的错误看来,spring dispatcher servlet 似乎存在,但即使是语言环境也没有正确设置。我无法弄清楚这里有什么问题或缺失,但是当我创建 RestController 而不是 MVC 时,它可以工作并且内容会显示出来。应用基于 Sprint Boot 2.3.2
<16 Aug 2020, 14:12:32,792 British Summer Time> <Notice> <Stdout> <BEA-000000> <14:12:32.792 [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] WARN org.springframework.web.servlet.PageNotFound - No mapping for GET /alf/home> <16 Aug 2020, 14:12:34,922 British Summer Time> <Notice> <Stdout> <BEA-000000> <14:12:34.922 [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [messages] - neither plain properties nor XML> <16 Aug 2020, 14:12:34,922 British Summer Time> <Notice> <Stdout> <BEA-000000> <14:12:34.922 [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [messages_en_IE] - neither plain properties nor XML> <16 Aug 2020, 14:12:34,922 British Summer Time> <Notice> <Stdout> <BEA-000000> <14:12:34.922 [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [messages_en] - neither plain properties nor XML> <16 Aug 2020, 14:12:34,923 British Summer Time> <Notice> <Stdout> <BEA-000000> <14:12:34.923 [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [messages_en_US] - neither plain properties nor XML> <16 Aug 2020, 14:12:34,969 British Summer Time> <Error> <HTTP> <BEA-101107> <[ServletContext@2002815395[app:alf_war_exploded module:alf-2.0.1 path:null spec-version:4.0]] Problem occurred while serving the error page. javax.servlet.jsp.JspTagException: No message found under code 'page.error.title.text' for locale 'en_US'. at org.springframework.web.servlet.tags.MessageTag.doEndTag(MessageTag.java:294) at jsp_servlet._web_45_inf._pages._error.__page_45_404._jsp__tag0(__page_45_404.java:199) at jsp_servlet._web_45_inf._pages._error.__page_45_404._jspService(page-404.jsp:9) at weblogic.servlet.jsp.JspBase.service(JspBase.java:35) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:295) Truncated. see log file for complete stacktrace> <16 Aug 2020, 14:12:34,972 British Summer Time> <Notice> <Stdout> <BEA-000000> <14:12:34.972 [[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 404 NOT_FOUND> <16 Aug 2020, 14:12:34,974 British Summer Time> <Notice> <Stdout> <BEA-000000> <[[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'] [2020-08-16T14:12:34,973] [10.2.16.95-agr5311] INFO AutoLoginFilter::doFilter - END 2020-08-16 14:12:34:972,agr5311,10.2.16.95,2204,2193,11,/alf/home>
应用类:
应用配置类:
最后是 WebMvcConfig 类:
spring5 - org.springframework.security.authentication.InternalAuthenticationServiceException:同时使用 oracle db 对用户进行身份验证
亲爱的,
我正在尝试使用 oracle db 对用户进行身份验证。
这是我的安全上下文弹簧配置文件:
用户:
用户角色:
我相信错误即将到来,因为它无法将 char (启用的列)转换为布尔值。我已经检查过,但找不到任何解决方案。即使我将“true”硬编码为启用的值,但它仍然无法正常工作。
完整的错误信息:
在此先感谢您的帮助。
java - Spring 5 中的组件索引与类路径扫描
我试图升级自己以学习 Spring5,并且我读到它支持组件索引作为类路径扫描的替代方案。我知道实现组件索引的主要好处是减少大型 Spring 项目的启动时间。
有人可以在这里解释更多关于什么是组件索引以及它比经典的类路径扫描有什么优势吗?
spring - 如何从 Junit5 中的配置中获取 DataSource bean
亲爱的,
我已经创建了一个 junit5 测试用例(UserDaoTests.java),但我无法获得在 spring 配置文件(data.xml)中定义的 DataSource Bean。
项目结构:
测试用例定义在 test/com/caveofprogramming/spring/test/tests 包中,UserDaoTests.java 类。
junit 的data.xml
配置文件。我已经在其中定义了数据源 bean。
jdbc.properties:
Junit 测试(UserDaoTests.java)
日志:
我还想澄清一下,我使用的是静态数据源,因为我需要使用 @BeforeAll,它只需要静态字段。
我也测试了非静态数据源,但结果仍然相同。
- 更新 - -
我<beans profile="dev">
从 data.xml 配置文件中删除了标签,它工作正常。但我不明白为什么它不适用于个人资料。
--- 更新 2(更新 Bhushan 的回答)-----
UserDaoTests - 更新代码
错误堆栈跟踪:
hibernate - 在带有 spring/hibernate 的 Websphere 上使用 jpa2.2
我最近继承了一个 Spring/Hibernate 应用程序,并将其升级为Spring 5.2.8
, SpringSecurity 5.3.4
, Hibernate 5.4.21
.
我们正在部署Websphere 8.5.5
(完全,而不是自由)。
当我尝试运行该应用程序时,我得到一个异常,我认为相关部分是:
...嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/applicationContext-hibernate.xml] 中定义名称为“auditSessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 java.lang.NoSuchMethodError: javax/persistence/JoinColumn.foreignKey()Ljavax/persistence/ForeignKey; (从文件:/C:/Program Files (x86)/IBM/WebSphere/AppServer/plugins/javax.j2ee.persistence.jar 由 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@2472a612 加载)从类 org 调用。 hibernate.cfg.AnnotationBinder(从文件加载:/C:/Program%20Files%20(x86)/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/Node01Cell/nameof_war.ear/nameof.war/WEB-INF/lib /hibernate-core-5.4.21.Final.jar 来自 com.ibm.ws.classloader.CompoundClassLoader@71ed602b[war:nameof_war/nameof.
我注意到它使用的是 JPA 的 Websphere 版本,而不是我在战争中包含在 jar 中的那个。Websphere 附带javax.j2ee.persistence.jar
- JPA 版本2.0
,它解释了错误。
对另一个 SO 问题的回答让我来到这里:https ://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/tejb_jpa3rdparty.html
此链接试图解释如何使用第三方持久性提供程序。
问题是,链接说要使用persistence.xml
;但我继承的应用程序没有那个 xml 文件。它只有applicationContext-hibernate.xml
和 orm.xml。
我试过创建一个persistence.xml
:
出现在 WAR 文件中的正确位置;但我不知道这是否正确 - 也不知道我是否还必须更新任何其他文件?我是否需要在其他地方引用该持久性单元?
我还将 WebSphere 中的类加载器更新为最后一个父类;但我仍然收到如上所示的错误。
我错过了哪些步骤?我需要在applicationContext-hibernate.xml
(或其他地方)做些什么改变才能让它发挥作用?
我的 applicationContext-hibernate.xml
样子:
java - 如何使用 RestTemplate 使用 AbstractMessageConverter
1.总结问题
我正在尝试使用 RestTemplate 将逗号分隔值(CSV 格式的数据,而不是 csv 文件)读入 responseEntity(ResponseEntity<List<Map<String, Object>>> responseEntity)。
但是,我在下面收到错误。
org.springframework.web.client.RestClientException:提取类型 [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] 和内容类型 [text/csv] 的响应时出错;charset=utf-8]; 嵌套异常是 org.springframework.http.converter.HttpMessageNotReadableException:JSON 解析错误:无法反序列化java.util.ArrayList
超出 VALUE_STRING 令牌的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化java.util.ArrayList
[Source: (PushbackInputStream); 行:1,列:1]
2.描述你尝试了什么
: 我试过一些Messageconverters。
从这里 https://www.logicbig.com/tutorials/spring-framework/spring-web-mvc/csv-msg-converter.html 我在那里得到了一些有用的信息并使用了一些。但我一直收到同样的错误。
3.适当的时候,显示一些代码
我从这里收到该错误消息。
responseEntity = restTemplate.exchange(apiUrl, httpMethod, requestEntity, new ParameterizedTypeReference<List<Map<String, Object>>>() { });
spring-webflux - 使用 bodyToFlux 方法的 webClient 响应合并所有接收到的响应而不是将其分离出来
我正在使用 ParallelFlux 来运行许多任务。
但是当我使用 bodyToFlux 方法接收 webClient 响应时,它会合并所有输出响应,而不是一一获取。
我希望输出应该是一个一个而不是单个字符串,是否有任何其他方法而不是 bodyToFLux 需要使用。
请求方法:
响应方法:
输出:
spring-boot - 使用 Spring WebClient 返回完整的响应
我有以下代码
但是当我尝试通过 RestController 返回这个 ClientResponse 时,如下所示,
我收到以下错误:
org.springframework.http.converter.HttpMessageNotWritableException:没有找到类型的返回值的转换器:类 org.springframework.web.reactive.function.client.DefaultClientResponse
基本上,我想要的最终目标是将实际响应返回给调用者——包括标题、正文、cookie等。
我正在考虑使用 ResponseEntity 如下。
但这又是矫枉过正。有没有办法直接使用 WebClient 返回响应而不是重组响应?
spring - 尝试将 Spring 版本从 5.1 升级到 5.2 时出错
尝试将 spring 从 5.1 升级到 5.2 时遇到此问题
@Configuration 公共类 WebMvcConfiguration 扩展 WebMvcConfigurationSupport {
}
此问题是 setUseSuffixPatternMatch() 方法已从 5.2 版本中弃用,但可以通过将参数设置为 false 来使用。我给出了“假”作为论据,但得到了这个错误。
这种方法有没有替代方法。
而且我还尝试删除 setUseSuffixPatternMatch() 方法,但出现此错误
[18,66] 类 org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport 中的方法 requestMappingHandlerMapping 不能应用于给定类型;[错误] 必需:org.springframework.web.accept.ContentNegotiationManager,org.springframework.format.support.FormattingConversionService,org.springframework.web.servlet.resource.ResourceUrlProvider
当我尝试将 spring 5.1 升级到 5.2 时,我不明白为什么 requestMappingHandlerMapping 不起作用