Hi,
just a quick response to
On Fri, Aug 3, 2012 at 8:21 AM, harish suvarna <[email protected]> wrote:
> So I went and unzipped the
> org.apache.stanbol.launchers.full-0.10.0-incubating-SNAPSHOT.jar.
> In this all the rest of the enhancers (keywordextraction, langetect..etc)
> are present in the resources/bundles/26 folder. But my new
> cn_keywordextraction engine is not there. I did add cn_keywordextraction to
> enhancer/engines/pom.xml also. cn_keywordextraction is currently in
> enahncer/egines folder of my stanbol trunk.
>
Unless you do not add you Engine to the Enhancer BundleList or dirctly
to the list of the Bundles of the used launcher it is expected that
your EnhancementEngine is NOT included in
> org.apache.stanbol.launchers.full-0.10.0-incubating-SNAPSHOT.jar.
When you install your engine the files are only copied to the file
structure under "{stanbol-working-dir}/stanbol" and NOT added the the
launcher jar.
For knowing what is included in the bundle of your engine you need to
inspect your engines jar file. you can find this under
{project-dir-of-your-engine}/target/org.apache.stanbol.enhancer.engine.cn_keywordextraction-0.10.0-incubating-SNAPSHOT.jar
> I did mvn clean install and was expecting to see my cn_keywordextraction
> listed in the resources/bundles/26 folder of the stanbol launcher jar. But
> it is not there.
>
I assume resources/bundles/25
The reason why you find all the jars of the engines in that folder is
because they are defined with startlevel 25 in
http://svn.apache.org/repos/asf/incubator/stanbol/trunk/enhancer/bundlelist/src/main/bundles/list.xml
and the Full Launcher has a dependency to this Bundle List
http://svn.apache.org/repos/asf/incubator/stanbol/trunk/launchers/full/pom.xml
> Caused by: java.io.FileNotFoundException: Not found
> paoding-analysis.properties in classpath.
> at
> net.paoding.analysis.knife.PaodingMaker.loadProperties(PaodingMaker.java:187)
> at net.paoding.analysis.knife.PaodingMaker.getProperties(Paodi
Can you check of the "paoding-analysis.properties" is contained within
the bundle (jar file) of your engine.
best
Rupert
> The full stack is
> ======
>
> org.apache.stanbol.enhancer.servicesapi.ChainException: Enhancement Chain
> failed because of required Engine 'cn_dbpediaKeyword' failed with Message:
> Unable to process ContentItem
> '<urn:content-item-sha1-dce6ae44c5619bdeb37fc86e0377e735a44109bd>' with
> Enhancement Engine 'cn_dbpediaKeyword' because the engine was unable to
> process the content (Engine class:
> org.apache.stanbol.enhancer.engines.cn_keywordextraction.engine.CN_KeywordLinkingEngine)(Reason:
> java.io.FileNotFoundException: Not found paoding-analysis.properties in
> classpath.)!
> at
> org.apache.stanbol.enhancer.jobmanager.event.impl.EventJobManagerImpl.enhanceContent(EventJobManagerImpl.java:151)
> at
> org.apache.stanbol.enhancer.jersey.resource.AbstractEnhancerResource.enhance(AbstractEnhancerResource.java:233)
> at
> org.apache.stanbol.enhancer.jersey.resource.AbstractEnhancerUiResource.enhanceFromForm(AbstractEnhancerUiResource.java:126)
> 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
> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
> at
> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
> at
> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> at
> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
> at
> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
> at
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> at
> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
> at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1483)
> at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1414)
> at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1363)
> at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1353)
> at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:414)
> at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
> at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
> at
> org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
> at
> org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
> at
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
> at
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> at
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:78)
> at
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> at
> org.apache.stanbol.commons.httpqueryheaders.impl.QueryHeadersFilter.doFilter(QueryHeadersFilter.java:75)
> at
> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(FilterHandler.java:88)
> at
> org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:76)
> at
> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:47)
> at
> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> at
> org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
> at
> org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
> at
> org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:326)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> Caused by: net.paoding.analysis.exception.PaodingAnalysisException:
> java.io.FileNotFoundException: Not found paoding-analysis.properties in
> classpath.
> at
> net.paoding.analysis.knife.PaodingMaker.getProperties(PaodingMaker.java:145)
> at
> net.paoding.analysis.analyzer.PaodingAnalyzer.init(PaodingAnalyzer.java:70)
> at
> net.paoding.analysis.analyzer.PaodingAnalyzer.<init>(PaodingAnalyzer.java:59)
> at
> net.paoding.analysis.analyzer.PaodingAnalyzer.<init>(PaodingAnalyzer.java:52)
> at
> org.apache.stanbol.enhancer.engines.cn_keywordextraction.engine.CN_KeywordLinkingEngine.tokenizeTextByPaoding(CN_KeywordLinkingEngine.java:413)
> at
> org.apache.stanbol.enhancer.engines.cn_keywordextraction.engine.CN_KeywordLinkingEngine.computeEnhancements(CN_KeywordLinkingEngine.java:389)
> at
> org.apache.stanbol.enhancer.jobmanager.event.impl.EnhancementJobHandler.processEvent(EnhancementJobHandler.java:259)
> at
> org.apache.stanbol.enhancer.jobmanager.event.impl.EnhancementJobHandler.handleEvent(EnhancementJobHandler.java:181)
> at
> org.apache.felix.eventadmin.impl.tasks.HandlerTaskImpl.execute(HandlerTaskImpl.java:88)
> at
> org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:221)
> at
> org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:110)
> at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
> Source)
> at java.lang.Thread.run(Thread.java:680)
> Caused by: java.io.FileNotFoundException: Not found
> paoding-analysis.properties in classpath.
> at
> net.paoding.analysis.knife.PaodingMaker.loadProperties(PaodingMaker.java:187)
> at net.paoding.analysis.knife.PaodingMaker.getProperties(Paodi
>
>
>
>
>
>
>
>
>
>
>
> ==================
>
>
> On Thu, Aug 2, 2012 at 10:04 PM, Rupert Westenthaler
> <[email protected]> wrote:
>>
>> HI,
>>
>> having to deal with problems like that is for sure one of the down
>> sides of OSGI. However exactly the feature causing this also allows
>> OSGI to use different versions of the same jar files in the same JVM -
>> something that can be really critical as it allows you to use
>> otherwise incompatible libraries.
>>
>> I assume that the "paoding.jar" is not a bundle, but a normal Jar
>> file. To have those dependencies available in OSGI they must be
>> embedded within the bundle (jar file) of your EnhancementEngine. To
>> embed dependencies you need to use the <Embed-Dependency> (see [1]
>> for docu).
>>
>> This is important as OSGI uses its own Classloader that only loads
>> Class files and resources from referenced bundles and embedded
>> resources. The unit tests are not affected by this as those use the
>> normal Java classloader.
>>
>> I hope this helps you in solving this problem. If not I would need
>> more information
>>
>> * groupID:artifactID:version of "paoding.jar"
>>
>> * the exact reason of the reported exception
>>
>> > (Reason: java.io.FileNotFoundException: Not found
>> > paoding-analysis.properties in classpath.)!
>> > at
>> > org.apache.stanbol.enhancer.jobmanager.event.impl.EventJobManagerImpl.enhanceContent(EventJobManagerImpl.java:151)
>> > at
>> > org.apache.stanbol.enhancer.jersey.resource.AbstractEnhancerResource.enhance(AbstractEnhancerResource.java:233)
>> > at
>> >
>>
>> This is only the part of the trace showing that the
>> EnhancementJobManager re-throws an exception of a failed engine.
>> At the end of this stacktrace there should be a "Caused by" that
>> directly refers to the position within your source code (or the used
>> framework) that fails to load the property.
>>
>> * The <plugin> configuration for the maven-bundle-plugin of your
>> pom.xml file would also help
>>
>> best
>> Rupert
>>
>> [1] http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html
>>
>>
>> On Fri, Aug 3, 2012 at 2:07 AM, harish suvarna <[email protected]> wrote:
>> > I have the paoding.jar file which contains a bunch of property files.
>> > But
>> > at run time Stanbol is unable to find the property files. It is able to
>> > find the jar file though.
>> > The error I see in execution is stanbol localhost:8080 window is
>> >
>> > org.apache.stanbol.enhancer.servicesapi.ChainException: Enhancement
>> > Chain failed because of required Engine 'cn_dbpediaKeyword' failed
>> > with Message: Unable to process
>> > ContentItem
>> > '<urn:content-item-sha1-14d54de33b47ab74b7ca6d60899baed9aac2159c>'
>> > with Enhancement Engine 'cn_dbpediaKeyword'
>> > because the engine was unable to process the content (Engine class:
>> >
>> > org.apache.stanbol.enhancer.engines.cn_keywordextraction.engine.CN_KeywordLinkingEngine)
>> > (Reason: java.io.FileNotFoundException: Not found
>> > paoding-analysis.properties in classpath.)!
>> > at
>> > org.apache.stanbol.enhancer.jobmanager.event.impl.EventJobManagerImpl.enhanceContent(EventJobManagerImpl.java:151)
>> > at
>> > org.apache.stanbol.enhancer.jersey.resource.AbstractEnhancerResource.enhance(AbstractEnhancerResource.java:233)
>> > at
>> >
>> >
>> > This problem does not occur in the junit testing when I run the mvn
>> > install
>> > command inside the engine folder.
>> > I appreciate your help in advance.
>> >
>> > -harish
>>
>>
>>
>> --
>> | Rupert Westenthaler [email protected]
>> | Bodenlehenstraße 11 ++43-699-11108907
>> | A-5500 Bischofshofen
>
>
--
| Rupert Westenthaler [email protected]
| Bodenlehenstraße 11 ++43-699-11108907
| A-5500 Bischofshofen