2

我正在尝试使用 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.E​​xpressionFactoryImpl
        在 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 应用程序的地方?任何帮助是极大的赞赏!

4

2 回答 2

1

我得到了这个工作。我在 seam/examples/jpa 示例下运行了 ant tomcat55。这包括所需的 el- .jars。然后我运行“ant clean”和“ant jboss-embeded”并手动复制到所有来自 tomcat55 make 的 el-.jars。这解决了我上面的问题。现在我可以使用嵌入式 JBoss 启动 tomcat 5.5.9。我现在可以毫无问题地运行预订示例。

于 2008-09-23T16:32:16.057 回答
0

你看过文档吗,在 www.seamframework.org 的论坛和 www.jboss.org 的旧论坛上也有一些非常好的信息。

于 2008-09-20T03:43:28.037 回答