2016-08-02 24 views
2

Ich versuche, Jsoup in meinem Google App Engine-Testprojekt mit Gaelyk zu arbeiten. Ich arbeite mit Grails an meinem Job, so dachte, es wäre ein Stück Kuchen mit Gaelyk zu spielen beginnt ... Nicht so schnell ...Groovy @Grab Generierung von java.lang.NoClassDefFoundError

Der Fehler tritt auf, wenn ich die folgenden:

@Grab('org.jsoup:jsoup:1.9.2') 

Projekt erstellt. Aber, den Zugriff auf die Seite, wo ich die HTML tue Schaben ich diesen Fehler:

HTTP ERROR 500

Problem accessing /.

Reason: org/apache/ivy/core/report/ResolveReport 
Caused by: java.lang.NoClassDefFoundError: org/apache/ivy/core/report/ResolveReport 
Caused by: java.lang.ClassNotFoundException: org.apache.ivy.core.report.ResolveReport 
Caused by: java.lang.ClassNotFoundExeption: org.apache.ivy.core.report.ResolveReport 

nicht viel Glück mit der Aktualisierung der build.gradle Datei, die ich mit Glide verwenden, das Projekt zu bauen .... Irgendwelche Ideen sein geschätzt !

+1

hinzugefügt ich nicht Ich denke, @Grab ist mit App Engine kompatibel, da es einige unartige ClassLoader-Magie verwendet. Das Hinzufügen der Abhängigkeit zu build.gradle-Datei ist der Weg zu gehen. kannst du deine build.gradle teilen? – musketyr

+0

Ich stimme @Grab zu. Ich entfernte es wie die Antwort unten vorgeschlagen! Vielen Dank! – Uthaman

Antwort

1

Wie Sie erwähnten Sie gleiten verwenden, sollten Sie dies in Ihrer build.gradle Datei:

plugins { 
    id "com.appspot.glide-gae" version "0.9.3" 
} 

dependencies { 
    compile "org.jsoup:jsoup:1.9.2" 
} 

In Ihrem Groovlet, alles, was Sie brauchen, ist:

import org.jsoup.* 

def doc = Jsoup.connect("http://<your-url-here>").get() 

Und Sie sind wieder im Geschäft

Update: Ich habe eine Probe Scraper in glide-Proben

+0

Vielen Dank! Das hat den Trick gemacht. Ich habe das @Grab entfernt und Build.gradle aktualisiert und es hat funktioniert! Ich hatte das so lange angeguckt, bis es mich verrückt machte! – Uthaman

+0

Ich bin froh, dass es funktioniert hat :) – kunal