我正在尝试使用 JBoss Embedded jpa 预订示例运行 Tomcat。我运行构建并部署战争。然后我收到以下错误:
错误 [catalina.core.ContainerBase.[Catalina].[localhost].[/jboss-seam-jpa]] 配置类 com.sun.faces.config.ConfigureListener 的应用程序侦听器时出错 java.lang.NoClassDefFoundError: javax/el/CompositeELResolver 在 java.lang.Class.getDeclaredConstructors0(本机方法) 在 java.lang.Class.privateGetDeclaredConstructors(Class.java:2357) 在 java.lang.Class.getConstructor0(Class.java:2671) 在 java.lang.Class.newInstance0(Class.java:321) 在 java.lang.Class.newInstance(Class.java:303) 在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3618) 在 org.apache.catalina.core.StandardContext.start(StandardContext.java:4104
我发现这个类存在于不在类路径中的 el-api.jar 中。所以我将 el-api.jar 添加到 WEB-INF/lib 目录中。然后我收到以下错误:
信息:JSF1048:存在 PostConstruct/PreDestroy 注释。标有这些注解的 ManagedBeans 方法将表示已处理的注解。 2008 年 9 月 19 日下午 5:37:50 com.sun.faces.config.ConfigureListener installExpressionFactory 严重:实例化 ExpressionFactory 时出错 java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181) 在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:164) 在 com.sun.faces.config.ConfigureListener.installExpressionFactory(ConfigureListener.java:1521)
这个库似乎在 el-ri.jar 或 JSP 2.1 jar 中。难道我做错了什么?有没有解释如何在 tomcat 5.5.x 上运行 seam 应用程序的地方?任何帮助是极大的赞赏!