Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Jetty/Servlet. No SessionManager error. / 5 сообщений из 5, страница 1 из 1
01.11.2013, 03:38:55
    #38449186
eldarkaa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty/Servlet. No SessionManager error.
Помогите правильно настроить Jetty. Я использую последнюю версию Jetty (9.0.6.v20130930). Я приказал серверу выполнить конкретный сервлет, но этого не делает(что ему не хватает?). Уже пару раз компилировал и все нормально было, правда сервлет наследовался от HttpServlet , а теперь от AbstractHandler .

-- Main.class

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 public static void main(String[] args) throws Exception
    {
        MessageSystem ms = new MessageSystem();
        Frontend frontend = new Frontend(ms);

        (new Thread(frontend)).start();

        Server server = new Server(8080);
        server.setHandler(frontend);

        server.start();
        server.join();

    }


-- Frontend.class

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
public class Frontend extends AbstractHandler implements Runnable, Abonent {
    ... constructor and others methods...

    public void handle(String target, Request baseRequest,
                      HttpServletRequest request,
                      HttpServletResponse response)
            throws IOException, ServletException
    {
        setResponseSettings(baseRequest,response);
        PrintWriter out = response.getWriter();

        try {
            int id;
            HttpSession session = request.getSession();
            if( session.isNew()){
                id = setSessionId(session);
                pageContent = "Hello new user! Your id: "+id;
                out.println(new Page().enterName());
            }else{
                id = getSessionId(session);
                pageContent = "Hi! I remember you. You are: " +id;
                out.println(new Page().normalContent());
            }
        }
        catch (IllegalStateException ex){
            System.out.println("Exception!"+ex);
        }
        out.println("<H1>" + pageContent + "</H1>");
        Iterator iterator = listStrings.iterator();
        while (iterator.hasNext()){
            out.println("<br>");
            out.println("Your text from TextField: "+iterator.next());
        }
        out.close();
    }


-- Сonsole
Код: java
1.
2.
3.
4.
2013-11-01 04:06:24.273:INFO:oejs.Server:main: jetty-9.0.6.v20130930
2013-11-01 04:06:24.309:INFO:oejs.ServerConnector:main: Started ServerConnector@358e0f79{HTTP/1.1}{0.0.0.0:8080}
Exception!java.lang.IllegalStateException: No SessionManager
Exception!java.lang.IllegalStateException: No SessionManager
...
Рейтинг: 0 / 0
01.11.2013, 08:25:03
    #38449253
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty/Servlet. No SessionManager error.
Что мешает подключить исходники Jetty, и пройтись дебаггером по тому месту, откуда вылезает это исключение?
...
Рейтинг: 0 / 0
01.11.2013, 10:47:04
    #38449425
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty/Servlet. No SessionManager error.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=403369
Указать SessionManager, наверное надо?
...
Рейтинг: 0 / 0
04.11.2013, 02:52:34
    #38451527
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty/Servlet. No SessionManager error.
AbstractHandler маловато. Вам, как минимум, в качестве базового класса нужен ServletHandler. Наличие HttpServletRequest и HttpServletResponse и другого servlet api вовсе не означает, что сервлеты используются, как того требует спецификация. Jetty использует интерфейсы sertvlet api для любых handler, а не только тех, кторые в пакете org.eclipse.jetty.servlet
...
Рейтинг: 0 / 0
04.11.2013, 03:33:35
    #38451534
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jetty/Servlet. No SessionManager error.
Вообще-то что-то Вы не то делаете. Если у Вас сервлет, то не надо никакого нового потока, он и так исполняется в потоке.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
   public static void main(String[] args) throws Exception {
        Server server = new Server(8083);
        ServletContextHandler h = new ServletContextHandler();
        
        server.setHandler(h);

      
        h.addServlet(HelloServlet.class, "/*");

        server.start();
        server.join();
    }

    public static class MyServlet extends HttpServlet {

        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html");
            response.setStatus(HttpServletResponse.SC_OK);
            response.getWriter().println("<h1>My Servlet</h1>");
        }
    }
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Jetty/Servlet. No SessionManager error. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]