1

私のアプリは最近 JSF 1.2 から JSF 2.1.3 にアップグレードされました。モハラを使用しています。

私のアプリは、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

私が試したことはうまくいきませんでした:

  1. JSF 2.1.14 に更新されました (MetaInfFacesConfigResourceProvider のソースを見ると、2.1.3 から 2.1.14 に変更されていないことがわかります。そのため、機能しないことは理にかなっています。)
  2. ソース コードを取得する アプリをプロジェクトとしてインポートします (プロジェクトへのパスにスペースがない場合は機能し、プロジェクトへのパスにスペースがある場合は機能しません)。
  3. サーバーの「ランタイム環境」を「C:\Program Files\IBM\SDP\runtimes\base_v7」から「C:\Progra~1\IBM\SDP\runtimes\base_v7」に変更します (何もしないようです)。 )

この問題に関連していると確信していますが、解決されていないようです

これが IBM の問題であるとしても、私は驚かないでしょう。しかし、IBM の修正を行わずに、どうにかしてこれを機能させる必要があります。

スペースを含まない新しい場所に RAD8 を再インストールすることは、現時点ではオプションではありません。

4

3 に答える 3

1

これは、2.1.16 および 2.2 トランクで修正されたようです。

http://java.net/jira/browse/JAVASERVERFACES-2628

于 2013-01-09T15:17:44.613 に答える
0

この問題は、 war アプリケーション(耳の内側)をデプロイし、war アプリケーションの名前にスペースが含まれている場合に、IBM WAS 7/8 に常に存在します。

私の解決策は、「戦争」ファイル名のすべてのスペースを削除することです。

于 2014-02-25T14:54:16.230 に答える
0

これを試してください:

File f = new File("C:/Program Files/I...[rest of filepath]");
URI u = f.toURI();

あなたのURIを取得します。スペースはファイル名では有効ですが、URI では無効です。これにより適切にエスケープされます。

于 2012-12-24T14:36:52.643 に答える