在Tomcat7上将Maven Java应用程序部署到OpenShift

在Tomcat7上将Maven Java应用程序部署到OpenShift,java,git,maven,tomcat,openshift,Java,Git,Maven,Tomcat,Openshift,我有一个用Maven构建的Java应用程序,在本地PC上运行。我的服务器使用Eclipse和Apache/Tomcat。我的申请中有两个项目: Java代码(JavaApp) Web应用程序(WebApp) 在我的webapppom中,我将JavaApp作为一个依赖项。这在我使用Eclipse和Apache/Tomcat的本地服务器上运行良好 我有一个OpenShift帐户,并为Tomcat 7(JBoss EWS 2.0)创建了一个应用程序/盒式磁带。使用Git时,我遵守了说明和 在本地Git

我有一个用Maven构建的Java应用程序,在本地PC上运行。我的服务器使用Eclipse和Apache/Tomcat。我的申请中有两个项目:

  • Java代码(JavaApp)
  • Web应用程序(WebApp)
  • 在我的webapppom中,我将JavaApp作为一个依赖项。这在我使用Eclipse和Apache/Tomcat的本地服务器上运行良好

    我有一个OpenShift帐户,并为Tomcat 7(JBoss EWS 2.0)创建了一个应用程序/盒式磁带。使用Git时,我遵守了说明和

  • 在本地Git上创建了OpenShift应用程序的克隆
  • 我从本地克隆中删除了SRC目录和pom.xml文件
  • 我使用Maven从我的WebApp项目创建了一个WAR文件。我通过查看WAR文件验证了我的JavaApp作为jar文件包含在WEB-INF/lib中
  • 我将WAR文件复制到克隆的webapps目录中
  • 我发布了git add。更新我的新文件
  • 我发出git commit-m“updated war file”命令来提交更改
  • 我发出gitpush命令将我的应用程序推送到OpenShift
  • 我的cmd窗口报告推送成功。然后我转到我的应用程序URL,发现jsp错误。按照我的应用程序的配置方式,它首先进入servlet,然后再被定向到index.jsp。我在页面上附加了一个对象来填充一些字段。错误是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>
    

    我的第一个问题是您的war(我指的是部署到OpenShift的war,而不是源代码)是否在本地工作?我怀疑您的战争不包含所有依赖项。 要在OpenShift中正常工作,您需要确保OpenShift具有所有依赖项。 当部署为war时,您可以将第三方JAR添加到

    src/main/webapp/WEB-INF/lib

    另一个选项是通过源部署,它允许您通过pom指示依赖关系

    您可以在以下OpenShift kb文章中看到所有详细信息:

    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)