Grails部署数据问题

use*_*624 5 deployment grails tomcat

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

当应用程序在我的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
Run Code Online (Sandbox Code Playgroud)

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

development {
        dataSource {

            url = "jdbc:mysql://localhost/marchmock2?useUnicode=yes&characterEncoding=UTF-8"
            username = "root"
            password = "root"
        }
Run Code Online (Sandbox Code Playgroud)

生产模式(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"
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

所以,问题可能是

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

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

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

小智 0

我认为您有一个 Ajax 调用http://yourdomain.com:8080/marchmock2/Tablev1class/salesjson

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

  1. Marchmock2:基础应用程序名称
  2. Tablev1class:控制器名称
  3. salesjson:操作名称

当您创建战争时,您将其重命名为 Marchmock2.war 吗?如果 war 的名称不同,例如 Marchmock2-0.1.war,则会出现正确的 url:

http://yourdomain.com:8080/marchmock2-0.1/Tablev1class/salesjson
Run Code Online (Sandbox Code Playgroud)

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

希望我能帮忙,问候。