Podobny do How can I access the ServletContext from within a JAX-WS web service?, czy istnieje sposób dostępu do applicationContext, łatwiejszy niż to?Jak uzyskać dostęp do ApplicationContext z usługi WWW JAX-WS?
import javax.annotation.Resource;
import javax.jws.WebService;
import javax.servlet.ServletContext;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
@WebService
public class MyWebService {
// boilerplate code begins :(
@Resource
private WebServiceContext context;
private WebApplicationContext webApplicationContext = null;
/**
* @return
* @throws IllegalStateException
*/
private WebApplicationContext getWebApplicationContext()
throws IllegalStateException {
if (webApplicationContext != null)
return webApplicationContext;
ServletContext servletContext =
(ServletContext) context.getMessageContext().get(
MessageContext.SERVLET_CONTEXT);
webApplicationContext =
WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
return webApplicationContext;
}
}
Więc, jak mogę współpracować z usługami Spring, jeśli nie mogę powiedzieć: appContext.getBean ("myBean")? – pihentagy
Wprowadzić za pomocą suwaka lub konstruktora. Uzależnienie od iniekcji oznacza "nie dzwoń do nas, zadzwonimy do Ciebie". Twoje obiekty nie muszą mieć kontekstu aplikacji, aby uzyskać to, czego potrzebują. – duffymo
Nie możesz. Jeśli przetestuję moją usługę sieciową pod Glassfish, zostanie utworzona nowa usługa sieciowa i nie jest ona skonfigurowana: -o To było jednodniowe debugowanie, aby uzyskać tę wiedzę :( – pihentagy