java - 使用JSF将应用程序迁移到其他服务器

标签 java jsp jsf apache2

我正在尝试将我们的服务器从本地linux盒转移到云托管服务。原始服务器使用Apache Tomcat 6.0.24版和Java 1.6.0_17版。新服务器使用Apache Tomcat 6.0.29版和Java 1.6.0_22版。

我所有其他的Web应用程序都可以正常工作,但这是唯一使用JSF的应用程序。它大约是3年前开发的,它使用一些愚蠢的拖放UI,并且代码很难看透。目前,我还在将应用程序转换为不使用JSF的应用程序,而仅使用Spring和jsp,并且如果我重定向到我专门转换的那些页面,它们也可以正常工作。请注意,在我的本地计算机上也不会发生此错误。我得到的错误是:

异常详细信息:org.apache.jasper.el.JspELException
/UserMainPage.jsp(25,95)'#{UserMainPage.DIMainPanel1}'无法将类型为java.lang.String的#{UserMainPage.DIMainPanel1}转换为类javax.faces.component.UIComponent

错误的可能来源:
类名称:org.apache.jasper.el.JspValueExpression
文件名:JspValueExpression.java
方法名称:getValue
行号:107

堆栈跟踪:

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)
com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:229)
javax.faces.webapp.UIComponentELTag.createComponent(UIComponentELTag.java:211)
javax.faces.webapp.UIComponentClassicTagBase.createChild(UIComponentClassicTagBase.java:476)
javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:660)
javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1126)
com.sun.faces.taglib.html_basic.PanelGridTag.doStartTag(PanelGridTag.java:344)
org.apache.jsp.UserMainPage_jsp._jspx_meth_h_005fpanelGrid_005f0(UserMainPage_jsp.java:1016)
org.apache.jsp.UserMainPage_jsp._jspx_meth_ui_005fpanelGroup_005f0(UserMainPage_jsp.java:833)
org.apache.jsp.UserMainPage_jsp._jspx_meth_ui_005fpanelLayout_005f0(UserMainPage_jsp.java:758)
org.apache.jsp.UserMainPage_jsp._jspx_meth_ui_005ftab_005f0(UserMainPage_jsp.java:712)
org.apache.jsp.UserMainPage_jsp._jspx_meth_ui_005ftabSet_005f0(UserMainPage_jsp.java:656)
org.apache.jsp.UserMainPage_jsp._jspx_meth_ui_005fform_005f0(UserMainPage_jsp.java:582)
org.apache.jsp.UserMainPage_jsp._jspx_meth_ui_005fbody_005f0(UserMainPage_jsp.java:534)
org.apache.jsp.UserMainPage_jsp._jspx_meth_ui_005fhtml_005f0(UserMainPage_jsp.java:361)
org.apache.jsp.UserMainPage_jsp._jspx_meth_ui_005fpage_005f0(UserMainPage_jsp.java:317)
org.apache.jsp.UserMainPage_jsp._jspx_meth_f_005fview_005f0(UserMainPage_jsp.java:275)
org.apache.jsp.UserMainPage_jsp._jspService(UserMainPage_jsp.java:243)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:320)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:225)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:774)
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
org.apache.jk.common.ChannelSocket $ SocketConnection.runIt(ChannelSocket.java:896)
org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadPool.java:690)
java.lang.Thread.run(Thread.java:662)

这是jsp抱怨的部分:

<h:panelGrid binding="#{UserMainPage.DIMainPanel1}" border="0" cellpadding="0" cellspacing="0" columns="2" id="DIMainPanel1" style="height:38px" width="671">


我已经筋疲力尽了。任何人都知道可能是什么问题吗?

最佳答案

此问题是由切换到最新版本的apache2时出现的JSF版本差异引起的。我必须在页面指令中添加deferredSyntaxAllowedAsLiteral =“ false”和isELIgnored =“ false”来强制解析“ $ {...}”字符串。可以在web-xml或page指令中的各个.jsp文件中完成此操作。

关于java - 使用JSF将应用程序迁移到其他服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4675215/

相关文章:

java - 进入测试

java - Collections.sort 不是排序

java - 为什么synchronized不能同步线程?

java - 在 .jsp 中迭代 ArrayList(符合 MVC2)

java - 通过自定义 Spring validator 处理绑定(bind)到输入字段的长值是否太晚了?

java - 使用 JSP 中的 RequestDispatcher 包含静态内容在 GAE Java SDK 上不起作用

java - JSF2 枚举 h :selectOneMenu

java - 在 osgi maven 包中以编程方式更改 log4j 文件名不起作用

javascript - 使用 Primefaces JavaScript 在服务器上的 bean 上调用 JSF 方法

java - 我如何在 Bean 中获取 SessionScope 对象