2014-07-17 19 views
5

Ho creato un'applicazione Grails che utilizza librerie highcharts e D3 js. L'origine dati per questi grafici è attualmente il server MySQL, che è in esecuzione sul mio PCProblema dei dati di implementazione di Grails

Quando l'app viene eseguita sul mio PC in modalità di sviluppo utilizzando l''app per eseguire grails', funziona perfettamente. Ora, voglio distribuire l'applicazione (modalità di produzione) e ho creato un file di guerra usando "grails war" e sto usando "Apache tomcat 7.0.54" come contenitore ma genera molti errori quando apro la mia app all'interno del modalità di gestione del server tomcat. Inoltre, la visualizzazione non è venuta correttamente - solo una discesa (invece di 4) e non i grafici sono in arrivo

Questo è l'errore che si osserva quando si clicca sui filtri:

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

E ' non è in grado di leggere i file JSON necessari per la visualizzazione. Penso che il problema principale si trovi in ​​Datasource.groovy. Codice per questo: modalità Dev (di lavoro):

development { 
     dataSource { 

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

modalità di produzione (file WAR) Non funziona:

Codice:

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

Quindi, il problema potrebbe essere

  • Codici errati in Datasource.groovy
  • Apache Tomcat non riesce a trovare il db mysql e quindi non può ottenere i dati relativi

Inoltre, esattamente come è il contenitore di servlet tirando i dati dal database? Non riesco a capire questo perché sono molto nuovo in Tomcat e Grails

Qualsiasi suggerimento/approccio per risolvere questo problema sarà molto apprezzato.

+0

'http: // localhost: 8080/marchmock2/Tablev1class/salesjson' - Questo nome del controller sembra strano - Tablev1class. –

+0

Come appare l'azione del controller Grails a cui viene fatto riferimento e serve la struttura JSON? – matcauthon

+0

Come si crea il collegamento in .gsp (vista) che usa il tuo js? –

risposta

0

Penso che tu abbia una chiamata Ajax a http://yourdomain.com:8080/marchmock2/Tablev1class/salesjson?

Così, alla url ci sono tre cose importanti:

  1. marchmock2: nome dell'applicazione di base
  2. Tablev1class: nome del controller di
  3. salesjson: nome d'azione

Quando si crea la guerra lo hai rinominato in marchmock2.war? Se il nome della guerra è diversa per esempio marchmock2-0.1.war l'url destra verrà:

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

Quindi, quando si inserisce un link nel tuo javascript fare attenzione e utilizzare la libreria graal tag, g.createLink per il controller e action e g.createLinkTo per le risorse.

Spero di aiutare, saluti.

Problemi correlati