-
AutorBeiträge
-
14. März 2009 um 12:40 #1921whitenexxTeilnehmer
Hi zusammen!
Ich habe in meinem Grails-Projekt eine Image-Domain-Klasse und den entsprechenen Controller.
Nun habe ich das Grails-Plugin ImageTools 1.0.4 installiert und möchte damit Thumbnails aus den upgeloadeten Bildern generieren bzw. immer wenn ein Bild gespeichert wird, soll dazu ein Thumbnail generiert und gespeichert werden.Meine Image Domain Class sieht so aus:
[java]class Image {
byte[] data
//String namebyte[] thumbnail
static constraints = {
//name()
data()
}
}
[/java]Die „save“-Action im Image-Controller so:
[java]def save = {
def imageInstance = new Image(params)
def imageTool = new ImageTool()
imageTool.load(imageInstance.data)
imageTool.thumbnail(320)
imageInstance.thumbnail = imageTool.getBytes(„JPEG“) //Hier ist mein Problem!
if(!imageInstance.hasErrors() && imageInstance.save()) {
flash.message = „Image ${imageInstance.id} created“
redirect(action:show,id:imageInstance.id)
}
else {
render(view:’create‘,model:[imageInstance:imageInstance])
}
}
[/java]Wenn ich meine Grailsapplikation starte und ein Bild uploade bekomme ich aber folgende Fehlermeldung:
Code:Error 200: groovy.lang.MissingMethodException: No signature of method: ImageTool.getBytes() is applicable for argument types: (java.lang.String) values: {„JPEG“}
Servlet: grails
URI: /grailsproject/grails/image/save.dispatch
Exception Message: No signature of method: ImageTool.getBytes() is applicable for argument types: (java.lang.String) values: {„JPEG“}
Caused by: groovy.lang.MissingMethodException: No signature of method: ImageTool.getBytes() is applicable for argument types: (java.lang.String) values: {„JPEG“}
Class: GrailsAuthenticationProcessingFilter
At Line: [57]Aus der Fehlermeldung kann man schließen, dass angeblich die Methode getBytes() fehlt, oder? Aber eigentlich ist sie definitiv vorhanden. Ich habe extra im Quelltext des Plugins nachgeguckt und intelliJ (meine IDE) meckert auch nicht. Was kann ich nun tun, oder weiß jemand wo der Fehler liegt?
ACHTUNG, ich habe den Fehler gelöst!
Einfach die ImageTool.groovy editieren und die getBytes() Methode mit folgender Methode ersetzen:
[java] /**
* Returns the resulting image as a byte array.
*
* @param type file type for the image
* @see Possible JAI encodings
*/
public byte[] getBytes(String type) throws IOException {ByteArrayOutputStream bos = new ByteArrayOutputStream();
JAI.create(„encode“, result, bos, type, null);
return bos.toByteArray()
}
[/java]Danke schonmal im vorraus,
whitenexx -
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.