我创建了一个使用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"
}
}
}
所以,问题可能是
另外,servlet容器究竟是如何从数据库中提取数据的呢?我不理解这一点,因为我是Tomcat和Grails的新手
任何有关解决此问题的建议/方法都将受到高度赞赏。
答案 0 :(得分:0)
我认为您对http://yourdomain.com:8080/marchmock2/Tablev1class/salesjson进行了Ajax调用?
所以在网址中有三件重要的事情:
当你创建战争时,你将它重命名为marchmock2.war?如果战争的名称不同,例如marchmock2-0.1.war,则会出现正确的URL:
http://yourdomain.com:8080/marchmock2-0.1/Tablev1class/salesjson
因此,当您在javascript中添加一个链接时,请注意并使用grails标记库,g.createLink用于控制器和操作,g.createLinkTo用于资源。
希望我帮忙, 问候。