Annyce Davis

ones and zeros

  • Home
  • Public Speaking
  • About Me
  • Courses
  • Life

Grails: Displaying messages from messages.properties in Quartz Job

December 16, 2013 by Annyce Davis Leave a Comment

When working with Quartz Jobs, you may want to take advantage of Strings that are located in the messages.properties file.   In order to do this, you need to get a reference to the messageSource bean and then call the getMessage() method with the name of the message that you want to use, whatever objects you need to pass to the message and finally the locale. (examples below)

def messageSource 
...
messageSource.getMessage('my.msg', [myObject] as Object[], Locale.US)

Without any parameters in the message:

def messageSource 
...
messageSource.getMessage('my.msg.no.params', null, Locale.US)

Grails: Cannot create JDBC driver of class ‘com.mysql.jdbc.Driver’ for connect URL ‘jdbc:hsqldb:mem:grailsDB’

January 20, 2012 by Annyce Davis Leave a Comment

Recently received the following error when attempting to deploy a new war file on my Glassfish server:

Cannot create JDBC driver of class ‘com.mysql.jdbc.Driver’ for connect URL ‘jdbc:hsqldb:mem:grailsDB’

The solution to the issue however, has nothing to do with MySQL and drivers whatsoever.  The problem was that I mistyped the environment name when creating the war file.

I typed grails rstaging war instead of grails staging war.  This is just another example of extremely useful error messages that I’ve encountered while developing for Grails.

Storing JSON in External EhCache Server

July 11, 2011 by Annyce Davis Leave a Comment

If you would like to store JSON data in an external EhCache Server you would need to use either REST or SOAP calls.  The below example uses REST calls and the HTTPBuilder library.  It assumes that you have your EhCache Server running at the following location:
http://localhost:8080/ehcache/rest.

The name of the cache that I’m using in this example is just sampleCache.

def getCachedItem(key) {
def uri = "http://localhost:8080/ehcache/rest/sampleCache/"
def restClient = new RESTClient(uri)

def res
try {
res = restClient.get(path:key)
}
catch (Exception e) {
log.error("Error retrieving item from cache for this key: $key")
}

return res?.data
}

def putCachedItem(key, html) {
def url = "http://localhost:8080/ehcache/rest/sampleCache/"

try {
def json = html as grails.converters.JSON

def http = new HTTPBuilder(url)
http.request(Method.PUT) { req ->
uri.path = key
send('application/json', grails.converters.JSON.parse(json?.toString()))

response.'201' = { resp ->
log.info("success in adding item to cache: ${resp.status}")
}

response.success = { resp, object ->
log.info("success in adding item to cache: ${resp.status}")
}

response.failure = { resp ->
log.error("error adding item to cache: ${resp.statusLine}")
}
}
}
catch (Exception e) {
log.error("Error setting the cache for this key: $key")
}
}

Removing jar files from your Grails war

June 13, 2011 by Annyce Davis Leave a Comment

Recently I encountered a situation where a plugin was bringing in a version of a jar file that was causing my application to misbehave.  In order to fix this issue I had to remove the errant jar file from the final build.  This is the code that you can use to do that.  You have to place this code snippet in your BuildConfig.groovy.  Hope this helps someone else.

grails.war.resources = { stagingDir ->
delete(file:"${stagingDir}/WEB-INF/lib/<name>.jar")
}
« Previous Page
Next Page »

Follow Me

What engineering leaders need to know from this year’s Google I/O

I didn't intentionally aim to create a rhyming title, but there you have it. Each year, I look forward to Google I/O like a kid going back to school. This year … [Read More...]

Talk: The Real MVP

You have an idea for a new app. You've secured buy-in from the business. What's next? The MVP. But what does it take to ship a new app these days? What are the … [Read More...]

Categories

  • Android (55)
  • Career (2)
  • Communication (4)
  • Flutter (1)
  • Git (4)
  • Gradle (4)
  • Grails (23)
  • Java (8)
  • JavaScript (6)
  • Kotlin (17)
  • Life (4)
  • Public Speaking (23)
  • RxJava (1)
  • Software Development (7)
  • Twitter (3)
  • Uncategorized (11)
  • Video Course (5)

Copyright © 2023 · Beautiful Pro Theme on Genesis Framework · WordPress · Log in