2016-11-05 85 views
0

按照http://www.eclipse.org/jetty/documentation/current/cross-origin-filter.html中的說明,爲了在jetty-8.1.18.v20150929(與BaseX 8.5捆綁在一起)上啓用跨域請求,我下載了jetty-servlets-8.1.18.v20150929.jar,並將它放在WEB-INF/lib中。爲什麼Jetty的跨源過濾器會導致服務器崩潰?

此外,在web.xml中,我說:

<filter> 
    <filter-name>cross-origin</filter-name> 
    <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class> 
    <init-param> 
     <param-name>allowedOrigins</param-name> 
     <param-value>*</param-value> 
    </init-param> 
    <init-param> 
     <param-name>allowedMethods</param-name> 
     <param-value>GET,POST,OPTIONS</param-value> 
    </init-param> 
    <init-param> 
     <param-name>allowedHeaders</param-name> 
     <param-value>*</param-value> 
    </init-param> 
    </filter> 
    <filter-mapping> 
    <filter-name>cross-origin</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

然而,這會導致碼頭在啓動時崩潰。我錯過了什麼?

+0

[Jetty 8 is EOL(End of Life)](https://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00069.html),考慮升級到支持/穩定/現代版本碼頭。 eclipse.org上的文檔適用於Jetty 9+ –

+0

不幸的是,我不能。 Jetty捆綁了BaseX 8.5,這是它的最新版本。 – ARX

回答

0

該類在Jetty 8中不存在。它暫停啓動,因爲您引用了無法找到/加載/實例化的類。

編寫您自己的CrossOriginFilter,完成您所需要的操作。

確保它支持:

  • 的Servlet 3.0基於
  • 異步支持的標誌
  • AsyncContext意識到

注意:不要複製/粘貼碼頭9版(您嘗試使用的那個),因爲它也支持Servlet 3.1中的功能,並且在Jetty 8中不起作用。

相關問題