- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
虽然在我的@Webservice 类中我扩展了 SpringBeanAutowiringSupport, Autowiring 根本不适用于 Spring 2.5,tomcat6.
没有注入(inject)任何东西。
我在 main 方法中测试了那些 beans Autowiring ,使用 classpathcontext,一切都被注入(inject)了。但不适用于 jax-ws 端点。
你有什么想法吗?
最佳答案
我找到了解决方案。问题是 Spring 不会为 @WebService
类 Autowiring bean(在其他论坛上发现它可能是当前的错误)。
解决方案:
使用 org.springframework.beans.factory.config.AutowireCapableBeanFactory.class
而不是使用 @Autowired
注释来注入(inject)你的 beans(例如 @Service
, @Repository
等)。
所以:
包含@Resource
WebServiceContext
@Resource
private WebServiceContext context;
用它来获取你的bean
MyDAO myDAO = null;
ServletContext servletContext = (ServletContext) context
.getMessageContext().get("javax.xml.ws.servlet.context");
WebApplicationContext webApplicationContext = WebApplicationContextUtils
.getRequiredWebApplicationContext(servletContext);
myDAO = (MyDAO) webApplicationContext
.getAutowireCapableBeanFactory().getBean("myDAO");
MyDAO
类可以如下:
@Service
@Qualifier("myDAO")
@Transactional
public class MyDAO {
private HibernateTemplate hibernateTemplate;
@Required
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
public MyInfo getMyInfo(Long id){
return this.hibernateTemplate.get(MyInfo.class, id);
}
//...
}
在此之后,您可以在 @WebMethod
方法中使用 myDAO
对象。
关于java - Jax-ws、spring 和 SpringBeanAutowiringSupport,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2943082/
这是在网络应用程序的上下文中。我的 Impl 类有 JAX-WS 注释,而 @Autowired 注释不起作用。我在检索 Autowired 对象时遇到空指针异常。 找到解决方案,两者都有效: 扩展
我对上述类有一些集成问题,但仅限于“太新”的 tomcat 版本。 基础设置: web.xml FooService jax-ws com.sun
虽然在我的@Webservice 类中我扩展了 SpringBeanAutowiringSupport, Autowiring 根本不适用于 Spring 2.5,tomcat6. 没有注入(inje
我编写了一个包含 Autowiring 服务的自定义 JsonDeserializer,如下所示: public class PersonDeserializer extends JsonDeseri
我正在尝试在我的 web 服务中启用 Spring Autowiring 支持,遵循 public class MyService extends SpringBeanAutowiringSuppor
我通过扩展 SpringBeanAutowiringSupport 暴露的 Web 服务未能注入(inject) @Autowired 依赖项。 Web 服务部署良好,我可以调用 @WebMethod
我是一名优秀的程序员,十分优秀!