Jetty и GWT (Google Web Toolkit) - PullRequest
       2

Jetty и GWT (Google Web Toolkit)

6 голосов
/ 07 марта 2011

Насколько я понимаю, GWT использует встроенный сервер Jetty.Может кто-нибудь сказать мне, где я могу найти файлы конфигурации Jetty .xml, используемые GWT?У меня есть веб-приложение, которое использует Jetty ContinuationFilter и ProxyServlet.Приложение прекрасно работает в GWT, но не работает при запуске в отдельном экземпляре Jetty вне GWT.Если я смогу скопировать конфигурацию GWT Jetty, то, думаю, все будет в порядке.

Изменить для получения дополнительной информации:

Файл web.xml моего веб-приложения выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <filter>
    <filter-name>JettyContinuationFilter</filter-name>
    <filter-class>org.eclipse.jetty.continuation.ContinuationFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>JettyContinuationFilter</filter-name>
    <url-pattern>/bugzilla/*</url-pattern>
  </filter-mapping>

  <!-- Servlets -->
  <servlet>
    <servlet-name>greetServlet</servlet-name>
    <servlet-class>com.searchsystem.gwt.server.GreetingServiceImpl</servlet-class>
  </servlet>

    <servlet>
     <servlet-name>jetty-proxy-servlet</servlet-name>
     <servlet-class>org.eclipse.jetty.servlets.ProxyServlet$Transparent</servlet-class>
     <init-param>
        <param-name>ProxyTo</param-name>
        <param-value>http://localhost/</param-value>
     </init-param>
     <init-param>
       <param-name>Prefix</param-name>
       <param-value>/</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>greetServlet</servlet-name>
    <url-pattern>/dashboard/greet</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
     <servlet-name>jetty-proxy-servlet</servlet-name>
     <url-pattern>/bugzilla/*</url-pattern>
  </servlet-mapping> 

  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>Dashboard.html</welcome-file>
  </welcome-file-list>

</web-app>

, а ссылка на мою установку Bugzilla находится в следующем виде:

com.google.gwt.user.client.ui.Frame bugFrame = new Frame("/bugzilla/");

Работая под Jetty 6.1.26, я получаю этот вывод:

Request Attributes
Attribute:  Value:
javax.servlet.forward.request_uri   /bugzilla/
org.mortbay.jetty.error_page    /jspsnoop/ERROR/404
javax.servlet.forward.servlet_path  /bugzilla/
testFilter  1
javax.servlet.error.message     NOT_FOUND
requestInitialized  ''
javax.servlet.forward.context_path  
javax.servlet.error.status_code     404
javax.servlet.error.servlet_name    default
org.mortbay.jetty.newSessionId  47deq3eo5kblxfrvtc5rljrg
javax.servlet.error.request_uri     /bugzi

lla /

Ответы [ 2 ]

9 голосов
/ 07 марта 2011

нет jetty.xml. GWT устанавливает Сервер программно. Вы можете найти настройки в

com.google.gwt.dev.shell.jetty.JettyLauncher

содержится в gwt-dev.jar

2 голосов
/ 07 августа 2012

См .: Обслуживание приложения GWT со встроенным Jetty Server . Автор Brandon Tilley (фрагмент кода показан ниже).Похоже, что он достиг этого довольно плавно, процесс, который я буду подтверждать себе завтра.

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.eclipse.jetty.webapp.WebAppContext;

public class EmbeddedGwt {

    public static void main(String[] args) throws Throwable {

        // Create an embedded Jetty server on port 8080
        Server server = new Server(8080);

        // Create a handler for processing our GWT app
        WebAppContext handler = new WebAppContext();
        handler.setContextPath("/");
        handler.setWar("./apps/GwtApplication.war");

        // If your app isn't packaged into a WAR, you can do this instead
        WebAppContext altHandler = new WebAppContext();
        altHandler.setResourceBase("./apps/GwtApplication");
        altHandler.setDescriptor("./apps/GwtApplication/WEB-INF/web.xml");
        altHandler.setContextPath("/");
        altHandler.setParentLoaderPriority(true);

        // Add it to the server
        server.setHandler(handler);

        // Other misc. options
        server.setThreadPool(new QueuedThreadPool(20));

        // And start it up
        server.start();
        server.join();
    }
}
...