Chcę udostępnić obiekt między moimi serwletami a moją usługą sieciową (JAX-WS), przechowując go jako atrybut kontekstu serwletu. Ale jak mogę odzyskać kontekst serwletu z usługi WWW?Jak uzyskać dostęp do ServletContext z usługi WWW JAX-WS?
37
A
Odpowiedz
40
Kontekst serwletu jest udostępniany przez JAX-WS poprzez kontekst komunikatu, który można pobrać za pomocą kontekstu usługi WWW. Wkładanie następujących państw spowoduje JAX-WS wstrzyknąć odniesienie do kontekstu serwis internetowy w usłudze internetowej:
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
...
@Resource
private WebServiceContext context;
Następnie można uzyskać dostęp do kontekstu serwletu przy użyciu:
ServletContext servletContext =
(ServletContext) context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
0
Jeśli używasz Maven dodaj tę zależność !!!
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
więc rozwiązać błędu uniknąć konfliktów Get ServletContext INFO :
A w metodzie klasy używam
@WebService(endpointInterface = "choice.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
@Resource
private WebServiceContext context;
public String sayHi(String text) {
HttpServletRequest request =(HttpServletRequest) context.getMessageContext().get(MessageContext.SERVLET_REQUEST);
System.out.println(request.getContextPath());
Powiązane problemy
- 1. Jak uzyskać dostęp do ApplicationContext z usługi WWW JAX-WS?
- 2. Jak uzyskać serwis WWW ServletContext in Rest?
- 3. Dostęp do usługi WWW z procedury składowanej Oracle
- 4. Jak uzyskać dostęp do Kibana z usługi Amazon elasticsearch?
- 5. Jak uzyskać dostęp do usługi sieciowej z przeciążonymi metodami
- 6. Udostępnianie magazynu kluczy do klienta usługi WWW
- 7. uzyskać dostęp do usługi z niestandardowych walidatora w Angular2
- 8. Uzyskiwanie dostępu do FacesContext z usługi WWW
- 9. Jak uzyskać dostęp do usługi WCF w aplikacji ASP.Net MVC?
- 10. Tworzenie klienta usługi WWW bezpośrednio ze źródła
- 11. Jak uzyskać dane z usługi do działania
- 12. Jak uzyskać dostęp do ViewBag z JS
- 13. Jak uzyskać dostęp do Seconds_Behind_Master z SQL
- 14. Jak uzyskać dostęp do ListView z adaptera
- 15. Jak uzyskać dostęp do aplikacjiContext z kontrolera
- 16. Jak uzyskać dostęp do ModelState z ActionFilter?
- 17. Jak uzyskać dostęp do Wikipedii z R?
- 18. Dostęp do usługi AngularJS z usługi wewnątrz innej ramki
- 19. Jak uzyskać dostęp do aplikacji?
- 20. Wdrażanie usługi internetowej Java bez korzystania z serwera WWW
- 21. Jak uzyskać dostęp do GetGlobalResourceObject()
- 22. Jak uzyskać dostęp do RouteTable.Routes.MapHttpRoute?
- 23. Wystąpienie nieautoryzowanego schematu uwierzytelniania z usługi WWW
- 24. Jak programowo uzyskać dostęp do karty SIM?
- 25. Dostęp do usługi Reszta usługi Https przy użyciu Spring RestTemplate
- 26. Środowisko Java do korzystania z usługi WWW opartej na JSON
- 27. Aktualizowanie usługi sieci Web z programu ASMX do interfejsu WWW
- 28. Jak uzyskać obiekt ServletContext w prostym pliku klasy?
- 29. jak uzyskać maven-jaxws-plugin do generowania @ XmlElementWrapper na klasach generowanych z xsd?
- 30. Tomcat nie może uzyskać ServletContext innej aplikacji internetowej
Jeśli próbujesz to na stosie JBoss EAP i zaczynasz tworząc projekt Seam za pomocą Kreatora nowego projektu w JBoss Developer Studio, otrzymujesz w swoim WEB-INF/lib plik commons-adnotations.jar (zawierający m.in. adnotację @Resource). Rezultat końcowy jest taki, że Twój tekst WebServiceContext nie jest wypełniany i otrzymujesz wyjątek NullPointerException. Dla nas rozwiązaniem było po prostu usunięcie commons-adnotations.jar, aby upewnić się, że użyto wersji JBoss. Potem wszystko poszło gładko. Dzięki za wspaniałą odpowiedź, prawdziwy ratownik! –
Zapisano mi dzień, ale brak w nim importów opublikowanych przez @pihentagy. –
Czy istnieją inne zasoby do wstrzykiwania inne niż kontekst usługi WWW? –