Anonymous
Not applicable

FSM-Bibliothek: Spring Konfigurations-XML wird nicht gefunden

Hallo FS-Community,

wir verwenden eine FSM-Bibliothek, um eine JAR-Library in FirstSpirit zur Verfügung zu stellen. Hiervon wird in einem Beanshell-Skript Gebrauch gemacht, um einen Suchagenten aufzurufen (nur zu eurer Info).

Die Konfiguration der Klassen im JAR geschieht mittels Spring (bei uns application.xml). Diese XML-Datei liegt unter dem root-Verzeichnis des JAR:

de/...
ext/...
application.properties
application.xml

Die XML wird normal mit dem Befehl:
ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
gesucht und auf dem lokalen Testsystem auch gefunden.
Wird das ganze nun als FSM zusammengebaut, in der module.xml benannt und auf FirstSpirit deployed, so wirft er den Fehler:

ERROR 17.02.2011 14:26:40.528 {seID=21516} (de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : de.espirit.firstspirit.access.script.ExecutionException: Method Invocation de.edeka.internet.b2b.agent.SearchAgentImmobilie.main at line 3
de.espirit.firstspirit.access.script.ExecutionException: Method Invocation de.edeka.internet.b2b.agent.SearchAgentImmobilie.main at line 3
at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:120)
at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:88)
...
at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:36)
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [application.xml]; nested exception is java.io.FileNotFoundException: class path resource [application.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at de.edeka.internet.b2b.agent.SearchAgentImmobilie.main(SearchAgentImmobilie.java:87)
...
at bsh.This.invokeMethod(Unknown Source)
at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:111)
... 16 more
Caused by: java.io.FileNotFoundException: class path resource [application.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:158)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)
... 47 more

Wir haben parallel eine FSM-WebApp, die eine vergleichbare Struktur aufweist. Dort funktioniert das Finden der application.xml einwandfrei.
Die Pfadangebe wurde bereits zu "/applicaiton.xml" geändert, es wurde versucht die XML ins FSM auszulagern und extra in der module.xml anzugeben. Alles mit dem gleichen Effekt: sie wird nicht gefunden!


Vielleicht ist bereits jemand auf das gleiche Problem gestoßen und hat eine Lösung gefunden. Aktuell ist dieses Problem ein ziemlicher Blocker!

Viele Grüße aus Hamburg!

0 Kudos
13 Replies

Hallo Herr Pfeiler,

leider kommt bei Ihrem Beispiel eine Security Exception von Java.

Auf einer älteren FirstSpirit Version funktioniert es problemlos.

Meine Version: FSVersion=4.2.446.45868#2395;JDK=1.6.0_22 32bit

Viele Grüße

Martin Dirlewanger

0 Kudos

Bitte mal in der Admni-Konsole den Haken "Alle Rechte" für das Modul aktivieren.

Peter
0 Kudos

Hallo Herr Jodeleit,

vielen Dank für die Info. Habe die Auswahl quasi übersehen.

Viele Grüße

Martin Dirlewanger

0 Kudos

Wer immer hier drüber stolpert: Im Code Beispiel oben wird der classloader nicht korrekt zurück auf den alten Wert sonder einfach auf null gesetzt.

Sieh hier: Re: Hibernate in FS-Service

0 Kudos