2010-05-20 13 views
10

Bu, jetty 7 ve xml yapılandırılmış, yerleşik değil. Web sitesinden yapılandırılmış varsayılanlar kullanılarak jetty 7 ile statik içerik sunulması

ben iskeleden çalışacak bir veri kaynağı bağlayan bir app, statik dosya, crossdomain.xml dosyası hizmet etmeye çalışıyorum. Bunu yapmak için, ben böylece servlet ve eşleme yapılandırılmış:

<servlet> 
    <servlet-name>default </servlet-name> 
    <servlet-class>org.eclipse.jetty.servlet.DefaultServlet </servlet-class> 
    <init-param> 
     <param-name>resourceBase </param-name> 
     <param-value>/foo/foo </param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>default </servlet-name> 
    <url-pattern>/* </url-pattern> 
</servlet-mapping> 

Ne yazık ki tüm alıyorum 404 en bulunmaktadır. Herhangi bir yardım çok btw benim web.xm lfile geri kalanı gibi görünüyor mutluluk duyacağız: Ben aynı sorunu vardı

<?xml version="1.0" encoding="UTF-8"?> 
<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"version="2.5"> 

<servlet> 
    <servlet-name>cometd </servlet-name> 
    <servlet-class>org.cometd.server.continuation.ContinuationCometdServlet </servlet-class> 
    <load-on-startup>1 </load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>cometd </servlet-name> 
    <url-pattern>/cometd/* </url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>default </servlet-name> 
    <servlet-class>org.eclipse.jetty.servlet.DefaultServlet </servlet-class> 
    <init-param> 
     <param-name>resourceBase </param-name> 
     <param-value>/foo/foo </param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>default </servlet-name> 
    <url-pattern>/* </url-pattern> 
</servlet-mapping> 


<servlet> 
    <servlet-name>initializer </servlet-name> 
    <servlet-class>com.foo.research.Initializer </servlet-class> 
    <load-on-startup>2 </load-on-startup> 
</servlet> 

<filter> 
    <filter-name>cross-origin </filter-name> 
    <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter </filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>cross-origin </filter-name> 
    <url-pattern>/cometd/* </url-pattern> 
</filter-mapping> 

</web-app> 

cevap

16

; işte çalışan bir kod parçası (Jetty 6.1.22). Temel olarak org.eclipse'i org.mortbay ile değiştirdim ve resourceBase parametresini kaldırdım (aşağıya bakın). Ve bu aslında benim WAR dosyası içinde benim web.xml dosyasında biter:

<servlet> 
    <servlet-name>myservlet</servlet-name> 
    <servlet-class>foo.bar.MyServlet</servlet-class> 
    <display-name></display-name> 
    <description>The smallest Servlet ever!</description> 
    </servlet> 
    <servlet> 
    <servlet-name>default</servlet-name> 
    <servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>myservlet</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>/static/*</url-pattern> 
    </servlet-mapping> 

Daha sonra, WAR dosyasında "statik" dizinde statik dosyaları koymak zorunda. Bunun gibi (sadece açıklığa kavuşturmak için):

ROOT.war 
    |_ WEB-INF/ 
    |_ static/ 

sen (/ static/URI ama yine altında map) başka bir yerde statik dosyaları koymak istiyorsanız, belirtmek için resourceBase parametresini kullanabilirsiniz dizin, tıpkı senin yaptığın gibi. Jetty'e 7 ve 8 için http://docs.codehaus.org/display/JETTY/Servlets+Bundled+with+Jetty

+2

, org.eclipse.jetty.servlet.DefaultServlet yerine org.mortbay.jetty.servlet.DefaultServlet –

+0

aynı kullanın:

İskelesi'nın belgelerine bana bu biraz daha iyi anlamasına yardım Jetty 9 ile :) –

İlgili konular