Seam 2.0.2sp1应用程序可以在带有JBoss Embedded的Tomcat 5.5.9上运行吗?
题
我正在尝试使用JBoss Embedded jpa预订示例运行Tomcat。我运行构建并部署战争。然后我得到以下错误:
ERROR [catalina.core.ContainerBase.[Catalina].[localhost].[/jboss-seam-jpa]] Error configuring application listener of class com.sun.faces.config.ConfigureListener java.lang.NoClassDefFoundError: javax/el/CompositeELResolver at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357) at java.lang.Class.getConstructor0(Class.java:2671) at java.lang.Class.newInstance0(Class.java:321) at java.lang.Class.newInstance(Class.java:303) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3618) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4104
我发现这个类存在于el-api.jar中,而不在classpath中。所以我将el-api.jar添加到WEB-INF / lib目录中。然后我得到以下错误:
INFO: JSF1048: PostConstruct/PreDestroy annotations present. ManagedBeans methods marked with these annotations will have said annotations processed. Sep 19, 2008 5:37:50 PM com.sun.faces.config.ConfigureListener installExpressionFactory SEVERE: Error Instantiating ExpressionFactory java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:164) at com.sun.faces.config.ConfigureListener.installExpressionFactory(ConfigureListener.java:1521)
该库似乎位于el-ri.jar或JSP 2.1 jar中。难道我做错了什么?有没有解释如何在tomcat 5.5.x上运行seam应用程序的地方?非常感谢任何帮助!
解决方案
我让这个工作。我在seam / examples / jpa示例下运行了ant tomcat55。这包括所需的el- .jars。然后我运行'ant clean'和'ant jboss-embeded'并手动复制到tomcat55 make中的所有el - .jars。这超出了我的问题。现在我可以使用嵌入式JBoss启动tomcat 5.5.9。我现在可以毫无问题地运行预订示例。
其他提示
你看过这些文档吗?www.seamframework.org上的论坛以及www.jboss.org上的旧论坛也提供了一些非常好的信息。
不隶属于 StackOverflow