在run-app期间,第三方java类没有发现Groovy类异常

时间:2014-03-03 11:20:30

标签: java grails groovy

我们正在使用第三方工具(Snowbound docViewer),该工具有望执行应用程序的类文件,该文件作为参数传递给工具。但是这个工具只有在我们运行run-app时才能找到传递给它的类,它与war文件一起使用。但是,当war部署到独立的tomcat服务器时同样有效。可能是用于执行工具的类加载器与我们的应用程序不同。

我正在尝试加载类

 File file = Locator.getClassSource(DocumentContentHandler)
 def classLoader = BootStrap.class.classLoader.rootLoader
 String path = Locator.fileToURL(file)
 classLoader.addURL(new URL(path +'com/mycompany/snowbound/DocumentContentHandler.class'));

生成的Url值为:

"file:/Users/amitjain/projects/mycompany/target/classes/com/mycompany/snowbound/DocumentContentHandler.class" 

我得到的例外是

java.lang.ClassNotFoundException: com.mycompany.snowbound.DocumentContentHandler
at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:175)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:147)
at org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:51)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at com.snowbound.clientcontentserver.RetrievalProcessorConfigurator.initContentClass(RetrievalProcessorConfigurator.java:977)

即使我执行以下操作,也会发现类未找到异常。

Class.forName('com.mycompany.snowbound.DocumentContentHandler', true, BootStrap.class.classLoader.parent)

我可以在这做什么?谢谢,

0 个答案:

没有答案