2015-02-23 132 views
0

我想知道如何配置我的spring mvc配置xml文件来连接到openshiftpostgresql9.2数据库。我已经对路径.openshift/config目录下的tomcat配置文件进行了更改。 只是想知道如何从openshift tomcat齿轮上部署的spring mvc应用程序连接到openshift postgresql 9.2。 每次我上部署openshift tomcat的战争,我得到错误:在OpenShift Tomcat上部署后无法运行Spring MVC Web应用程序?

org.apache.jasper.JasperException: Unable to compile class for JSP 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:672) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) 
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1201) 
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:986) 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:851) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:620) 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

根源

java.util.NoSuchElementException 
java.util.ArrayList$Itr.next(ArrayList.java:834) 
org.apache.jasper.compiler.Validator$ValidateVisitor.getJspAttribute(Validator.java:1385) 
org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1262) 
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:876) 
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1538) 
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2377) 
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2429) 
org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:895) 
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1538) 
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2377) 
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2429) 
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2435) 
org.apache.jasper.compiler.Node$Root.accept(Node.java:474) 
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2377) 
org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1841) 
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217) 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) 
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1201) 
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:986) 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:851) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:620) 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

会是什么这样做的原因?每当我用本地数据库连接在本地运行这场战争时,它运行良好,但无法得到当我在openshift tomcat上部署时会发生什么?

.openshift/config server.xml我下GlobalNamingResources标签具有代码:

<Resource name="jdbc/postgresqldb" auth="Container" type="javax.sql.DataSource" 
username="${env.OPENSHIFT_POSTGRESQL_DB_USERNAME}"  password="${env.OPENSHIFT_POSTGRESQL_DB_PASSWORD}" 
url="jdbc:postgresql://${env.OPENSHIFT_POSTGRESQL_DB_HOST}:${env.OPENSHIFT_POSTGRESQL_DB_PORT}/${env.OPENSHIFT_APP_NAME}" 
driverClassName="org.postgresql.Driver" initialSize="5" maxWait="5000" 
maxActive="120" maxIdle="5" validationQuery="select 1" 
poolPreparedStatements="true"> 
</Resource> 

,并根据上下文XML .openshift/config context.xml是:

<ResourceLink name="jdbc/postgresqldb" global="jdbc/postgresqldb" type="javax.sql.DataSource"/> 

,并在我的Spring MVC servlet-context.xml是:

<beans:bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <beans:property name="jndiName" value="java:comp/env/jdbc/postgresqldb"/> 
</beans:bean> 
+0

您能否提供您用于连接的代码示例? – 2015-02-23 20:26:52

+0

@ corey112358我提供了用于连接的代码..任何帮助?请致电 – ITGeek 2015-02-24 07:19:13

回答

0

检查您的JSP文件是否丢失或错误属性值在html标签内。

Spring MVC检查格式良好的html标签。如果你错过了填充任何属性或者这些属性有错误的值,它将不会运行,并会给你一条与JasperException相关的错误消息。

我建议使用Spring标记命名空间使用表单时:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 

<form:input type="text" class="form-control" placeholder="Login" maxlength="10" size="10" path="" name="login"/> 

Eclipse在这种情况下是非常有用的,因为如果事情是错了,它会告诉你。

+0

,尝试提高您的答案 – ddb 2016-07-22 15:21:46

相关问题