1

我一直在开发一个旨在在 weblogic 8.1 下运行的小项目。Richfaces 根据文档声明它支持 weblogic 8.1。

Weblogic 8.1 使用 servlet 规范 2.3 和 jsp 1.2 这一直在我本地安装的 weblogic 8.1 版本上工作,但是当部署到 sparc 服务器时,我开始遇到麻烦。我已经解决了一些最初的头痛问题,但后来我收到错误 500 并且无法获取详细信息。但经过一番努力,我得出了这个...

javax.servlet.ServletException: javax/servlet/jsp/JspContext
        在 weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:344)
        在 com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346)
        在 com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152)
        在 org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
        在 org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
        在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
        在 com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
        在 com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
        在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
        在 weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
        在 weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
        在 weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
        在 weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
        在 org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
        在 org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
        在 weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
        在 weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
        在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6987)
        在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        在 weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
        在 weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
        在 weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
        在 weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

JspContext不是 jsp 1.2 的一部分,它是较新的。考虑到该消息,我认为此异常最初是一个ClassNotFoundException或类似的东西。异常没有附加任何“原因”。

以下是我的网络应用程序中包含的 jar 文件。

antlr-2.7.6.jar
asm-1.5.3.jar
asm-attrs-1.5.3.jar
cglib-2.1_3.jar
commons-beanutils-1.6.jar
commons-collections-3.2.jar
commons-digester-1.5.jar
commons-lang-2.4.jar
commons-logging-1.0.3.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
hibernate-3.2.4.sp1.jar
jsf-api-1.1_02.jar
jsf-impl-1.1_02.jar
jstl-1.0.jar
jta-1.1.jar
log4j-1.2.15.jar
richfaces-api-3.1.6.SR1.jar
richfaces-impl-3.1.6.SR1.jar
richfaces-ui-3.1.6.SR1.jar
xercesImpl-2.9.1.jar
xml-apis-1.3.04.jar

我的选择已经不多了,我将试图找出谁对JspContext班级有依赖......但如果有人能给我一些见解,我将不胜感激。哦,我不能对生产网络逻辑服务器进行很多更改。我宁愿不做任何事情,这些变化很可能是denied

哦 尝试查看页面时出现此错误,因此部署成功。

4

2 回答 2

2

好的,我已经解决了我的问题。不是我想要的方式,但它正在工作(至少我现在所知道的)。

(再次)使用谷歌后,我发现有人提到使用richfaces 3.0.1 的评论。现在我看到很多人说使用版本 xxx 甚至 3.3.x。毕竟我确实让它在 3.1.6 上工作,但是在 weblogic 的 windows 版本上(可能被我安装的其他一些 weblogic 版本污染了)。

所以我修改了我的 pom for maven 以依赖:

            <groupId>org.richfaces</groupId>
            <artifactId>richfaces</artifactId>
            <版本>3.0.1</版本>

这不是最佳的,但我猜它有效。一些标签库引用需要更改,并且包在一定程度上发生了变化。

如果有人需要,我可以为此发布我的项目配置。让这一切在 weblogic 8.1 上运行并非易事。但是据我所知,3.1.6 的参考文档是不正确的,因为它支持 weblogic 8.1

于 2010-02-17T12:16:32.307 回答
1

jsp-api-2.1.jar包含缺少的类,因此您可以尝试使用它(在 weblogic 中替换它,或者在您的 /lib 中尝试),但我无法预测会发生什么。

于 2010-02-15T10:53:41.550 回答