1

我有一个我的同事创建的接缝应用程序。它是基于 Maven 的。我试图让它在本身令人困惑的eclipse中工作,但我设法摆脱了所有的eclipse“问题”(如问题视图中所示)并且应用程序成功构建,无论是从命令行和从日食中。

困难在于当我将应用程序部署到 jboss 服务器(Jboss 5.1)时,部署只能到达 JSF 并且永远不会启动 Seam 部分。所以日志文件看起来像这样

13:15:23,087 INFO  [EJBContainer] STARTED EJB: org.jboss.seam.transaction.EjbSynchronizations ejbName: EjbSynchronizations
13:15:23,107 INFO  [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:

nccm-app/EjbSynchronizations/local - EJB3.x Default Local Business Interface
nccm-app/EjbSynchronizations/local-org.jboss.seam.transaction.LocalEjbSynchronizations - EJB3.x Local Business Interface

13:15:23,357 INFO  [TomcatDeployment] deploy, ctxPath=/nccm
13:15:23,448 INFO  [config] Initializing Mojarra (1.2_13-b01-FCS) for context '/nccm'`

并停止。一个工作的应用程序继续接缝:

2011-09-16 11:59:48,494 INFO  [javax.servlet.ServletContextListener] (HDScanner) Welcome to Seam 2.2.0.EAP5

我的 EAR 文件中一定缺少某些东西,但我不知道是什么。接缝库肯定在那里。有什么办法可以告诉我我错过了什么?

4

2 回答 2

2

坚持Initializing Mojarra至少意味着两件事:

  1. 内存不足。增加容器的堆空间。从 512M 开始,取决于你的 webapp 的大小。

  2. JSF 相关库中存在冲突。确保所有版本相互兼容(JSF、Seam、RichFaces 等)。确保您了解 JBoss 附带它自己的一组 JSF api/impl 库,并且您不应该在您的 webapp 中包含任何/WEB-INF/lib内容(即,将其标记为providedMaven)。或者,如果您想覆盖 JBoss 加载其内置 JSF 库并更喜欢包含 webapp 的库,那么您应该将以下上下文参数添加到 webappweb.xml以告诉 JBoss 使用 WAR-bundled JSF impl 代替:

    <context-param>
        <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
        <param-value>true</param-value>
    </context-param>
    
于 2011-09-26T18:25:09.330 回答
0

检查seam.properties生成的文件中是否有文件(可能为空)。

对于war程序集,应在此处显示:

\WEB-INF\classes\seam.properties

对于jar程序集(有 seam bean 声明),它应该在这里:

\classes\seam.properties
于 2011-09-26T20:58:39.867 回答