java.lang.IllegalArgumentException:无效的 URL 模式:[xhtml]

发布于 2024-10-26 11:04:00 字数 475 浏览 8 评论 0原文

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

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

任何人都可以解释错误在哪里以及如何修改它吗?

I am trying to deploy a very simple & my first JSF application (following a really good tutorial by BalusC) on glassfish local server. I completed all the steps to create the application. And when I tried to deploy the application on the glassfish server, it just failed with the following exception message:-

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

Could anyone explain where is the fault and how can I amend it ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心碎的声音 2024-11-02 11:04:01

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

前缀映射:

<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>

This is not a valid url-pattern. You can arrange the mapping as prefix mapping or extension mapping (from the JSF 2.0 specification):

Prefix mapping:

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

Extension mapping:

<servlet-mapping>
  <servlet-name> faces-servlet-name </servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
浪菊怪哟 2024-11-02 11:04:01

您的 必须包含扩展名匹配(以 * 开头)或前缀匹配(以 / 开头),不仅仅是xhtml

这就是我的做法。

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

Your <url-pattern> must either have an extension matching (starts with a *) or prefix matching (starting with /) included, not just xhtml.

Here's how I did mine.

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
秋心╮凉 2024-11-02 11:04:01

Servlet 3.0 规范中介绍了 Servlet 映射的规则:

映射规范

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

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

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

您可以在 JSF 2.0 规范

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


 faces-servlet-name ;
*.faces

The rules for servlet mappings are covered in the Servlet 3.0 specs:

Specification of Mappings

In the Web application deployment
descriptor, the following syntax is
used to define mappings:

  • A string beginning with a / character and ending with a /*
    suffix is used for path mapping.
  • A string beginning with a *. prefix is used as an extension
    mapping.
  • The empty string ("") is a special URL pattern that exactly maps to the
    application's context root, i.e.,
    requests of the form
    http://host:port/<contextroot>/. In
    this case the path info is / and the
    servlet path and context path is empty
    string ("").
  • A string containing only the / character indicates the "default"
    servlet of the application. In this
    case the servlet path is the request
    URI minus the context path and the
    path info is null.
  • All other strings are used for exact matches only.

When you encounter this error, check your web.xml and any mapping annotations (WebServlet, WebFilter, etc.)

You can find recommendations for JSF servlet mapping in the JSF 2.0 spec.

When using extension mapping the
following mapping is recommended, but
not required:

<servlet-mapping>
<servlet-name> faces-servlet-name </servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文