New version QSystem 21.1 is available!

Facebook

Функциональность QSystem
× Расширенные возможности QSystem!

Делимся опытом использования и разработки плагинов и расширений для системы управления очередью.

jersey servlet and webcontext handler

  • sanco
  • sanco's Avatar Topic Author
  • Offline
  • Захожу иногда
  • Захожу иногда
More
8 years 4 months ago - 8 years 4 months ago #2517 by sanco
sanco created the topic: jersey servlet and webcontext handler
Hello. I want to add web service to project using jersey. I used the below code for this.
ResourceConfig config = new ResourceConfig();
		config.packages("jettyjerseytutorial");
		ServletHolder servlet = new ServletHolder(new ServletContainer(config));
 
		final ServletContextHandler servletContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
		servletContext.setContextPath("/");
        //При необходимости иметь сервлет, добавляяем их в обработчики вот так
        servletContext.addServlet(new ServletHolder(new HelloServlet()), "/hell");

        /*
         // поддержка расширяемости плагинами. На будующее, пото если понадобится приделаю сервлеты как плагины
         for (final IChangeCustomerStateEvent event : ServiceLoader.load(IChangeCustomerStateEvent.class)) {
         QLog.l().logger().info("Вызов SPI расширения. Описание: " + event.getDescription());
         try {
         event.change(this, state, newServiceId);
         } catch (Throwable tr) {
         QLog.l().logger().error("Вызов SPI расширения завершился ошибкой. Описание: " + tr);
         }
         }
         */
        final HandlerList handlers = new HandlerList();

        // Важный момент - поряд следования хандлеров
        // по этому порядку будет передоваться запрос, если он еще не обработан
        // т.е. с начала ищется файл, если не найден, то урл передается на исполнение команды,
        // в комаедах учтено что урл для вебсокета нужно пробросить дальше, его поймает хандлер вебсокетов
        //handlers.setHandlers(new Handler[]{resource_handler, new CommandHandler(), qWebSocketHandler});
        handlers.setHandlers(new Handler[]{resource_handler, new CommandHandler(), servletContext});

        // Загрузка war из папки 
        String folder = "./www/war/";
        QLog.l().logger().info("Загрузка war из папки " + folder);
        final File[] list = new File(folder).listFiles((File dir, String name) -> name.toLowerCase().endsWith(".war"));
        if (list != null && list.length != 0) {
            for (File file : list) {
                final String name = file.getName().substring(0, file.getName().lastIndexOf(".")).toLowerCase();
                QLog.l().logger().debug("WAR " + name + ": " + file.getAbsolutePath());
                final WebAppContext webapp = new WebAppContext();
                webapp.setContextPath("/" + name);
                webapp.setWar(file.getAbsolutePath());
                handlers.addHandler(webapp);
            }
        }

        jetty.setHandler(handlers);
After adding this code I can use my web serivce. But I could not load the plugins under war folder. The log shows that server succesfully load all war files under www/war folder but when I want to load on browser it shows nothing. for example i download QSmartboard plugin and put under www/war folder and start the server. Server load this plugin but when I try to open on browser but nothing load http:/localhost:8081/qsmartboard. can program run webserver and webcontextapp at the same port
Last Edit: 8 years 4 months ago by sanco.

Please Log in or Create an account to join the conversation.

  • sanco
  • sanco's Avatar Topic Author
  • Offline
  • Захожу иногда
  • Захожу иногда
More
8 years 4 months ago #2519 by sanco
sanco replied the topic: jersey servlet and webcontext handler
i found the reason. Last week i updated all jetty libs to latest version. Somehow zk framework not compability with jetty last version so downgrade jetty libs version and now both jersey web service and jetty webappcontext work without any problem

Please Log in or Create an account to join the conversation.

  • Evgenic
  • Evgenic's Avatar
  • Offline
  • Администратор
  • Администратор
More
8 years 4 months ago - 8 years 4 months ago #2520 by Evgenic
Evgenic replied the topic: jersey servlet and webcontext handler
you right. Jetty libs weren't updated because of that.

В очереди все первые. Каждый в своё время.
Last Edit: 8 years 4 months ago by Evgenic.

Please Log in or Create an account to join the conversation.

Time to create page: 0.044 seconds
Работаем с QSystem