Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package sk.stefan.remserver.serviceImpl; import javax.annotation.Resource; import javax.jws.WebService; import javax.servlet.ServletContext; import javax.xml.ws.WebServiceContext; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import sk.stefan.projekt.activemq.Consumer; import sk.stefan.projekt.cxf.MsgDeliverer; import sk.stefan.projekt.cxf.MsgWrapper; /** * * @author stefan */ @WebService public class MsgDelivererImpl implements MsgDeliverer { // @Autowired - does not work private Consumer consumer; @Resource private WebServiceContext context; /** * * @param wrap * @return */ @Override public String deliverMessage(MsgWrapper wrap) { //instead of autowired, that doesnt work.: this.wireBeans(); consumer.setQueueName(wrap.getQueue()); consumer.run(); String msg = consumer.getMsg(); return msg; } /** * Instead of @Autowired/ extends SpringBeanAutowiringSupport which doesn't work. */ private void wireBeans() { ServletContext servletContext; servletContext = (ServletContext) context.getMessageContext().get("javax.xml.ws.servlet.context"); WebApplicationContext webApplicationContext = WebApplicationContextUtils .getRequiredWebApplicationContext(servletContext); consumer = (Consumer) webApplicationContext.getAutowireCapableBeanFactory().getBean("consumer"); } // *********************** // GETTERS AND SETTERS: // *********************** public Consumer getConsumer() { return consumer; } public void setConsumer(Consumer consumer) { this.consumer = consumer; } public WebServiceContext getContext() { return context; } public void setContext(WebServiceContext context) { this.context = context; } }