【问题标题】:java.lang.IllegalArgumentException: Invalid URL Pattern: [xhtml] [duplicate]java.lang.IllegalArgumentException:无效的 URL 模式:[xhtml] [重复]
【发布时间】:2011-07-23 10:41:45
【问题描述】:

我正在尝试在 glassfish 本地服务器上部署一个非常简单的 & 我的第一个 JSF 应用程序(遵循 really good tutorial by BalusC)。我完成了创建应用程序的所有步骤。当我尝试在 glassfish 服务器上部署应用程序时,它只是失败并显示以下异常消息:-

    cannot Deploy Playground
    Deployment Error for module: Playground: Exception while deploying the app : 
    java.lang.IllegalArgumentException: Invalid URL Pattern: [xhtml]

谁能解释错误在哪里,我该如何修改?

【问题讨论】:

  • 你的url-pattern 是如何在你的 web.xml 中为 Faces Servlet 声明的?
  • <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>xhtml</url-pattern> </servlet-mapping>

标签: jsf illegalargumentexception url-pattern


【解决方案1】:

这不是有效的 url 模式。您可以将映射安排为前缀映射或扩展映射(来自JSF 2.0 specification):

前缀映射:

<servlet-mapping>
  <servlet-name> faces-servlet-name </servlet-name>
  <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

扩展映射:

<servlet-mapping>
  <servlet-name> faces-servlet-name </servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

【讨论】:

  • 非常感谢马特!这有效!
【解决方案2】:

您的&lt;url-pattern&gt; 必须包含扩展名匹配(以* 开头)或前缀匹配(以/ 开头),而不仅仅是xhtml

这就是我的做法。

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

【讨论】:

  • 非常感谢精英!这有效!
  • 投票赞成这个问题的第一位评论者。
【解决方案3】:

servlet 映射的规则在Servlet 3.0 specs:

映射规范

在 Web 应用程序部署中 描述符,下面的语法是 用于定义映射:

  • / 字符开头并以/* 结尾的字符串 后缀用于路径映射。
  • *. 前缀开头的字符串用作扩展名 映射。
  • 空字符串 ("") 是一种特殊的 URL 模式,它完全映射到 应用程序的上下文根,即 表格的请求 http://host:port/&lt;contextroot&gt;/。在 在这种情况下,路径信息是 / 并且 servlet 路径和上下文路径为空 字符串 ("")。
  • 仅包含/ 字符的字符串表示“默认” 应用程序的 servlet。在这个 如果 servlet 路径是请求 URI 减去上下文路径和 路径信息为空。
  • 所有其他字符串仅用于完全匹配。

当您遇到此错误时,请检查您的 web.xml 和任何映射注释(WebServletWebFilter 等)

您可以在JSF 2.0 spec 中找到有关 JSF servlet 映射的建议。

使用扩展映射时 建议使用以下映射,但 不需要:

<servlet-mapping>
<servlet-name> faces-servlet-name </servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>

【讨论】:

    猜你喜欢
    • 2015-06-14
    • 2013-06-29
    • 2019-10-04
    • 2017-02-25
    • 2020-09-07
    • 2013-06-04
    • 2016-03-07
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多