Menu

#59 Exception when using 'database' plugin - web application (tomcat)

2.1.0
closed
None
5
2025-09-06
2012-11-14
No

When webharvest is embedded in the web application running on tomcat and 'database' plugin is executed following exception is thrown:

java.lang.IllegalArgumentException: interface org.webharvest.runtime.database.ConnectionProxy is not visible from class loader
at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
at org.webharvest.runtime.database.StandaloneConnectionPool.createConnectionProxy(StandaloneConnectionPool.java:172)
at org.webharvest.runtime.database.StandaloneConnectionPool.getConnection(StandaloneConnectionPool.java:90)
at org.webharvest.runtime.processors.plugins.db.DatabasePlugin.obtainConnection(DatabasePlugin.java:44)
at org.webharvest.runtime.processors.plugins.db.AbstractDatabasePlugin.executePlugin(AbstractDatabasePlugin.java:87)
at org.webharvest.runtime.processors.WebHarvestPlugin.execute(WebHarvestPlugin.java:60)
at org.webharvest.runtime.processors.AbstractProcessor.run(AbstractProcessor.java:112)
at org.webharvest.runtime.processors.RunningStatusController.run(RunningStatusController.java:60)
at org.webharvest.runtime.processors.StoppedOrExitedProcessor.run(StoppedOrExitedProcessor.java:60)
at org.webharvest.runtime.processors.BodyProcessor$2.call(BodyProcessor.java:43)
at org.webharvest.runtime.processors.BodyProcessor$2.call(BodyProcessor.java:35)
at org.webharvest.runtime.ScraperContext.executeWithinNewContext(ScraperContext.java:165)
at org.webharvest.runtime.processors.BodyProcessor.execute(BodyProcessor.java:35)
at org.webharvest.runtime.processors.WebHarvestPlugin.executeBody(WebHarvestPlugin.java:128)
at org.webharvest.runtime.processors.plugins.variable.AbstractVariableModifierPlugin.executePlugin(AbstractVariableModifierPlugin.java:95)
at org.webharvest.runtime.processors.plugins.variable.SetVarPlugin.executePlugin(SetVarPlugin.java:52)
at org.webharvest.runtime.processors.WebHarvestPlugin.execute(WebHarvestPlugin.java:60)
at org.webharvest.runtime.processors.AbstractProcessor.run(AbstractProcessor.java:112)
at org.webharvest.runtime.processors.RunningStatusController.run(RunningStatusController.java:60)
at org.webharvest.runtime.processors.StoppedOrExitedProcessor.run(StoppedOrExitedProcessor.java:60)
at org.webharvest.runtime.processors.ConfigProcessor.execute(ConfigProcessor.java:45)
at org.webharvest.runtime.processors.AbstractProcessor.run(AbstractProcessor.java:112)
at org.webharvest.runtime.processors.RunningStatusController.run(RunningStatusController.java:60)
at org.webharvest.runtime.processors.StoppedOrExitedProcessor.run(StoppedOrExitedProcessor.java:60)
at org.webharvest.runtime.Scraper.execute(Scraper.java:72)
at org.webharvest.runtime.ScrapingHarvester.execute(ScrapingHarvester.java:116)
at org.webharvest.ioc.ScrapingInterceptor$1.execute(ScrapingInterceptor.java:84)
at org.webharvest.ioc.ScrapingInterceptor.invoke(ScrapingInterceptor.java:105)
at org.webharvest.ioc.ScrapingInterceptor.invoke(ScrapingInterceptor.java:79)

Discussion

  • Piotr Dyraga

    Piotr Dyraga - 2012-11-15

    The exception was caused by usage of inappropriate classloader - we have to use web application classloader to construct dynamic proxies for ConnectionProxy interface instead of using system classloader. Tomcat system classloader does not know anything about web application classes.

     
  • Piotr Dyraga

    Piotr Dyraga - 2012-11-15
    • status: open --> closed
     

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB