2010-10-25 2 views
0

Может кто-нибудь научить меня, как использовать Grape-include HtmlUnit в скрипте Groovy (1.7.5), чтобы он действительно работал? Вот что я делаю:Groovy, Grape и HtmlUnit

@Grapes([ 
    @Grab('net.sourceforge.htmlunit:htmlunit:2.8'), 
    @GrabExclude('xml-apis:xml-apis') 
]) 
import com.gargoylesoftware.htmlunit.* 

def client = new WebClient(BrowserVersion.FIREFOX_2) 
def page = client.getPage("http://www.google.pl/") 

и это исключение бросают:

com.gargoylesoftware.htmlunit.ObjectInstantiationException: unable to create HTML parser 
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.<init>(HTMLParser.java:515) 
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.<init>(HTMLParser.java:440) 
at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:328) 
at com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:304) 
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:134) 
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:101) 
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:447) 
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:330) 
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:387) 
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:372) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229) 
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) 
at scrap.run(scrap.gsh:9) 
at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:264) 
at groovy.lang.GroovyShell.run(GroovyShell.java:513) 
at groovy.lang.GroovyShell.run(GroovyShell.java:170) 
at groovy.lang.GroovyShell$run.call(Unknown Source) 
at groovy.ui.Console$_runScriptImpl_closure16.doCall(Console.groovy:890) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) 
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:151) 
at groovy.ui.Console$_runScriptImpl_closure16.doCall(Console.groovy) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:273) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) 
at groovy.lang.Closure.call(Closure.java:276) 
at groovy.lang.Closure.call(Closure.java:271) 
at groovy.lang.Closure.run(Closure.java:354) 
at java.lang.Thread.run(Thread.java:619) 

Заранее спасибо!

+0

Я пробовал его с версиями версии 2.4 и 2.6 HtmlUnit, и это все равно. Пожалуйста помоги!!! –

+1

OMG !!! maven-ant-tasks jar содержит устаревшую версию этих классов! Когда этот кошмар Jar подходит к концу? –

ответ

1

При использовании программы установки Groovy один из файлов, добавляемых в папку lib (и, таким образом, автоматически добавленный в путь к классам), составляет maven-ant-tasks. В этом содержатся классы, которые вызывают проблемы.

Решение: либо удалите это из папки lib, либо используйте zipped-дистрибутив Groovy, который не содержит эту библиотеку.

Смежные вопросы