我的应用程序最近已从JSF 1.2升级到JSF 2.1.3。我正在使用Mojarra。
我的应用程序通过RAD8中的WAS7管理控制台安装为EAR。
索引22指的是“Program Files”中的空格。
当服务器启动时,错误是我得到的:
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
我尝试过的事情没有奏效:
我很确定它与this问题有关,但似乎永远无法解决
如果这是一个IBM问题,我不会感到惊讶。但是我需要在没有IBM修复的情况下以某种方式获得这项工作。
此时无法选择在不包含空格的新位置重新安装RAD8。
答案 0 :(得分:1)
这似乎已在2.1.16和2.2 trunk中修复。
答案 1 :(得分:0)
试试这个:
File f = new File("C:/Program Files/I...[rest of filepath]");
URI u = f.toURI();
获取您的URI。空格在文件名中有效,但在URI中无效,这将正确地转义它。
答案 2 :(得分:0)
当我部署 war应用程序(在耳边)并且war应用程序在名称中包含空格时,IBM WAS 7/8上始终存在此问题。 / p>
我的解决方案是删除“war”文件名中的每个空格。