我的同事创建了一个接缝应用程序。它以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文件中必须缺少某些内容,但我无法弄清楚是什么。接缝库肯定在那里。有什么方法可以告诉我缺少什么吗?
答案 0 :(得分:2)
挂在Initializing Mojarra
上至少意味着两件事:
内存不足。增加容器的堆空间。从512M开始,具体取决于您的webapp的大小。
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