2017-04-15 25 views
3

私は以下の種類のフィルタをWeb XMLにマッピングしています。しかし、展開は失敗します。代わりがありますか? /Application/*.htmlでサポートされていないようおかげpayara glassfish web xmlフィルタのURL解析

<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/*/Application接頭辞を持つすべてがマッピングされます)
  • ​​( htmlサフィックスを持つすべてがマッピングされます)

したい場合は:あなたは、次のパターンのいずれかにマップする必要があります接頭辞(最初のオプション)をプロキシサーブレットにマップすると、リクエスト内のURLを解析し、ServletContext.html#getNamedDispatcherforward(req, resp)という適切なサーブレットに転送することができます。というサーブレットの場合はこのようになります:

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

ありがとう。同じであったか –

+0

答えが正しいとマークしてもよいし、アップアップを与えてもよい – OndrejM