Grails部署数据问题

时间:2014-07-17 15:37:19

标签: tomcat grails deployment

我创建了一个使用highcharts和D3 js库的grails应用程序。这些图表的数据源当前是MySQL服务器,它在我的PC上运行

当使用' grails run-app'在开发模式下在我的电脑上运行该应用时,它运行得非常好。 现在,我想部署应用程序(生产模式),并使用" grails war"创建了一个war文件。并使用" Apache tomcat 7.0.54"作为我的容器,但是当我在tomcat服务器的管理器模式中打开我的应用程序时,它会引发许多错误。 此外,可视化效果不正确 - 只有一个下拉列表(而不是4个),没有图表出现

这是单击过滤器时观察到的错误:

GET http://localhost:8080/marchmock2/Tablev1class/salesjson 404 (Not Found) d3.v3.min.js:1
Uncaught SyntaxError: Unexpected token u (index):409

根本无法读取可视化所需的json文件。 我认为主要问题在于Datasource.groovy。 代码: 开发模式(工作):

development {
        dataSource {

            url = "jdbc:mysql://localhost/marchmock2?useUnicode=yes&characterEncoding=UTF-8"
            username = "root"
            password = "root"
        }

生产模式(WAR文件) 不工作:

代码:

production {
        dataSource {
            dbCreate = "update"
            url = "jdbc:mysql://localhost/marchmock2?useUnicode=yes&characterEncoding=UTF-8"
            username = "root"
            password = "root"
            properties {
               maxActive = -1
               minEvictableIdleTimeMillis=1800000
               timeBetweenEvictionRunsMillis=1800000
               numTestsPerEvictionRun=3
               testOnBorrow=true
               testWhileIdle=true
               testOnReturn=false
               validationQuery="SELECT 1"
               jdbcInterceptors="ConnectionState"
            }
        }
    }

所以,问题可能是

  • Datasource.groovy中的错误代码
  • Apache Tomcat找不到mysql db,因此无法获取相关数据

另外,servlet容器究竟是如何从数据库中提取数据的呢?我不理解这一点,因为我是Tomcat和Grails的新手

任何有关解决此问题的建议/方法都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我认为您对http://yourdomain.com:8080/marchmock2/Tablev1class/salesjson进行了Ajax调用?

所以在网址中有三件重要的事情:

  1. marchmock2:基本申请名称
  2. Tablev1class:控制器名称
  3. salesjson:行动名称
  4. 当你创建战争时,你将它重命名为marchmock2.war?如果战争的名称不同,例如marchmock2-0.1.war,则会出现正确的URL:

    http://yourdomain.com:8080/marchmock2-0.1/Tablev1class/salesjson
    

    因此,当您在javascript中添加一个链接时,请注意并使用grails标记库,g.createLink用于控制器和操作,g.createLinkTo用于资源。

    希望我帮忙, 问候。