为什么我的接缝应用程序只部署?

时间:2011-09-26 18:16:42

标签: jsf jboss seam jsf-1.2

我的同事创建了一个接缝应用程序。它以maven为基础。我试图让它在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文件中必须缺少某些内容,但我无法弄清楚是什么。接缝库肯定在那里。有什么方法可以告诉我缺少什么吗?

2 个答案:

答案 0 :(得分:2)

挂在Initializing Mojarra上至少意味着两件事:

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

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

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

答案 1 :(得分:0)

检查结果文件中是否有seam.properties个文件(可能为空)。

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

\WEB-INF\classes\seam.properties

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

\classes\seam.properties