2014-07-17 13 views
5

Tôi đã tạo một ứng dụng grails sử dụng các thư viện highcharts và D3 js. Nguồn dữ liệu cho các biểu đồ này hiện là máy chủ MySQL đang chạy trên máy tính của tôiVấn đề về dữ liệu triển khai Grails

Khi ứng dụng chạy trên PC của tôi ở chế độ phát triển bằng 'grails run-app', nó chạy hoàn toàn tốt. Bây giờ, tôi muốn triển khai ứng dụng (chế độ sản xuất) và đã tạo tệp chiến tranh bằng cách sử dụng "grails war" và đang sử dụng "Apache tomcat 7.0.54" làm vùng chứa của tôi nhưng nó ném nhiều lỗi khi mở ứng dụng của tôi bên trong chế độ quản lý của máy chủ tomcat. Ngoài ra, hiển thị được không đến đúng - chỉ có một thả xuống (thay vì 4) và không có đồ thị đang đến

Đây là lỗi mà được quan sát thấy khi nhấp vào các bộ lọc:

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

Đó là không thể đọc các tệp json cần thiết cho việc hiển thị. Tôi nghĩ rằng vấn đề chính nằm trong Datasource.groovy. Mã cho rằng: chế độ Dev (làm việc):

development { 
     dataSource { 

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

chế độ sản xuất (tập tin WAR) Không làm việc:

Code:

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" 
      } 
     } 
    } 

Vì vậy, vấn đề có thể là

  • Mã không chính xác trong Datasource.groovy
  • Apache Tomcat không thể tìm thấy db mysql và do đó không thể có được các dữ liệu có liên quan

Ngoài ra, làm thế nào chính xác được servlet container kéo dữ liệu từ cơ sở dữ liệu? Tôi không hiểu điều này vì tôi rất mới trong Tomcat và Grails

Bất kỳ đề xuất/cách tiếp cận nào để giải quyết vấn đề này sẽ được đánh giá cao.

+0

'http: // localhost: 8080/marchmock2/Tablev1class/salesjson' - Tên bộ điều khiển này có vẻ lạ - Tablev1class. –

+0

Hành động của bộ điều khiển grails trông như thế nào được tham chiếu và cấu trúc json servesthe? – matcauthon

+0

Cách bạn tạo liên kết trong .gsp (chế độ xem) sử dụng js của bạn? –

Trả lời

0

Tôi nghĩ bạn có cuộc gọi Ajax tới http://yourdomain.com:8080/marchmock2/Tablev1class/salesjson?

Vì vậy, trong url có ba điều quan trọng:

  1. marchmock2: tên ứng dụng cơ sở
  2. Tablev1class: tên của điều khiển
  3. salesjson: tên của hành động

Khi bạn tạo cuộc chiến bạn đổi tên nó thành marchmock2.war? Nếu tên của chiến tranh là khác nhau ví dụ marchmock2-0.1.war url đúng sẽ đến:

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

Vì vậy, khi bạn đặt một liên kết trong javascript của bạn làm cho sự chú ý và sử dụng thư viện grails thẻ, g.createLink cho điều khiển và hành động và g.createLinkTo cho tài nguyên.

Hy vọng tôi trợ giúp, liên quan.

Các vấn đề liên quan