2014-07-17 26 views
5

Stworzyłem aplikację grails, która wykorzystuje highcharts i biblioteki D3 js. Źródłem danych dla tych wykresów jest obecnie serwer MySQL, który jest uruchomiony na moim komputerzeWydanie danych dotyczących wdrażania Grails

Gdy aplikacja jest uruchamiana na moim komputerze w trybie programistycznym za pomocą "grails run-app", działa idealnie. Teraz chcę wdrożyć aplikację (tryb produkcji) i utworzyłem plik wojenny używając "grails war" i używam "Apache tomcat 7.0.54" jako mojego kontenera, ale powoduje on wiele błędów, gdy otwieram aplikację wewnątrz tryb menedżera serwera tomcat. Także wizualizacja nie będzie się prawidłowo - tylko jedną listę rozwijaną (zamiast 4) i żadne wykresy idą

Jest to błąd, który jest obserwowany po kliknięciu na filtrach:

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

Jest nie jest w stanie odczytać plików json potrzebnych do wizualizacji. Myślę, że główny problem leży w Datasource.groovy. Kodeks że: trybie Dev (pracy):

development { 
     dataSource { 

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

trybie produkcyjnym (plik WAR) Nie działa:

Kod:

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

Tak, problem może być

  • Błędne kody w Datasource.groovy
  • Apache Tomcat nie można znaleźć db mysql i stąd nie można uzyskać odpowiednie dane

Ponadto, jak dokładnie jest kontener serwletów wyciągając dane z bazy danych? Nie rozumiem tego, ponieważ jestem bardzo nowy w Tomcat i Grails

Wszelkie sugestie/podejścia do rozwiązania tego problemu będą bardzo cenne.

+0

'http: // localhost: 8080/marchmock2/Tablev1class/salesjson' - Ta nazwa kontrolera wydaje się dziwna - Tablev1class. –

+0

W jaki sposób wygląda działanie kontrolera Grailsa? – matcauthon

+0

Jak utworzyć link w .gsp (view), który używa twojego js? –

Odpowiedz

0

Myślę, że masz połączenie Ajax do http://yourdomain.com:8080/marchmock2/Tablev1class/salesjson?

Więc w url istnieją trzy ważne rzeczy:

  1. marchmock2: podstawa nazwa aplikacji
  2. Tablev1class: nazwa kontrolera
  3. salesjson: nazwa akcji

Podczas tworzenia wojna zmieniła nazwę na marchmock2.war? Jeśli nazwa wojny jest inna na przykład marchmock2-0.1.war prawo url przyjdzie:

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

Więc kiedy można umieścić link w waszym Javascript uczynić uwagę i korzystania z biblioteki tag Grails, g.createLink dla kontrolera i akcji oraz g.createLinkTo dla zasobów.

Mam nadzieję, że pomogę, pozdrowienia.