我使用Spring Boot WS-Server发布了endpoint
当我使用SoapUI时,我看到:
HTTP/1.1200接受:text/xml、text/html、image/gif、image/jpeg、*;q=.2,/;q=.2 SOAPAction:“内容类型:text/xml;字符集= UTF-8内容长度:828日期:星期四,2021年4月29日14:04:54 GMT保持生存:超时=60连接:保持生存
我想设置自定义HTTP状态作为响应(我知道这可能违反标准,但这是一个外部要求)。我还读了以下主题:
带void的Spring WS(DefaultWsdl11Definition)HTTP状态代码
但这个解决方案失败了
Spring Boot版本:2.2.7
问题解决了
正如我所说,我想在SOAP响应中设置自定义HTTP状态。
我发现了这篇帖子:Spring WS(DefaultWsdl11Definition)HTTP状态代码带有void
作者使用EndpointInterceptor和TransportContext来获取HttpServletResponse,然后更改了状态。我和他的案例之间的区别在于,他从WebService方法返回void,而我想返回一些响应。
在我的情况下,以下代码在Spring WebServiceMessageReceiverObjectSupport类(方法handleConnection)中覆盖以前在拦截器中设置的servlet状态:
if (response instanceof FaultAwareWebServiceMessage && connection instanceof FaultAwareWebServiceConnection) {
FaultAwareWebServiceMessage faultResponse = (FaultAwareWebServiceMessage)response;
FaultAwareWebServiceConnection faultConnection = (FaultAwareWebServiceConnection)connection;
faultConnection.setFaultCode(faultResponse.getFaultCode());
}
为了绕过这段代码,我需要用自己的handleConnection方法实现来定义类,该方法扩展了类WebServiceMessageReceiveHandlerAdapter
在我的实现中,我排除了身份变更。重要的是在这个类的autowired构造函数中传递WebMessageFactory bean,否则在应用程序启动时会引发异常。
该类必须用Spring原型(例如@Component)标记,并且在配置ServletRegistrationBean时,必须在配置类中配置该bean的名称:
@Bean
public ServletRegistrationBean<MessageDispatcherServlet> messageDispatcherServlet(ApplicationContext applicationContext){
MessageDispatcherServlet servlet = new MessageDispatcherServlet();
servlet.setApplicationContext(applicationContext);
servlet.setTransformWsdlLocations(true);
servlet.setMessageFactoryBeanName("webServiceMessageFactory");
servlet.setMessageReceiverHandlerAdapterBeanName("myOwnMessageReceiverHandlerAdapter");
return new ServletRegistrationBean<>(servlet,"/ws/*");
}
我考虑在项目中使用fluent-http。 所以我尝试注入: 返回正确的字符串,但似乎没有使用状态代码。在这两种情况下,响应都有一个代码HTTP200。 注意:我发现一些状态代码是预先实现的: null
自定义的状态栏覆盖在系统状态栏上,能够在自定义的状态栏中显示文字信息,可以隐藏自定义的状态栏,显示系统状态栏。 作者@贺坤Smaile 说:之前逛街看到移动做推广,有一个定位应用挺好的,合理的利用了状态栏,做了一些消息提醒和隐藏动画,自己回家就做了一个这样的demo,效果很不错,一个多月之前写的,看到有人求,分享出来。 [Code4App.com]
在Spring Boot控制器中,我使用检查用户是否登录(使用基本auth+)。 但是如果用户没有登录,即他们没有经过身份验证,控制器返回。 根据我对身份验证与授权的了解,用于身份验证,而用于授权。 根据我的理解,总是检查用户的授权(顾名思义),但是有什么方法可以根据我们传递给它的参数自定义它,即? 我知道还有另一种解决方案:在中使用基于URL的安全配置,但如果我不想这样做,该怎么办。 有什么想法
我正在处理WebAPI 2中的一个服务,endpoint当前返回一个<code>IHttpActionResult<code>。我想返回一个状态代码,但由于它不在枚举中,我不知道如何发送它,因为所有构造函数都需要一个参数 目前,我正在返回<code>BadResult(消息),但返回<code>422
我试图在我的spring boot应用程序中实现一些自定义异常处理程序,它将能够处理自定义异常并显示批准消息和状态代码。 请帮忙。
主要内容:Maven依赖关系,自定义HTTP头示例HTTP消息可以包含许多描述消息属性的标头,例如内容长度,内容类型,授权等。 HttpClient提供了检索,添加,删除和枚举标头的方法。 在下面的教程中,我们将演示如何将自定义HTTP头添加到HttpClient和Http请求方法。 Maven依赖关系 我们使用maven来管理依赖关系,并使用Apache HttpClient 4.5版本。 将以下依赖项添加到您的项目中。 pom.xml 文件的