Конечная точка с java, где сеанс?

Это мой код на основном:

Endpoint.publish("http://0.0.0.0:8080/ws/WebServices", new WebServicesImpl());

А это мой WebServicesImpl:

@WebService(endpointInterface = "ws.WebServices")
public class WebServicesImpl implements WebServices {

    @Override
    public void recibirTramaPosicionWS(AnObject anobject) {
        AThread ttp  = AThread(anobject);
            ttp.start();
    }
}

Веб-сервис работает без проблем, я могу получить к нему доступ и все нормально, но у меня есть большой вопрос: могу ли я получить сеанс своих клиентов, или запросы, или что-то использовать в WebServicesImpl?? Мне нужно реализовать безопасность в этом веб-сервисе.

Есть идеи?

Большое спасибо!


person LuisSM    schedule 30.07.2013    source источник


Ответы (2)


см. пример здесь: Как получить объект сеанса при работе с веб-сервисами ?

обычно это зависит от используемого вами контейнера, но аннотация @Resource дает вам некоторые объекты по умолчанию, такие как WebserviceContext

person Sorontur    schedule 30.07.2013

Во-первых, в обычной жизни мы не публикуем веб-сервисы с таким подходом. Обычно это делается с помощью разных API, таких как apache-cxf, axis и т. д. Вы также можете использовать разные фреймворки для предоставления веб-сервисов, таких как Spring.

Что касается вашей проблемы, это просто программа, которая прослушивает порт для HTTP-вызовов. Его следует использовать только для целей тестирования. Класс «Конечная точка» — это класс, который поставляется с пакетом jdk. Вы не можете получить управление сеансом с этим подходом. Если вы хотите управлять сеансом, я бы предложил перейти на реальный сервер приложений и развернуть на нем свое приложение.

person Supratim Samanta    schedule 30.07.2013
comment
Спасибо, я знаю, что это не лучший способ разработки приложения веб-службы, но мне нужен интерфейс (не веб-интерфейс, интерфейс рабочего стола), и это быстрый способ сделать это, который я знаю. Если вы можете помочь мне другим способом... - person LuisSM; 30.07.2013