我的应用程序最近从 JSF 1.2 升级到了 JSF 2.1.3。我正在使用 Mojarra。
我的应用程序通过 RAD8 中的 WAS7 管理控制台安装为 EAR。
索引 22 指的是“程序文件”中的空间。
当服务器在这里启动时,我得到的重要错误是:
Caused by: java.net.URISyntaxException: Illegal character in opaque part at index 22: wsjar:file:/C:/Program Files/IBM/SDP/runtimes/base_v7/profiles/IndSalesUtilsAppSrv02/installedApps/R8CMY8NW7LNode03Cell/IndUserServices.ear/IndUserServicesWeb.war/WEB-INF/lib/ind-jsf-v1.6.0.jar!/META-INF/faces-config.xml
at java.net.URI$Parser.fail(URI.java:2809)
at java.net.URI$Parser.checkChars(URI.java:2982)
at java.net.URI$Parser.parse(URI.java:3019)
at java.net.URI.<init>(URI.java:578)
at com.sun.faces.config.configprovider.MetaInfFacesConfigResourceProvider.loadURLs(MetaInfFacesConfigResourceProvider.java:160)
... 30 more
这是完整的堆栈跟踪:
[12/3/12 11:26:02:659 CST] 00000009 webapp E com.ibm.ws.webcontainer.webapp.WebApp notifyServletContextCreated SRVE0283E: Exception caught while initializing context: {0}
java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: javax.faces.FacesException: java.io.IOException: java.net.URISyntaxException: Illegal character in opaque part at index 22: wsjar:file:/C:/Program Files/IBM/SDP/runtimes/base_v7/profiles/IndSalesUtilsAppSrv02/installedApps/R8CMY8NW7LNode03Cell/IndUserServices.ear/IndUserServicesWeb.war/WEB-INF/lib/ind-jsf-v1.6.0.jar!/META-INF/faces-config.xml
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:290)
at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1708)
at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:381)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:299)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:100)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:166)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:732)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:617)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:376)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:668)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1127)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1319)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:610)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:944)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:740)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2051)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:385)
at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:328)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$300(CompositionUnitMgrImpl.java:113)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:895)
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:349)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1613)
Caused by: com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: javax.faces.FacesException: java.io.IOException: java.net.URISyntaxException: Illegal character in opaque part at index 22: wsjar:file:/C:/Program Files/IBM/SDP/runtimes/base_v7/profiles/IndSalesUtilsAppSrv02/installedApps/R8CMY8NW7LNode03Cell/IndUserServices.ear/IndUserServicesWeb.war/WEB-INF/lib/ind-jsf-v1.6.0.jar!/META-INF/faces-config.xml
at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:663)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:323)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
... 22 more
Caused by: java.util.concurrent.ExecutionException: javax.faces.FacesException: java.io.IOException: java.net.URISyntaxException: Illegal character in opaque part at index 22: wsjar:file:/C:/Program Files/IBM/SDP/runtimes/base_v7/profiles/IndSalesUtilsAppSrv02/installedApps/R8CMY8NW7LNode03Cell/IndUserServices.ear/IndUserServicesWeb.war/WEB-INF/lib/ind-jsf-v1.6.0.jar!/META-INF/faces-config.xml
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:649)
... 24 more
Caused by: javax.faces.FacesException: java.io.IOException: java.net.URISyntaxException: Illegal character in opaque part at index 22: wsjar:file:/C:/Program Files/IBM/SDP/runtimes/base_v7/profiles/IndSalesUtilsAppSrv02/installedApps/R8CMY8NW7LNode03Cell/IndUserServices.ear/IndUserServicesWeb.war/WEB-INF/lib/ind-jsf-v1.6.0.jar!/META-INF/faces-config.xml
at com.sun.faces.config.configprovider.MetaInfFacesConfigResourceProvider.getResources(MetaInfFacesConfigResourceProvider.java:135)
at com.sun.faces.config.ConfigManager$URITask.call(ConfigManager.java:1179)
at com.sun.faces.config.ConfigManager$URITask.call(ConfigManager.java:1148)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:639)
... 24 more
Caused by: java.io.IOException: java.net.URISyntaxException: Illegal character in opaque part at index 22: wsjar:file:/C:/Program Files/IBM/SDP/runtimes/base_v7/profiles/IndSalesUtilsAppSrv02/installedApps/R8CMY8NW7LNode03Cell/IndUserServices.ear/IndUserServicesWeb.war/WEB-INF/lib/ind-jsf-v1.6.0.jar!/META-INF/faces-config.xml
at com.sun.faces.config.configprovider.MetaInfFacesConfigResourceProvider.loadURLs(MetaInfFacesConfigResourceProvider.java:177)
at com.sun.faces.config.configprovider.MetaInfFacesConfigResourceProvider.getResources(MetaInfFacesConfigResourceProvider.java:108)
... 29 more
Caused by: java.net.URISyntaxException: Illegal character in opaque part at index 22: wsjar:file:/C:/Program Files/IBM/SDP/runtimes/base_v7/profiles/IndSalesUtilsAppSrv02/installedApps/R8CMY8NW7LNode03Cell/IndUserServices.ear/IndUserServicesWeb.war/WEB-INF/lib/ind-jsf-v1.6.0.jar!/META-INF/faces-config.xml
at java.net.URI$Parser.fail(URI.java:2809)
at java.net.URI$Parser.checkChars(URI.java:2982)
at java.net.URI$Parser.parse(URI.java:3019)
at java.net.URI.<init>(URI.java:578)
at com.sun.faces.config.configprovider.MetaInfFacesConfigResourceProvider.loadURLs(MetaInfFacesConfigResourceProvider.java:160)
... 30 more
我尝试过但没有奏效的事情:
- 更新到 JSF 2.1.14(查看 MetaInfFacesConfigResourceProvider 的源代码,我发现它没有从 2.1.3 更改为 2.1.14,所以它不起作用是有道理的。)
- 获取源代码 将应用程序作为项目导入(如果项目路径没有空格则有效,如果项目路径中有空格则无效)
- 将服务器上的“运行时环境”从“C:\Program Files\IBM\SDP\runtimes\base_v7”更改为“C:\Progra~1\IBM\SDP\runtimes\base_v7”(似乎没有做任何事情)
我很确定它与这个问题有关,似乎永远不会得到解决
如果这是 IBM 的问题,我不会感到惊讶。但是我需要在没有 IBM 修复的情况下以某种方式完成这项工作。
目前不能选择在不包含空格的新位置重新安装 RAD8。