SpringBeanAutowiringSupport 与 WebApplicationContextUtils

标签 spring jax-ws autowired

这是在网络应用程序的上下文中。我的 Impl 类有 JAX-WS 注释,而 @Autowired 注释不起作用。 我在检索 Autowired 对象时遇到空指针异常。

找到解决方案,两者都有效:

  1. 扩展 SpringBeanAutowiringSupport 并保持 @Autowired 注释完整。
  2. 使用WebApplicationContextUtils 获取加载bean 的WebapplicationContext。此上下文中的 getBean() 为我提供了所需的 bean。

现在,SpringBeanAutowiringSupport 类的文档在 NOTE 中说 "如果有访问 ServletContext 的显式方法,则首选这种方式而不是使用此类。WebApplicationContextUtils 类允许轻松访问基于 ServletContext 的 Spring 根 Web 应用程序上下文。"

这是什么意思?在我的 Web 应用程序中,我没有使用任何 servlet。我的 Web 应用程序也不是唯一的 JAX-WS 应用程序。它是一个带有 SOAP/REST webservicesEJB 的 web 应用程序。

首选哪种方法,为什么?请帮忙。

最佳答案

在 spring 文档中提到扩展 SpringBeanAutoWiringSupport 作为首选方式。这种方法不是更好吗,因为您不必从 webcontext 显式访问 bean?

http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/remoting.html#remoting-web-services

关于SpringBeanAutowiringSupport 与 WebApplicationContextUtils,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30863056/

相关文章:

java - 当 WSDL 太大时,JAX-WS 客户端挂起 30 秒

web-services - 无法在 jBOSS 5.1 中部署示例 Web 服务

java - 如何从 jar 文件 @autowire 实现类?

java - Autowiring 接口(interface)错误

java - 使用 sun.net.**.HttpsClient 以编程方式暂时禁用 JAX-RS 客户端中的 SNI 检查

java - NoSuchBeanDefinitionException : No qualifying bean of type found

spring - j_spring_security_check 不可用。请帮助Spring3登录

Spring Security Unit Test - MockMvc 使用自定义用户执行测试

java - 无法让tomcat定义数据源

Spring + Tomcat 基于Request URL的 Multi-Tenancy