问题标签 [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 投票
0 回答
315 浏览

spring - Spring MVC:(如果可能)提交事件上的搜索表单生成 URI 而不是 URL 模式格式

我有一个@Controller带有以下@RequestMapping注释的

观察它使用@PathVariable,基于 URI,它可以在 周围工作/persons/{id},例如:

  • /人/100
  • /人/200

它检索一个预期的人。

@RequestMapping方法在以下情况下可以正常工作:

  • 我将 URL/URI 放在同一个 Web 浏览器地址栏中 (.../persons/200)
  • 当我生成项目报告时,包括每个项目的链接以查看详细信息(.../persons/200)。

我正在尝试创建一个搜索表单,如下所示:

我的问题是,当我按下提交时,表单总是生成/创建 URL 以进行格式搜索/persons?id=100。我知道这是正常的,也是意料之中的。

但只是好奇,当然如果可能的话:

问题:

生成 URI 模式的新配置是什么,/persons/100而不是/persons?id=100当我按下提交按钮时?

我想避免创建一个使用(it for )的新@RequestMapping方法。它补充了使用(it for ) 版本的方法。@RequestParam?id=100@RequesMapping@PathVariable/100

谢谢

0 投票
2 回答
687 浏览

spring - 我应该在哪一层检查(某物)是否存在?

假设我有用户实体。我想检查数据库中是否存在用户 ID。我知道如何检查,但在哪一层?什么是最好的和更容易理解的层?

在我看来,应该是Controller层。但我不认为它会一帆风顺。我从未见过在示例项目中签入用户控制器类的额外方法。也许我错过了一些东西,你怎么看?

0 投票
3 回答
29675 浏览

java - 服务器无法识别 HTTP 标头“SOAPAction”的值

当我向服务器发送 SOAP 请求时,它会返回以下错误,尽管我使用 SoapUI 发送了类似的请求并且可以正常工作。看来我需要将我的 SOAP 请求更改为使用 SoapUI 发送的请求。WSDL这里

我正在使用 Java发送以下请求

我可以使用 SoapUI发送以下请求并且它可以工作

我不确定如何使我使用 Java 创建的请求与使用 SoapUI 发送的请求相同。

代码

搜索航班

肥皂消息

要求

包信息.java

jaxb.in​​dex

发送请求的代码

更新

我删除package-info.java并设法使用了建议的代码,但它仍然发送相同的标头。

在此处输入图像描述

0 投票
0 回答
446 浏览

spring - Spring获取当前请求正文的HttpMessageConverter

我知道如何获取所有已注册的消息转换器,但是有没有办法获取HttpMessageConverter当前请求的请求正文,无论是在HandlerMethodArgumentResolverRequestBodyAdviceAdapter还是在控制器本身中?

RequestBodyAdviceAdapter您可以获取转换器的类型,但不能获取实例本身。

0 投票
1 回答
937 浏览

spring-mvc - 弹簧靴不工作

我是弹簧靴的新手。

我有一个样本。

pom.xml

java类:

包 bootSample;

当我运行它时,会引发以下异常


属性文件:

0 投票
2 回答
1901 浏览

java - 如何重命名 Spring MVC Web App 上下文根?

我正在尝试重命名我的 Spring MVC Web 应用程序。当我运行它时,URL 中有一个旧名称: http://localhost:8080/oldName/

在项目属性>资源中,我设置了路径:/newName,还在 Web 项目设置中,上下文根:newName

但是没用,我还有http://localhost:8080/oldName/ 怎么重命名呢?

0 投票
1 回答
299 浏览

spring - Spring RestController 端点自动发现

有没有办法获取在带@RestController注释的类中声明的所有端点的列表?有一些耐心可以通过反射来实现,但是有没有 Spring 内置的方法呢?想法是在服务登录页面上显示此列表。

0 投票
0 回答
794 浏览

spring - 将 Spring 组件注入 Jersey 2.22.1 时出现 UnsatisfiedDependencyException

使用的技术:Spring Boot 4.2.4-RELEASE Jersey 2.x(spring boot starter version)部署在Weblogic 12.1.3上

我在尝试注入 Spring 托管资源时遇到 org.glassfish.hk2.api.UnsatisfiedDependencyException:Injectee 错误时没有可用于注入的对象。

pom.xml

weblogic.xml

这是我的 SpringBootApplication 类

泽西岛的配置类

Spring的配置类

最后是发生错误的类

我一直在将这个项目部署到 tomcat 上,但我们的工作环境需要使用 weblogic。该项目适用于tomcat,但在weblogic上我什至没有在部署时显示spring横幅。我检查了所有我能找到的日志,没有发现其他错误情况。我确实拥有的堆栈跟踪是:

原因:org.glassfish.hk2.api.UnsatisfiedDependencyException:Injectee 处没有可用于注入的对象(r​​equiredType=LocatesRequestService,parent=LocatesRestEndPoint,qualifiers={}),position=-1,optional=false,self=false, unqualified=null,1669020655) at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:74) at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:231) at org.jvnet.hk2 .internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:254) 在 org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:413) 在 org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:456 ) 在 org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2488) 在 org.jvnet.hk2 的 org.glassfish.jersey.process.internal.RequestScope.findOrCreate(RequestScope.java:158)。internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:629) at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:614) at org.glassfish.jersey.internal.inject.Injections.getOrCreate(Injections.java: 173) 在 org.glassfish.jersey.server.model.MethodHandler$ClassBasedMethodHandler.getInstance(MethodHandler.java:185) 在 org.glassfish.jersey.server.internal.routing.PushMethodHandlerRouter.apply(PushMethodHandlerRouter.java:103) 在 org .glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:128) 在 org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:131) 在 org.glassfish.jersey .server.internal.routing.RoutingStage._apply(RoutingStage.java:131) 在 org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:131) 在 org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:131) 在 org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:110) 在 org .glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:65) 在 org.glassfish.jersey.process.internal.Stages.process(Stages.java:197) 在 org.glassfish.jersey.server .ServerRuntime$1.run(ServerRuntime.java:250) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java: 267) 在 org.glassfish.jersey.internal.Errors.process(Errors.java:297) 在 org.glassfish.jersey.internal.Errors org.glassfish.jersey.process.internal.RequestScope 中的 .process(Errors.java:267)。runInScope(RequestScope.java:318) 在 org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:236) 在 org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1010) 在 org.glassfish .jersey.servlet.WebComponent.service(WebComponent.java:373) 在 org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382) 在 org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java :345) 在 org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220) 在 weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) 在 weblogic.servlet.internal.StubSecurityHelper$ ServletServiceAction.run(StubSecurityHelper.java:254) 在 weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) 在 weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346) 在 weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:243) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext .java:3432) 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.security.service。 SecurityManager.runAs(SecurityManager.java:120) 在 weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) 在 weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285) 在 weblogic.servlet.internal .WebAppServletContext.securedExecute(WebAppServletContext.java:2201) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572) 在 weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl .java:255) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:263)运行(ExecuteThread.java:263)运行(ExecuteThread.java:263)

0 投票
1 回答
54 浏览

spring-boot - 组合的 Spring Boot 集成和 Web 应用程序将无法启动

我创建了两个 Spring Boot 应用程序。一种使用 Spring Integration 从多个提要中读取内容,另一种则将提要中检索到的数据组合到一个简单的网页上。

目前这两个作为单独的应用程序存在,但我想将两者结合在一个应用程序中。集成“应用程序”只不过是一个 integration.xml,另一个是几个 RestController。

在我的 Application 类中,集成应用程序在 main 方法中具有以下内容:

该网络应用程序有

我试图将两者结合起来,结果是:

但这只会启动 Web 应用程序。提要未初始化。如何确保两个组件都启动并继续运行?

0 投票
4 回答
2847 浏览

spring - Spring Boot 使用自动配置创建多个(正常运行的)webmvc 应用程序

更新

我的问题是如何在 spring boot 中初始化一个隔离的 spring webmvc web-app。隔离的 Web 应用程序应该:

  1. 不应在应用程序类中初始化自身。我们想通过自动配置在 starter pom 中执行这些操作。我们有多个这样的网络应用程序,我们需要自动配置的灵活性。
  2. 能够使用以下接口自定义自身:( WebSecurityConfigurer我们有多个 Web 应用程序,每个应用程序都以自己的方式实现安全性)和EmbeddedServletContainerCustomizer(设置 servlet 的上下文路径)。
  3. 我们需要隔离特定于某些 web 应用程序的 bean,并且不希望它们进入父上下文。

进步

下面的配置类在我的 META-INF/spring.factories 中列出。

以下策略不会导致正常运行的 web-mvc servlet。未设置上下文路径,也未自定义安全性。我的预感是我需要包含某些 webmvc bean,它们处理上下文并根据存在的 bean 自动配置——类似于我通过包含PropertySourcesPlaceholderConfigurer.class.