Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 部署到Glassfish 4.1时URL模式无效_Java_Jakarta Ee_Glassfish_Jsf 2.2_Glassfish 4 - Fatal编程技术网

Java 部署到Glassfish 4.1时URL模式无效

Java 部署到Glassfish 4.1时URL模式无效,java,jakarta-ee,glassfish,jsf-2.2,glassfish-4,Java,Jakarta Ee,Glassfish,Jsf 2.2,Glassfish 4,如果用户已经通过身份验证,我有一个web过滤器可以从登录和索引页面重定向。最初我有一个无效的URL模式。我修复了无效的模式,并尝试重新部署,但仅接收以下内容: java.lang.IllegalArgumentException: Invalid URL Pattern: [{0}] at org.glassfish.web.deployment.node.WebResourceCollectionNode.setElementValue(WebResourceCollectionNode.ja

如果用户已经通过身份验证,我有一个web过滤器可以从登录和索引页面重定向。最初我有一个无效的URL模式。我修复了无效的模式,并尝试重新部署,但仅接收以下内容:

java.lang.IllegalArgumentException: Invalid URL Pattern: [{0}]
at org.glassfish.web.deployment.node.WebResourceCollectionNode.setElementValue(WebResourceCollectionNode.java:136)
我检查了一下我的申请表,看看我是否遗漏了什么或者键入了什么错误。最后,我删除了WebFilter类,从web.xml中删除了它的映射,并尝试重新部署,同样的错误继续出现。目前我根本无法重新部署应用程序

我用谷歌搜索了一下,发现了一个类似的问题,但没有解决

完整堆栈跟踪:

Severe:   Exception while deploying the app [NCW-war]
Severe:   Exception during lifecycle processing
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)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(XMLSchemaValidator.java:863)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2973)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:318)
at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:245)
at com.sun.enterprise.deployment.archivist.Archivist.readStandardDeploymentDescriptor(Archivist.java:665)
at com.sun.enterprise.deployment.archivist.Archivist.readDeploymentDescriptors(Archivist.java:391)
at com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:271)
at com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:280)
at com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:241)
at com.sun.enterprise.deployment.archivist.ApplicationFactory.openArchive(ApplicationFactory.java:161)
at org.glassfish.javaee.core.deployment.DolProvider.processDOL(DolProvider.java:203)
at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:227)
at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:96)
at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:881)
at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:821)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:377)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)
任何帮助都将不胜感激

谢谢,, -贾罗德

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>
<context-param>
    <param-name>primefaces.THEME</param-name>
    <param-value>trontastic</param-value>
</context-param>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<error-page>
    <exception-type>java.lang.SecurityException</exception-type>
    <location>/login-error.xhtml</location>
</error-page>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<error-page>
    <error-code>401</error-code>
    <location>/unauthorized-access.xhtml</location>
</error-page>
<error-page>
    <error-code>403</error-code>
    <location>/unauthorized-access.xhtml</location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/page-not-found.xhtml</location>
</error-page>
<security-constraint>
    <display-name>Installations</display-name>
    <web-resource-collection>
        <web-resource-name>Installations</web-resource-name>
        <url-pattern>/installations/*</url-pattern>
    </web-resource-collection>
    <web-resource-collection>
        <web-resource-name>Resources</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <description/>
        <role-name>Installations</role-name>
    </auth-constraint>
</security-constraint>
<security-constraint>
    <display-name>Administrator</display-name>
    <web-resource-collection>
        <web-resource-name>Administrator</web-resource-name>
        <url-pattern>/NCW-war/*</url-pattern>
    </web-resource-collection>
    <web-resource-collection>
        <web-resource-name>Resources</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <web-resource-collection>
        <web-resource-name>Project Management</web-resource-name>
        <url-pattern>project-management/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <description/>
        <role-name>Administrator</role-name>
    </auth-constraint>
</security-constraint>
<security-constraint>
    <display-name>Analyst</display-name>
    <web-resource-collection>
        <web-resource-name>Analyst Pages</web-resource-name>
        <url-pattern>/analyst/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>PUT</http-method>
        <http-method>HEAD</http-method>
        <http-method>POST</http-method>
        <http-method>DELETE</http-method>
    </web-resource-collection>
    <web-resource-collection>
        <web-resource-name>Resources</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>Analyst</role-name>
    </auth-constraint>
</security-constraint>
<security-constraint>
    <display-name>WAN Analyst</display-name>
    <web-resource-collection>
        <web-resource-name>WAN Analyst Pages</web-resource-name>
        <url-pattern>/analyst/wan/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>PUT</http-method>
        <http-method>HEAD</http-method>
        <http-method>POST</http-method>
        <http-method>DELETE</http-method>
    </web-resource-collection>
    <web-resource-collection>
        <web-resource-name>Resources</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>WAN Analyst</role-name>
    </auth-constraint>
</security-constraint>
<security-constraint>
    <display-name>Voice Analyst</display-name>
    <web-resource-collection>
        <web-resource-name>Voice Analyst Pages</web-resource-name>
        <url-pattern>/analyst/voice/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>PUT</http-method>
        <http-method>HEAD</http-method>
        <http-method>POST</http-method>
        <http-method>DELETE</http-method>
    </web-resource-collection>
    <web-resource-collection>
        <web-resource-name>Resources</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>Voice Analyst</role-name>
    </auth-constraint>
</security-constraint>
<security-constraint>
    <display-name>Project Manager Pages</display-name>
    <web-resource-collection>
        <web-resource-name>Project Manager Pages</web-resource-name>
        <url-pattern>/project-management/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>PUT</http-method>
        <http-method>HEAD</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <web-resource-collection>
        <web-resource-name>Resources</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <description/>
        <role-name>Project Manager</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>LDAP</realm-name>
    <form-login-config>
        <form-login-page>/index.xhtml</form-login-page>
        <form-error-page>/login-error.xhtml</form-error-page>
    </form-login-config>
</login-config>
<security-role>
    <role-name>Administrator</role-name>
</security-role>
<security-role>
    <role-name>Installations</role-name>
</security-role>
<security-role>
    <role-name>Analyst</role-name>
</security-role>
<security-role>
    <role-name>WAN Analyst</role-name>
</security-role>
<security-role>
    <role-name>Voice Analyst</role-name>
</security-role>
<security-role>
    <role-name>Project Manager</role-name>
</security-role>

javax.faces.PROJECT_阶段
发展
主题
天然气
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
*.xhtml
java.lang.SecurityException
/login-error.xhtml
30
index.xhtml
401
/unauthorized-access.xhtml
403
/unauthorized-access.xhtml
404
/page-not-found.xhtml
装置
装置
/装置/*
资源
/资源/*
装置
管理员
管理员
/NCW战争/*
资源
/资源/*
项目管理
项目管理/*
管理员
分析师
分析师页面
/分析员/*
得到
放
头
邮递
删除
资源
/资源/*
分析师
广域网分析员
广域网分析页面
/分析员/广域网/*
得到
放
头
邮递
删除
资源
/资源/*
广域网分析员
语音分析员
语音分析页面
/分析员/声音/*
得到
放
头
邮递
删除
资源
/资源/*
语音分析员
项目经理页面
项目经理页面
/项目管理/*
得到
放
头
邮递
资源
/资源/*
项目经理
形式
LDAP
/index.xhtml
/login-error.xhtml
管理员
装置
分析师
广域网分析员
语音分析员
项目经理


此时应该没有筛选器。

名为
Administrator
的web资源集合有一个
标记,其内容没有前导斜杠。这意味着它不是
/project management/*
,而是
项目管理/*
。似乎url模式是以斜杠开头的。web.xml中的所有其他url模式都以
/
开头,除了
管理员
模式。也许这是你问题的根本原因。但是,我不确定这是Glassfish问题还是JavaEE规范的一部分。

**

  <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
        <url-pattern>*.png</url-pattern>
        <url-pattern>*.jpg</url-pattern>
        <url-pattern>*.css</url-pattern>
        <url-pattern>*.js</url-pattern>
    </servlet-mapping>

调度员
/
*.png
*jpg先生
*.css
*.js

删除名为
Administratorr
标记及其相应的
进行测试,然后再次尝试部署应用程序。这很可疑,我把它移除并重新部署,它部署时没有任何问题。我把它加回去再次验证,问题出现了。再次删除它,再次创建管理员安全约束和角色,并毫无问题地部署它。在过去的几天里,我没有改变这个角色或约束。这些额外的资源集合试图解决在某些页面上显示资源的奇怪问题。不管怎样,谢谢你的修复。如果您将其作为答案发布,我将接受,因为它解决了问题。:)那肯定管用。我在grepcode上查看了堆栈跟踪中的第一个类,
setElementValue(xmlement元素,String值)
方法应该在“/”前面加上前缀(如果缺少的话),尽管只适用于Servlet 2.2 web应用程序。奇怪的是,错误并没有很快出现,因为url模式已经出现了好几天。感谢您的帮助。如果您能再详细说明一下为什么这是一个好答案,或者它是如何解决问题的,可能会有所帮助。这样,遇到这个答案的其他人可以有更多的上下文,可能会对你的答案投赞成票。