2017-04-15 81 views
3

我有一種下面的過濾器映射我的網站XML。但部署失敗。有其他選擇嗎?感謝payara glassfish web xml過濾網址解析

<filter-mapping> 
    <filter-name>TestFilter</filter-name> 
    <url-pattern>*.js</url-pattern> 
</filter-mapping> <!-- this works --> 

<filter-mapping> 
    <filter-name>TestFilter</filter-name> 
    <url-pattern>/Application/*.html</url-pattern> 
</filter-mapping> <!-- this doesn't work with parsing error as below--> 

錯誤

java.lang.IllegalArgumentException: Invalid URL Pattern: [{0}] 
at org.glassfish.web.deployment.node.WebResourceCollectionNode.setElementValue(WebResourceCollectionNode.java:136) 
at com.sun.enterprise.deployment.node.SaxParserHandler.endElement(SaxParserHandler.java:583) 
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609) 

回答

1

恐怕混合的前後綴映射,如在/Application/*.html不支持。你需要用下面的方式之一映射:

  • /Application/*(與/Application前綴的一切都會被映射)
  • ​​(一切與html後綴將被映射)

如果你想要將它們混合在一起,可以通過前綴(第一個選項)映射到代理servlet,該代理servlet將解析請求中的URL並將其轉發到適當的小服務器,其中ServletContext.html#getNamedDispatcherforward(req, resp),就像這樣用於名爲的小服務程序:

if (request.getRequestURI().endsWith(".html")) { 
    request.getServletContext() 
    .getNamedDispatcher("application-html") 
    .forward(request, response) 
} 
+0

謝謝。同樣的 –

+0

你可以標記答案是正確的,或給予upvote,如果它幫助你 – OndrejM