2013-03-29 3 views
3

저는 Java와 Jetty를 처음 사용하지만 해결하려고하는 문제가 있습니다.메인 서블릿과 ProxyServlet을 webdefault.xml의 8888에서 실행할 수 있습니까?

이것은 내가 나에게 너무 노출 할 노력하고있어 설명하는 방법을 알고있는 유일한 방법 ...

나는 현재 부두 서블릿 내에서 실행되는 웹 애플리케이션이? 시작할 때 로컬 호스트에서 실행

(제 생각 엔 당신이 말을하는 방법입니다) : 8888/

내 자산 (JS, CSS, 이미지)를 관리하기 위해 별도의 루비 /시나 프로세스를 사용하고

. 이것은 로컬 호스트에서 실행됩니다 : 3000/

이상 적으로 도메인 간 오류를 피하기 위해 localhost : 8888/assets/*에서 localhost : 3000/assets/*로 요청을 보내는 Jetty ProxyServlet이 필요합니다.

이것은 개발 단계에 있으며, 제작 자산은 다른 곳에서 제공되므로 확장 성이나 기타 관심사의 맥락에서 대답하지 않습니다.

또한 동일한 PORT 8888 내에서 사이드 바이 사이드를 실행하려면이 두 개의 "서블릿"이 필요합니까?

다시 ... localhost : 8888/* (/ assets/제외)에 대한 모든 요청은 기본 webapp 서블릿으로 라우팅됩니다. 로컬 호스트에 모든 요청 : 8888/자산/ 것 루비 /시나 서버 로컬 호스트으로 운항합니다 : 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). jetty-8에서 사용해야하는 ProxyServlet은 org.eclipse.jetty.servlets.ProxyServlet이고 예,이 모든 것은 완벽하게 정상적인 사용 사례처럼 들립니다.

+0

내가 Jetty Rewrite ProxyRule로 해결했지만 이제는 start.ini와 내가 ProxyServlet을 사용하여 할 수있는 것보다 조금 더 이해할 수있게되었습니다. 감사합니다. –