2013-03-29 3 views
3

Я новичок в Java и Jetty, но имею проблему, которую я пытаюсь решить.Возможно ли запустить основной сервлет и проксисервер внутри: 8888 в webdefault.xml?

Это единственный способ, которым я знаю, как объяснить то, что я пытаюсь сделать это голый со мной ...

Я в настоящее время есть веб-приложение, которое работает в молы сервлета? (Я предполагаю, как вы говорите)

При запуске, она работает на локальном хосте: 8888/

Я использую отдельный процесс рубин/Sinatra управлять своими активами (JS, CSS, изображения). Это работает на localhost: 3000/

В идеале, мне нужен Jetty ProxyServlet, который отправляет любые запросы с localhost: 8888/assets/* на localhost: 3000/assets/*, чтобы избежать междоменных ошибок.

Это только в разработке, мои производственные активы будут обслуживаться в другом месте, поэтому не отвечают в контексте масштабируемости или других проблем.

Кроме того, мне нужны эти два «сервлета» для запуска sidebyside в пределах того же ПОРТА 8888?

Итак, снова ... Все запросы к localhost: 8888/* (за исключением,/assets/) будут направлены на главный сервлет webapp. Все запросы на локальном хосте: 8888/активы/ бы путь к/Sinatra локального хоста сервера рубина: 3000/активы/*

Мой текущий webdefault.xml:

<?xml version="1.0" encoding="ISO-8859-1"?> 

<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    metadata-complete="true" 
    version="2.5" 
> 

    <description> 
    Default web.xml file. 
    This file is applied to a Web application before it's own WEB_INF/web.xml file 
    </description> 
<filter> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> 

    <init-param> 
     <param-name>confPath</param-name> 
     <param-value>/urlrewrite.xml</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

    <listener> 
    <listener-class>org.eclipse.jetty.servlet.listener.ELContextCleaner</listener-class> 
    </listener> 

    <listener> 
    <listener-class>org.eclipse.jetty.servlet.listener.IntrospectorCleaner</listener-class> 
    </listener> 

    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
    <servlet> 
    <servlet-name>default</servlet-name> 
    <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class> 
    <init-param> 
     <param-name>aliases</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>acceptRanges</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <init-param> 
     <param-name>dirAllowed</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <init-param> 
     <param-name>welcomeServlets</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>redirectWelcome</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>maxCacheSize</param-name> 
     <param-value>0</param-value> 
    </init-param> 
    <init-param> 
     <param-name>maxCachedFileSize</param-name> 
     <param-value>0</param-value> 
    </init-param> 
    <init-param> 
     <param-name>maxCachedFiles</param-name> 
     <param-value>2048</param-value> 
    </init-param> 
    <init-param> 
     <param-name>gzip</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <init-param> 
     <param-name>useFileMappedBuffer</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <!-- 
    <init-param> 
     <param-name>resourceCache</param-name> 
     <param-value>resourceCache</param-value> 
    </init-param> 
    --> 
    <!-- 
    <init-param> 
     <param-name>cacheControl</param-name> 
     <param-value>max-age=3600,public</param-value> 
    </init-param> 
    --> 
    <load-on-startup>0</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <!-- ********************************************************************* --> 
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
    <!-- Railo --> 

    <servlet id="Railo"> 
    <description>Railo CFML Engine</description> 
    <servlet-name>CFMLServlet</servlet-name>  
    <servlet-class>railo.loader.servlet.CFMLServlet</servlet-class> 
    <!-- 
    <init-param> 
     <param-name>railo-server-root</param-name> 
     <param-value>/var/Railo/config/server/</param-value> 
     <description>Railo Server configuration directory (for Server-wide configurations, settings, and libraries)</description> 
    </init-param> 
    !--> 
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
    <!-- 
    <init-param> 
     <param-name>railo-web-directory</param-name> 
     <param-value>/var/Railo/config/web/{web-context-label}/</param-value> 
     <description>Railo Web Directory (for Website-specific configurations, settings, and libraries)</description> 
    </init-param> 
    !--> 
    <load-on-startup>2</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>CFMLServlet</servlet-name> 
    <url-pattern>*.cfc</url-pattern> 
    <url-pattern>*.cfm</url-pattern> 
    <url-pattern>*.cfml</url-pattern> 
    <url-pattern>/index.cfc/*</url-pattern> 
    <url-pattern>/index.cfm/*</url-pattern> 
    <url-pattern>/admin/index.cfm/*</url-pattern> 
    <url-pattern>/lms/index.cfm/*</url-pattern> 
    <url-pattern>/index.cfml/*</url-pattern> 
    </servlet-mapping> 


    <!-- ===================================================================== --> 
    <!-- Railo REST Servlet - handles Railo's RESTful web services    --> 
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
    <servlet id="RESTServlet"> 
    <description>Railo Servlet for RESTful services</description> 
    <servlet-name>RESTServlet</servlet-name>  
    <servlet-class>railo.loader.servlet.RestServlet</servlet-class> 
    <load-on-startup>3</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>RESTServlet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 


    <!-- ===================================================================== --> 
    <!-- Railo MessageBroker Servlet - Flex Gateway       --> 
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
    <servlet id="MessageBrokerServlet"> 
    <description>Railo Servlet for Flex Gateway</description> 
    <servlet-name>MessageBrokerServlet</servlet-name> 
    <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class> 
    <!-- init-param> 
     <param-name>services.configuration.file</param-name> 
     <param-value>/WEB-INF/flex/services-config.xml</param-value> 
    </init-param !--> 
    <!-- init-param> 
     <param-name>messageBrokerId</param-name> 
     <param-value>_default_</param-value> 
    </init-param !--> 
    <!-- load-on-startup>2</load-on-startup !--> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>MessageBrokerServlet</servlet-name> 
    <url-pattern>/flex2gateway/*</url-pattern> 
    <url-pattern>/flashservices/gateway/*</url-pattern> 
    <url-pattern>/messagebroker/*</url-pattern> 
    </servlet-mapping> 


    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
    <!--             Railo Definitions End --> 
    <!-- ===================================================================== --> 
    <!-- _____________________________________________________________________ --> 


    <!-- ==================================================================== --> 
    <session-config> 
    <session-timeout>30</session-timeout> 
    </session-config> 

    <!-- ==================================================================== --> 
    <welcome-file-list> 
    <welcome-file>index.cfm</welcome-file> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <!-- welcome-file>index.jsp</welcome-file !--> 
    </welcome-file-list> 

    <!-- ==================================================================== --> 
    <locale-encoding-mapping-list> 
    <locale-encoding-mapping><locale>ar</locale><encoding>ISO-8859-6</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>be</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>bg</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>ca</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>cs</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>da</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>de</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>el</locale><encoding>ISO-8859-7</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>en</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>es</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>et</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>fi</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>fr</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>hr</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>hu</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>is</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>it</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>iw</locale><encoding>ISO-8859-8</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>ja</locale><encoding>Shift_JIS</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>ko</locale><encoding>EUC-KR</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>lt</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>lv</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>mk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>nl</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>no</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>pl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>pt</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>ro</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>ru</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>sh</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>sk</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>sl</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>sq</locale><encoding>ISO-8859-2</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>sr</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>sv</locale><encoding>ISO-8859-1</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>tr</locale><encoding>ISO-8859-9</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>uk</locale><encoding>ISO-8859-5</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>zh</locale><encoding>GB2312</encoding></locale-encoding-mapping> 
    <locale-encoding-mapping><locale>zh_TW</locale><encoding>Big5</encoding></locale-encoding-mapping> 
    </locale-encoding-mapping-list> 

    <security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Disable TRACE</web-resource-name> 
     <url-pattern>/</url-pattern> 
     <http-method>TRACE</http-method> 
    </web-resource-collection> 
    <auth-constraint/> 
    </security-constraint> 

</web-app> 

Я думал что-то вроде это? Но это только вызывает 503 Service Unavailable

<servlet> 
    <servlet-name>JettyProxy</servlet-name> 
    <servlet-class>org.mortbay.servlet.ProxyServlet$Transparent</servlet-class> 
    <init-param> 
    <!-- This points to the actual server where requests are proxied to --> 
    <param-name>ProxyTo</param-name> 
    <param-value>http://localhost:3000/</param-value> 
    </init-param> 
    <init-param> 
    <!-- This will be stripped off the client request URL --> 
    <param-name>Prefix</param-name> 
    <param-value>/</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

<servlet-mapping> 
    <servlet-name>JettyProxy</servlet-name> 
    <url-pattern>/assets/*</url-pattern> 
</servlet-mapping> 

Возможно ли это? Если да, то как это будет реализовано?

ответ

3

Тег говорит, что вы используете причалом-8 но прокси-класс сервлета указывает Пристань-6 (org.mortbay.servlet.ProxyServlet). На причале-8 ProxyServlet, который вы должны использовать, - org.eclipse.jetty.servlets.ProxyServlet, и да, это звучит как совершенно нормальный случай использования.

+0

Я в конечном итоге решил это с помощью Jetty Rewrite ProxyRule, но теперь, когда я понимаю start.ini и вещи немного больше, я думаю, что мог бы сделать это и с ProxyServlet. Спасибо! –

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