我在我的本地PC上运行了Maven构建的Java应用程序。我使用Eclipse和Apache / Tomcat作为我的服务器。我的申请中有两个项目:
在我的WebApp Pom中,我将JavaApp作为依赖项包含在内。这在Eclipse和我的本地服务器上运行良好。的Apache / Tomcat的。
我有一个OpenShift帐户,并为Tomcat 7(JBoss EWS 2.0)创建了一个应用程序/盒式磁带。使用Git我按照说明进行操作;
我的cmd窗口报告推送成功。然后我转到我的应用程序URL,我收到了jsp错误。我的应用程序配置方式,在被定向到index.jsp之前首先进入servlet。我已将一个对象附加到页面以填充某些字段。错误是说JSP无法找到我的对象的任何方法。此应用程序在我的本地服务器上正常工作。我怀疑由于某种原因,我的WebApp的OpenShift部署无法找到我的Java代码(请参阅下文)。
我不知道为什么我会收到此错误,我们将不胜感激任何帮助!
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 8 in the jsp file: /index.jsp
The method getLastLocationSearched() is undefined for the type WelcomePageBean
5: <head>
6: <%@ page import ="org.williards.core.client.beans.WelcomePageBean" %>
7: <% WelcomePageBean pageBean = (WelcomePageBean) request.getAttribute("pageBean"); %>
8: <% if(pageBean.getLastLocationSearched() != null){ %>
9: <script>
10: var lastSearchLocation = <%= pageBean.getLastLocationSearched() %>;
11: </script>
堆栈跟踪:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
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:723)
org.williards.core.servlets.WelcomeServlet.pageNavigation(WelcomeServlet.java:26)
org.williards.core.servlets.AbstractServlet.doGet(AbstractServlet.java:49)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
答案 0 :(得分:0)
我的第一个问题是你的战争(我的意思是部署到OpenShift的战争,而不是源头)在本地运作?我怀疑你的战争不包含所有依赖。 要在OpenShift中正常工作,您需要确保OpenShift具有所有依赖项。 部署为战争时,您可以将第三方罐子添加到
中 src/main/webapp/WEB-INF/lib
另一个选项是通过源部署,允许您通过pom指示依赖关系。
您可以在以下OpenShift kb文章中查看所有详细信息: https://developers.openshift.com/en/tomcat-dependencies.html