问题标签 [spring-web]

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.

0 投票
2 回答
726 浏览

spring - 高级Restclient socket实现无法连接Spring Websocket

我使用 Spring Stomp 和 socketjs 开发了一个聊天应用程序。我已通过客户端成功连接到 websocket,但无法使用 Advanced Restclient -> socket implementation 连接到 websocket。

为什么?

谢谢

0 投票
1 回答
1363 浏览

java - Spring RestTemplate + 将 XML 结果映射到域对象

使用 Spring RestTemplate,如何将以下 XML 结果映射到某个域对象?作为一种解决方案,我设计了以下域类,但我想知道如何将这些包含值(例如:100、200、300)映射到域对象属性。谢谢。

XML 结果

领域类

0 投票
1 回答
210 浏览

spring - Arquillian、Spring WebApplicationInitializer、嵌入式 Tomcat

我想为我的 Web 应用程序的 REST 资源编写一个单元(组件)测试。此测试应针对暴露的 REST 接口,并通过发出请求和检查响应来测试其行为。

Web 应用程序的配置不使用 Springweb.xml的. 当我只是在我的(Tomcat)服务器上运行应用程序时,这很好用。applicationContext.xmlWebApplicationInitializer

在开始我的 Arquillian 测试时,ShrinkWrap 存档部署在嵌入式 Tomcat 服务器上。当嵌入式服务器使用我的 Web 应用程序的类路径运行时,它也会找到我的WebApplicationInitializer类。这是有问题的,因为它加载了许多依赖项,并且应该为测试而激活。

如何WebApplicationInitializer在测试中停用我的(并提供替代实现)?

当使用 XML 配置文件时,这对应于隐藏真实的配置文件并使用测试中使用的特定(空?)配置。

0 投票
2 回答
17715 浏览

spring - 带有 Spring-Boot / 安全性的 Null @AuthenticationPrincipal

我根据参考文档设置了我的 Spring Security 应用程序,经过数小时的故障排除后,我继续将一个 null @AuthenticationPrincipal传递到我的控制器中。

身份验证机制对我的数据库中的用户运行良好,但仍然是空的@AuthenticationPrincipal。我查阅了包括thisthis在内的几篇互联网帖子,但我仍然为空。

我正在使用 Spring-Boot 1.2.2 和 Spring Security 3.2.6。

相关POM:

应用:

WebSecurityConfigurerAdapter:

用户详情服务:

控制器:

相关的 Maven 依赖树:

0 投票
2 回答
797 浏览

spring - Spring 仅返回查询字符串中的第一个参数

Spring 仅返回查询字符串中的第一个参数,缺少后续参数。

使用 curl 调用以下 URL 时:

只有title参数有非空值,request.getQueryString()只包含“title=JSON”

调用这个时:

仅包含“ request.getQueryString()page=0”

控制器代码:

这可能是什么原因?我希望以下所有参数在 request.getQueryString() 和单个 @RequestParam 变量中都有一个值:

编辑春季版本:3.2.2

0 投票
3 回答
1538 浏览

java - RestTemplate 无法填充对象

我有以下代码来发送请求和接收响应,似乎一切都已配置,但代码正在返回NullPointerException

我不确定缺少什么。我打印出具有正确 URL 地址的 readyURL 变量。stackTrace 提供的不多。

代码

例外

样本结果

更新

我在 restTemplate.getForObject 行之后添加了这段代码,但控制台上不会显示任何内容。

0 投票
0 回答
542 浏览

java - 高负载期间的 ConcurrentModificationException - Spring Web REST

在 rest 服务上运行负载测试时,每个请求都有随机的 xml 内容,偶尔会发生以下异常。似乎负载越高,它发生的可能性就越大。

Spring 中将 xml 解组为 java 对象的当前实现似乎不是线程安全的?

13:23:38,314 错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/fault-code-translation].[SpringApplication]] (http-/0.0.0.0: 14080-36) JBWEB000236:Servlet SpringApplication 的 Servlet.service() 抛出异常:java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) [rt.jar:1.8.0_31] 在 java.util.ConcurrentModificationException .util.ArrayList$Itr.next(ArrayList.java:851) [rt.jar:1.8.0_31] at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister$1.next(Lister.java: 288)在 com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:139) 在 com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java: 159) 在 com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:358) 在 com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:593) 在 com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:340) 在 com.sun.xml。 bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494) 在 com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:323) 在 com.sun.xml.bind.v2。 runtime.MarshallerImpl.marshal(MarshallerImpl.java:251) 在 org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter.writeToResult(Jaxb2RootElementHttpMessageConverter.java:181) [spring-web-4.1.7.RELEASE.jar:4.1.7.发布] 在 org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter.writeInternal(AbstractXmlHttpMessageConverter.java:66) [spring-web-4.1.7.RELEASE.jar:4.1.7.RELEASE] 在 org.springframework.http.converter .AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:208) [spring-web-4.1.7.RELEASE.jar:4.1.7.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor. java:161) [spring-webmvc-4.1.7.RELEASE.jar:4.1.7.RELEASE] 在 org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101) [spring -webmvc-4.1.7.RELEASE.jar:4.1.7.RELEASE]161) [spring-webmvc-4.1.7.RELEASE.jar:4.1.7.RELEASE] 在 org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101) [spring-webmvc -4.1.7.RELEASE.jar:4.1.7.RELEASE]161) [spring-webmvc-4.1.7.RELEASE.jar:4.1.7.RELEASE] 在 org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101) [spring-webmvc -4.1.7.RELEASE.jar:4.1.7.RELEASE]

执行

异常发生在实现代码执行之前,它发生在spring代码内部。

0 投票
1 回答
2222 浏览

spring-security - 为什么 REST 控制器正确使用配置的 servlet 路径,但在 Spring Security 功能中被忽略?

我是 Spring 新手,我尝试使用 Spring Boot 和 Spring Security 创建一个安全的休息应用程序。我现在正在寻找几周的解决方案......

我在我的 pom.xml 中使用 Spring Boots 嵌入式 Web 容器(Tomcat)和 spring-boot-starter-parent 1.2.6.RELEASE。

我的端点:

  • /login(验证)
  • /application/{id}(我想确保的一些服务)

我在 application.properties 中配置了我的 servlet 路径,如下所示:

所以我期待我的服务,例如//localhost/embedded/login

好的,现在问题是:如果我在没有安全性的情况下运行应用程序一切都很好,我可以调用 http//localhost/embedded/application 并获得答案。如果我现在像这样添加我的安全配置:

当运行应用程序时 //localhost/application/{id} 是安全的,而不是我所期望的 //localhost/embedded/application/{id} 。由于某种原因,此处忽略了 servlet 路径。我坚持“好的,所以我只需手动添加 servlet 路径”并使其看起来像这样:

这适用于我的应用程序。但是,我也使用 MockMvc 来测试我的服务,并且由于某种原因,servlet 路径已正确添加到匹配器中。因此,如果我开始测试,安全过滤器被映射到//localhost/embedded/embedded/application/{id},而控制器本身仍然被映射到//localhost/embedded/application/{id}这非常烦人......我在这里查看了http://spring.io/blog/2013/07/03/spring -security-java-config-preview-web-security/并认为我可以通过使用AbstractSecurityWebApplicationInitializer而不是解决问题,SpringBootServletInitializer但它没有任何改变。顺便说一句,这是我的应用程序类:

我认为它application.properties不包含任何更有趣的信息。要完成这是我的 MockMvc 测试类:

也许我误解了什么。我希望你能告诉我。

0 投票
1 回答
131 浏览

java - 如何将 ServletContextListener 添加到现有的@Service?

我有一个想要添加ServletContextListener接口的现有类:

这运行良好。但是一旦我添加public class MyService implements ServletContextListener,我就会收到以下错误MyController

org.springframework.beans.factory.BeanCreationException: Could not autowire field: private service. No qualifying bean of type [MyService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}.

该应用程序在Tomcat. 我的目标是@Override public void contextDestroyed()在tomcat关闭时清理这个特定服务中的一些资源。

这里有什么问题?

0 投票
4 回答
7106 浏览

java - 使用错误消息下载或重定向到 Spring Web MVC 中的另一个控制器操作

想法:我有一个 Spring Web MVC 动作,应该完成以下一项或两项任务:

  • 从远程服务器下载文件并将输入流写入响应输出流
  • 或者捕获下载异常,设置多个错误消息之一并重定向到 /addresses 页面。地址页面会显示错误

问题:Spring 无法下载文件并在出现问题时重定向 - 不知何故 flash 属性不起作用,因为在重定向中迷路了:

/地址的JSP页面:

问题:如何在 /addresses 站点中显示错误消息(例如简单字符串)?使用不同的 URL 参数 (error=errora, error=errorb ...) 是一个巨大的痛苦,如果有多种错误类型并将错误消息作为 GET 参数传递看起来不专业并且是编码问题的根源。