2014-10-17 2 views
1

У меня есть приложение сервлетов Java с 6 веб-службами и один из веб-запросов, которые я должен определить, является ли это экземпляром Live или Test, вызывающим веб-службу. Я считаю, что я могу определить это с URL, т.е.Как определить приложение, вызывающее веб-службу

https://localhost:8443/projectname/etc 

или

Я пытаюсь получить это с помощью HttpServletRequest, и я знаю, что я должен вызвать процедуру, как показано ниже Изнутри веб-служба с именем «getDocument» Но как инициализировать HttpServletRequest внутри getDocument? Так я могу создать параметр «запрос» в веб-службе getDocument и инициализировать его для информации запроса?

public void doGet(HttpServletRequest request, 
      HttpServletResponse response) throws Exception { 
    ... 
    StringBuffer url = request.getRequestURL(); 
    ... 
} 

ответ

0

Вы можете получить информацию о клиенте, так, например:

@WebService() 
public class SomeWebService { 
    ... 
    @Resource private WebServiceContext wsc; 
    ... 
    @WebMethod 
    public void methodOfWebService() {  
     MessageContext mc = wsc.getMessageContext(); 

     // retrieve the client information 
     HttpServletRequest httpServletRequest = 
      (HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST);  
     System.out.println(httpServletRequest.getServletContext().getContextPath()); 
     ... 
    } 
} 
+0

Спасибо. Кажется, это работает, когда я звоню через SoapUI. Я еще не тестировал его в веб-интерфейсе, но уверен, что он будет работать. Будем держать вас в курсе. – AJF

+0

Добро пожаловать. –

Смежные вопросы