爪哇。朗。IllegalArgumentException:无效的URL模式:[xhtml][重复]
-
12-11-2019 - |
题
我正在尝试部署一个非常简单的&我的第一个JSF应用程序(以下是 真的很好的教程由BalusC)在glassfish本地服务器上。我完成了创建应用程序的所有步骤。当我尝试在glassfish服务器上部署应用程序时,它只是失败了,并显示以下异常消息:-
cannot Deploy Playground
Deployment Error for module: Playground: Exception while deploying the app :
java.lang.IllegalArgumentException: Invalid URL Pattern: [xhtml]
任何人都可以解释哪里是错误,我该如何修改它?
解决方案
这不是一个有效的url模式。您可以将映射安排为前缀映射或扩展映射(从 JSF2.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>
其他提示
你的 <url-pattern>
必须有一个扩展匹配(以 *
)或前缀匹配(从 /
)包括在内,而不仅仅是 xhtml
.
我是这样做的。
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
Servlet映射的规则在 Servlet3.0规格:
映射的规范
在Web应用程序部署中 描述符,下面的语法是 用于定义映射:
- 以a开头的字符串
/
字符和以a结尾/*
后缀用于路径映射。- 以a开头的字符串
*.
前缀用作扩展 映射。- 空字符串("")是一个特殊的URL模式,它精确地映射到 应用程序的上下文根,即, 表格的要求
http://host:port/<contextroot>/
.在 这种情况下,路径信息是/
而 servlet路径和上下文路径为空 字符串("")。- 仅包含
/
字符表示"默认" 应用程序的servlet。在这 如果servlet路径是请求 URI减去上下文路径和 路径信息为null。- 所有其他字符串仅用于完全匹配。
当您遇到此错误时,请检查您的web。xml和任何映射注释(WebServlet, Web过滤器, 等。)
您可以在 JSF2.0规范.
当使用扩展映射 建议使用以下映射,但 不需要:
<servlet-mapping> <servlet-name> faces-servlet-name </servlet-name> <url-pattern>*.faces</url-pattern> </servlet-mapping>
不隶属于 StackOverflow