2012-08-06 1 views
4

Я пытаюсь использовать батик с граалом, чтобы отобразить на SVG материал SVG на PNG.Батик с граалом, дающим саксофонное столкновение

Я получаю следующее сообщение об ошибке в IntelliJ при добавлении зависимостей в BuildConfig, а затем сказать IntelliJ, чтобы загрузить изменения:

/Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home/bin/java -Dgrails.home=/Applications/Dev/grails-2.1.0 -Dbase.dir=/Users/greg/Documents/development/git/liftyourgame-grails/webapp -Dtools.jar=/Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home/lib/tools.jar -Dgroovy.starter.conf=/Applications/Dev/grails-2.1.0/conf/groovy-starter.conf -Xmx512M -XX:MaxPermSize=192m -javaagent:/Applications/IntelliJ IDEA 11.app/plugins/Grails/lib/grails_rt.jar -Dprint.grails.settings=true -Dfile.encoding=UTF-8 -classpath /Applications/Dev/grails-2.1.0/lib/org.codehaus.groovy/groovy-all/jars/groovy-all-1.8.6.jar:/Applications/Dev/grails-2.1.0/dist/grails-bootstrap-2.1.0.jar org.codehaus.groovy.grails.cli.support.GrailsStarter --main org.codehaus.groovy.grails.cli.GrailsScriptRunner --conf /Applications/Dev/grails-2.1.0/conf/groovy-starter.conf help 

| Loading Grails 2.1.0 
| Configuring classpath 
| Error Error executing script Help: loader constraint violation: when resolving overridden method "org.apache.tools.ant.helper.ProjectHelper2$RootHandler.setDocumentLocator(Lorg/xml/sax/Locator;)V" the class loader (instance of org/codehaus/groovy/grails/cli/support/GrailsRootLoader) of the current class, org/apache/tools/ant/helper/ProjectHelper2$RootHandler, and its superclass loader (instance of <bootloader>), have different Class objects for the type org/xml/sax/Locator used in the signature (Use --stacktrace to see the full trace) 

IDEA hook: Grails not found! 
| Error java.lang.NullPointerException 
| Error  at org.jetbrains.groovy.grails.rt.Agent$2.run(Agent.java:88) 
| Error  at java.lang.Thread.run(Thread.java:680) 

Grails чистый дает аналогичный результат.

BuildConfig.groovy содержит среди прочего:

grails.project.dependency.resolution = { 
    // inherit Grails' default dependencies 
    inherits("global") { 
     excludes 'slf4j-log4j12', 'xml-apis', 'xalan', 'xml-apis-ext', 'commons-logging', 'commons-io' 
    } 
    log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' 
    checksums true // Whether to verify checksums on resolve 

    repositories { 
     inherits true // Whether to inherit repository definitions from plugins 
     grailsPlugins() 
     grailsHome() 
     grailsCentral() 
     mavenCentral() 
    } 
    dependencies { 
     compile "org.jadira.usertype:usertype.jodatime:1.9" 
     compile "org.imgscalr:imgscalr-lib:4.0" 
     compile("org.apache.xmlgraphics:batik-svg-dom:1.7") 
      { 
       excludes 'batik-xml', 'batik-dom', 'commons-javaflow', 
         'avalon-framework-api', 'avalon-framwork-impl', 
         'batik-css', 'batik-gvt', 'batik-script', 
         'slf4j-log4j12', 'xml-apis', 'xml-apis-ext', 'log4j', 'xercesImpl', 'xalan', 
         'antlr', 'commons-beanutils', 'commons-collections', 'commons-logging', 'xmlParserAPIs', 
         'ant', 'mondrian', 'groovy-all', 'saaj-api', 'servlet-api', 'spring-core', 'bsh', 
         'spring-beans', 'jaxen', 'persistence-api', 'jdtcore', 'bcmail-jdk16', 'bcprov-jdk16', 
         'bctsp-jdk16', 'bcmail-jdk14', 'bcprov-jdk14', 'bctsp-jdk14', 'xmlbeans' 
      } 

} 

ПОМ для батика-SVG-дом включает в себя некоторые из других батика банок, а также XML-интерфейсы и XML-Apis-доб. Мои исследования показали, что зависимости xml могут вызвать проблемы при граале, и поскольку они не требуются за пределами jdk 1.4, они были исключены.

Я также пытался отследить другие экземпляры org.xml.sax.Locator с помощью инструментов IntelliJs, но единственный найденный экземпляр находится в: /Applications/Dev/grails-2.1.0/lib/org.apache.ant /ant-launcher/jars/ant-launcher-1.8.2.jar!/org/apache/tools/ant/launch/Locator.class

Я также попробовал зависания на графиках, и я попытался удалить папка .grails, но я всегда получаю тот же результат.

Любые идеи, пожалуйста?

+0

это тоже меня озадачивает. – winstaan74

ответ

3

Проблема заключается в том, что Batik включает версию xml-apis, которая сталкивается с той, что теперь включена в JDK. (http://grails.1312388.n4.nabble.com/Problems-integrating-batik-with-grails-project-td4632728.html) Итак, это вопрос исключения «xml-apis», как вы уже сделали. Однако, поскольку у многих батиков Батика есть транзитивные зависимости от xml-apis, трудно заставить Grails исключить его. Вот что в конечном итоге работает для меня:

compile("org.apache.xmlgraphics:fop:0.94", 
      "org.apache.xmlgraphics:batik-transcoder:1.7", 
      "org.apache.xmlgraphics:batik-codec:1.7", 
      "org.apache.xmlgraphics:batik-awt-util:1.7", 
      "org.apache.xmlgraphics:batik-bridge:1.7", 
      "org.apache.xmlgraphics:batik-dom:1.7", 
      "org.apache.xmlgraphics:batik-gvt:1.7", 
      "org.apache.xmlgraphics:batik-svg-dom:1.7", 
      "org.apache.xmlgraphics:batik-svggen:1.7", 
      "org.apache.xmlgraphics:batik-util:1.7", 
      "org.apache.xmlgraphics:batik-xml:1.7", 
      "org.apache.xmlgraphics:batik-anim:1.7", 
      "org.apache.xmlgraphics:batik-css:1.7", 
      "org.apache.xmlgraphics:batik-ext:1.7", 
      "org.apache.xmlgraphics:batik-js:1.7", 
      "org.apache.xmlgraphics:batik-parser:1.7", 
      "org.apache.xmlgraphics:batik-script:1.7", 
      "org.apache.xmlgraphics:xmlgraphics-commons:1.2", 
      "commons-logging:commons-logging:1.0.4", 
      "org.apache.avalon.framework:avalon-framework-api:4.3.1", 
      "org.apache.avalon.framework:avalon-framework-impl:4.3.1", 
      "xalan:xalan:2.6.0", 
      "xml-apis:xml-apis-ext:1.3.04" 
    ){ 
     transitive = false 
    } 

Это в основном из белого списка баночки батика я хочу, чтобы включить. Поскольку transitive = false, транзитивные зависимости игнорируются.

Однако я до сих пор не могу заставить Батика работать - кажется, есть вторичная проблема, когда отсутствует org.apache.batik.dom.svg.SVGOMDocument, даже если требуемые банки, содержащие этот класс, развернуты в моя война.

Вы нашли другое рабочее решение?

+0

Вышеупомянутый ответ работает, но при запуске приложения с использованием «grails run-app» появляется исключение «class not found». Он отлично работает, используя «grails run-war». См. [Этот пост Nabble] (http://grails.1312388.n4.nabble.com/run-app-ClassNotFound-td4636356.html) для получения дополнительной информации о том, почему. – Tom

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