Search the FirstSpirit Knowledge Base
Hallo,
ich habe ein Modul mit einer ExecutableClass die ich im Context-Menü aufrufe.
Bei dieser Konfiguration der Libraries in der module.xml :
<module>
.....
<resources>
<resource scope="module" >lib/jtds-1.2.5.jar</resource>
<resource scope="module" >lib/openjpa-all-2.0.0.jar</resource>
<resource scope="module" >lib/menu-editor-module.jar</resource>
</resources>
</module>
bekomme ich diesen Fehler, wenn ich die Executable ausführen will:
FSVersion=4.2.437.44763#1597;JDK=1.6.0_24 32bit Sun Microsystems Inc.;OS=Windows 7 6.1 x86;Date=16.06.2011 17:09:56
de.espirit.firstspirit.access.script.SyntaxError: java.lang.ClassNotFoundException: com.communicode.menueditor.gui.MenuEditorAddExecutable
at de.espirit.firstspirit.server.script.ClassCallerEngine.getExecutable(ClassCallerEngine.java:46)
at de.espirit.firstspirit.common.ScriptUtil.getExecutable(ScriptUtil.java:68)
at de.espirit.firstspirit.store.access.templatestore.ScriptImpl.getExecutable(ScriptImpl.java:270)
at de.espirit.firstspirit.client.action.ScriptMenuAction$ScriptAction.actionPerformed(ScriptMenuAction.java:216)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:130)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:115)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:108)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.communicode.menueditor.gui.MenuEditorAddExecutable
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at de.espirit.firstspirit.server.module.ExtendedUrlClassLoader.findClass(ExtendedUrlClassLoader.java:78)
at de.espirit.firstspirit.server.module.ModuleClassesLoader.findClass(ModuleClassesLoader.java:132)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at de.espirit.firstspirit.server.module.MutableClassLoader.loadClass(MutableClassLoader.java:121)
at de.espirit.firstspirit.server.script.ClassCallerEngine.getExecutable(ClassCallerEngine.java:42)
... 44 more
siehe dazu auch:
> scope="module"
So kann das auch nicht funktionieren. Deshalb hatte Christoph (s.o.) ja auch vorgeschlagen ein Public zu definieren und dann auch im Skript den Aufruf zu ändern.
OT: Der MailService der von FirstSpirit bereitgestellt wir, reicht für Ihren Anwendungsfall nicht aus?
Auf einem anderen System mit der Version 4.2.219.38784 funktioniert der Aufruf wie von mir gepostet. Wie ich in meinem ersten Beitrag bereits geschrieben habe, hat die Lösung von Christoph bei mir leider nicht funktioniert...
Das kann durchaus sein, dass in älteren Versionen die "scope" Auswertung fehlerhaft war. Eine modullokaldefinierte Library (scope="module") kann aus einem globalen Kontext heraus (in ihrem Fall Aufruf eines Executable aus Workflow-Skript) NICHT angesprochen werden. Das ist erwartungskonform, dass das nicht funktioniert.
Den Hinweis, dass das nicht funktioniert, hatte ich gesehen. Das muss aber funktionieren, weshalb ich Sie bitten würde, das noch einmal zu konfigurieren und die Konfiguration und den dabei auftretenden Fehler zu posten.