【问题标题】:JSF Project not working under JBoss 6 but working under Tomcat 6JSF 项目不在 JBoss 6 下工作,但在 Tomcat 6 下工作
【发布时间】:2011-09-05 17:35:48
【问题描述】:

我正在使用 Eclipse 3.6 SR2,我有一个使用 JSF 的动态 Web 项目。使用 Apache Tomcat 6.0,我可以运行该项目并在浏览器上查看它。然后我尝试使用 JBoss 6.0,但我得到 HTTP 404 请求的资源不可用。 我可以浏览到http://localhost:8080/ ok。 我安装了 JBoss Tools 3.2。 该项目包含以下库:jsf-api.jar、jsf-impl.jar、jstl-api-1.2.jar、jstl-impl-1.2.jar、primefaces-2.2.1.jar 和 redmond-1.0.1。 jar (primefaces 主题) 知道为什么它在 Tomcat 中有效但在 JBoss 6.0 中无效吗?我应该怎么做才能让它工作? 谢谢!

编辑:我重新启动服务器并没有看到任何错误/异常。然后我再次尝试运行该项目,这些是我得到的异常:

16:38:16,160 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] deploy, ctxPath=/VirtualTimeClock-Web
16:38:16,160 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=jboss.web.deployment:war=/VirtualTimeClock-Web state=Create mode=Manual requiredState=Installed: java.net.URISyntaxException: Illegal character in path at index 18: file:/C:/Documents and Settings/sebastianlucero/Escritorio/Documentos/Workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.0_Runtime_Server1306767701579/deploy/VirtualTimeClock.ear/VirtualTimeClock-Web.war/
    at java.net.URI$Parser.fail(Unknown Source) [:1.6.0_24]
    at java.net.URI$Parser.checkChars(Unknown Source) [:1.6.0_24]
    at java.net.URI$Parser.parseHierarchical(Unknown Source) [:1.6.0_24]
    at java.net.URI$Parser.parse(Unknown Source) [:1.6.0_24]
    at java.net.URI.<init>(Unknown Source) [:1.6.0_24]
    at java.net.URL.toURI(Unknown Source) [:1.6.0_24]
    at org.jboss.vfs.VFS.getChild(VFS.java:174) [jboss-vfs.jar:3.0.0.GA]
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:223) [:6.0.0.Final]
    at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146) [:6.0.0.Final]
    at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:477) [:6.0.0.Final]
    at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) [:6.0.0.Final]
    at org.jboss.web.deployers.WebModule.start(WebModule.java:95) [:6.0.0.Final]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_24]
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) [:6.0.0.GA]
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) [:6.0.0.GA]
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) [:6.0.0.GA]
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:271) [:6.0.0.GA]
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:670) [:6.0.0.GA]
    at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) [:2.2.0.GA]
    at $Proxy41.start(Unknown Source)   at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:53) [:2.2.0.GA]
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:41) [:2.2.0.GA]
    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:301) [:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:894) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:641) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:182) [:2.2.0.GA]
    at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:58) [:2.2.0.GA]
    at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) [:2.2.0.GA]
    at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55) [:2.2.0.GA]
    at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) [:2.2.0.GA]
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832) [:2.2.0.GA]
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550) [:2.2.0.GA]
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1571) [:2.2.0.GA]
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1603) [:2.2.0.GA]
    at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491) [:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.0.GA]
    at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.0.GA]
    at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) [:2.2.0.GA]
    at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106) [:6.0.0.Final]
    at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143) [:0.2.2]
    at org.jboss.profileservice.dependency.ProfileDeployAction.deploy(ProfileDeployAction.java:151) [:0.2.2]
    at org.jboss.profileservice.dependency.ProfileDeployAction.installActionInternal(ProfileDeployAction.java:94) [:0.2.2]
    at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.GA]
    at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA]
    at org.jboss.profileservice.dependency.ProfileActivationWrapper$BasicProfileActivation.start(ProfileActivationWrapper.java:190) [:0.2.2]
    at org.jboss.profileservice.dependency.ProfileActivationWrapper.start(ProfileActivationWrapper.java:87) [:0.2.2]
    at org.jboss.profileservice.dependency.ProfileActivationService.activateProfile(ProfileActivationService.java:215) [:0.2.2]
    at org.jboss.profileservice.dependency.ProfileActivationService.activate(ProfileActivationService.java:159) [:0.2.2]
    at org.jboss.profileservice.AbstractProfileService.activateProfile(AbstractProfileService.java:154) [:0.2.2]
    at org.jboss.system.tools.ProfileServiceToolsFacade.addURI(ProfileServiceToolsFacade.java:233) [:6.0.0.Final]
    at org.jboss.system.tools.LegacyDeploymentScannerAdapter.addURL(LegacyDeploymentScannerAdapter.java:140) [:6.0.0.Final]
    at org.jboss.system.tools.DeploymentScanner.addURL(DeploymentScanner.java:91) [:6.0.0.Final]
    at org.jboss.system.tools.DeploymentScanner.addURL(DeploymentScanner.java:83) [:6.0.0.Final]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_24]
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) [:6.0.0.GA]
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) [:6.0.0.GA]
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) [:6.0.0.GA]
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:271) [:6.0.0.GA]
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:670) [:6.0.0.GA]
    at org.jboss.system.server.jmx.MBeanServerWrapper.invoke(MBeanServerWrapper.java:138) [:6.0.0.Final (Build SVNTag:JBoss_6.0.0.Final date: 20101228)]
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown Source) [:1.6.0_24]
    at javax.management.remote.rmi.RMIConnectionImpl.access$200(Unknown Source) [:1.6.0_24]
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown Source) [:1.6.0_24]
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown Source) [:1.6.0_24]
    at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown Source) [:1.6.0_24]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_24]
    at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) [:1.6.0_24]
    at sun.rmi.transport.Transport$1.run(Unknown Source) [:1.6.0_24]
    at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_24]
    at sun.rmi.transport.Transport.serviceCall(Unknown Source) [:1.6.0_24]
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) [:1.6.0_24]
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) [:1.6.0_24]
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) [:1.6.0_24]
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [:1.6.0_24]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [:1.6.0_24]
    at java.lang.Thread.run(Unknown Source) [:1.6.0_24]

【问题讨论】:

  • 你的 Eclipse 工作区在Documents and Settings,这会导致这个问题。尝试将您的工作区导出到路径中没有空格的文件夹位置。

标签: eclipse jsf jboss


【解决方案1】:

在您的 JBoss 实例中,查看部署文件夹并确保您的 Web 应用程序已正确部署。如果是这样,请查看日志文件夹并检查启动和服务器日志文件。查找任何错误并确保在您启动 JBoss 时正确部署了您的应用程序。

还要验证您的 JBoss 实例确实在侦听端口 8080。

祝你好运!

【讨论】:

  • 如果 JBoss 不监听 8080,他就不会得到 404,而是浏览器默认的连接超时页面。
【解决方案2】:

真的需要更具体地说明什么“不起作用”。阅读服务器日志以了解任何启动错误等等。

但是我这是因为您没有告诉 JBoss 您的项目已经包含必要的 JSF 库。成熟的 Java EE 应用程序服务器(例如 JBoss AS 6)附带内置的 JSF 库,这些库会自动加载,而简单的 servlet 容器(例如 Tomcat)则没有。由于版本差异,JBoss 管理的 JSF 库可能与您包含在 webapp 中的 JSF 库发生冲突。

您需要通过将以下上下文参数添加到 web.xml 来告诉 JBoss 不要加载其 JSF 库:

<context-param>
    <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
    <param-value>true</param-value>
</context-param> 

更新:您终于发布了异常。这是重要的一点

java.net.URISyntaxException:索引 18 处路径中的非法字符:file:/C:/Documents and Settings/sebastianlucero/Escritorio/Documentos/Workspace/.metadata/.plugins/org.jboss.ide.eclipse.as .core/JBoss_6.0_Runtime_Server1306767701579/deploy/VirtualTimeClock.ear/VirtualTimeClock-Web.war/

让我们看看索引 18 上有什么:

文件:/C:/Documents and Settings/sebastianlucero/Escritorio/Documentos/Workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.0_Runtime_Server1306767701579/deploy/VirtualTimeClock.ear/VirtualTimeClock-Web。战争/ ------------------^

一个空格。您已将 Eclipse 安装在路径名中有空格的文件夹中。这不起作用,另请参阅JBAS issue 8677。将 JBoss 和 Eclipse 放在一个没有空格的文件夹中,例如C:/Java.

【讨论】:

  • 我将自己的 JSF 库捆绑到部署到 JBoss 6 的 Web 应用程序中,而我的 web.xml 文件中没有这个库。我的应用程序加载了 JBoss JSF 库,但它没有给我启动错误。类加载器只是忽略了我捆绑在 WEB-INF\lib 中的内容
  • @maple:那么您的 JSF 库恰好是相同或稍旧的版本,并且您没有使用新版本中的新功能。我在 JBoss 6 上使用 JSF 2.1.1 时遇到问题。加载了 JBoss 提供的 JSF 2.0 而不是捆绑了 JSF 2.1.1 的 webapp。
  • 感谢@BalusC 我编辑了帖子,但我在控制台中看到了例外
  • @BalusC,感谢您的提示!您认为这个上下文参数会影响部署到 Tomcat 或其他 servlet 容器的 WAR 文件,还是认为其他 servlet 容器可能会忽略这一点?
  • 不客气。啊这个太恶心了。我也经历过这种情况,但对此我没有合理的解释。检查这个答案:stackoverflow.com/questions/5493931/…
【解决方案3】:

问题出在上下文根上。只需提供项目名称而不是上下文根。

【讨论】:

    猜你喜欢
    • 2015-10-19
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2012-11-26
    • 2012-10-01
    • 2012-07-22
    相关资源
    最近更新 更多