- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ClassNotFoundException beim Aufruf einer Executable
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:
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Bitte die vollstรคndige module.xml posten und die Skriptcodedefintion fรผr das Executable.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hier die module.xml:
<!DOCTYPE module SYSTEM "../lib/module.dtd">
<module>
<name>Menu-Editor</name>
<version>0.9.0</version>
<description>FirstSpirit Menu-Editor</description>
<components>
<project-app>
<name>Menu-Editor Project</name>
<description>Configuration for Menu-Editor</description>
<class>com.communicode.menueditor.firstspirit.ProjectHandler</class>
<configurable>com.communicode.menueditor.gui.ConfigurationApp</configurable>
<resources>
<resource>lib/menu-editor-module.jar</resource>
</resources>
</project-app>
<service>
<name>Menu-Editor Service</name>
<description>The Menu-Editor Service implemenation</description>
<class>com.communicode.menueditor.firstspirit.service.impl.MenuEditorServiceImpl</class>
</service>
</components>
<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>
Eigenschaften - Einblendelogik:
import de.espirit.firstspirit.store.access.pagestore.PageFolderImpl;
ele = context.getStoreElement();
if(ele instanceof PageFolderImpl)
context.setProperty("visible", true);
HTML:
//!executable-class
com.communicode.menueditor.gui.MenuEditorAddExecutable
Diese Version der module.xml ist richtig. (Benรถtigte Resources als <resource> Tag und scope=module definiert)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Es sollte klappen, wenn Sie ihre Executable als Public-Komponente defineren.
Also so etwas innerhalb von <components> hinzufรผgen:
<public>
<name>MenuEditorAddExecutable</name><class>com.communicode.menueditor.gui.MenuEditorAddExecutable</class></public>
und dann im Skript folgendes verwenden:
#! executable-class
MenuEditorAddExecutable
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alle Executable Klassen sind nun als "public" in der module.xml definiert.
Diese werden nun auch gefunden und kรถnnen aufgerufen werden.
Leider habe ich trotzdem noch ein ClassNotFoundException mit dieser Konfiguration der module.xml.
Ich hatte dem HelpDesk auch einen Fehler geschickt. Es wird wohl wahrscheinlich bald eine FS-Version geben,
bei der diese Fehler behoben sein sollten. Ich denke, ich warte auf diese Version.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
ich bekomme auch die ClassNotFoundException beim Aufruf meines Moduls. Die Version des FS-Servers ist 4.2.454.47473. Die Klasse im module.xml als Public-Komponente zu definieren hat leider nicht funktioniert. Habt ihr mittlerweile eine Lรถsung gefunden, bzw. gibt es ein Update, welches dieses Problem behebt?
Viele Grรผรe,
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Eine "ClassNotFoundException" kann verschiedene Ursachen haben. Es wรคre hilfreich, den Stacktrace und die FirstSpirit-Version zu posten.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alles klar, der Stacktrace sieht folgendermaรen aus:
Client Version: 4.2.454.47473
Java Version: 1.6.0_31 Sun Microsystems Inc.
FSVersion=4.2.454.47473#1843;JDK=1.6.0_31 32bit Sun Microsystems Inc.;OS=Windows 7 6.1 x86;Date=29.02.2012 08:35:26
de.espirit.firstspirit.access.script.SyntaxError: java.lang.ClassNotFoundException: com.qperior.firstspirit.email.SendWorkflowEmail
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:272)
at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1072)
at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1012)
at de.espirit.firstspirit.client.action.WorkflowAction.startWorkflow(WorkflowAction.java:432)
at de.espirit.firstspirit.client.action.WorkflowAction.startWorkflow(WorkflowAction.java:65)
at de.espirit.firstspirit.client.action.WorkflowAction.startWorkflow(WorkflowAction.java:74)
at de.espirit.firstspirit.client.action.WorkflowUtil.startWorkflow(WorkflowUtil.java:66)
at de.espirit.firstspirit.client.action.WorkflowMenuAction$WFStartAction.actionPerformed(WorkflowMenuAction.java:272)
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.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.qperior.firstspirit.email.SendWorkflowEmail
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:101)
at de.espirit.firstspirit.server.module.ModuleClassesLoader.findClass(ModuleClassesLoader.java:129)
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)
... 49 more
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Michael,
Wie sieht die module.xml aus?
Wie sieht der Skript-Aufruf im Workflow-Skript aus, von dem aus das Executable angesprochen werden soll?
Gruss
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
die module.xml sieht so aus:
<!DOCTYPE module SYSTEM "lib/module.dtd">
<module>
<name>SendMail Module</name>
<version>1</version>
<description>FirstSpirit Module SendMail</description>
<vendor>XXXX</vendor>
<components>
<library>
<name>SendMail</name>
<resources>
<resource scope="module">lib/SendMail.jar</resource>
</resources>
</library>
</components>
</module>
und der Skript-Aufruf so:
#! executable-class
com.company.firstspirit.email.SendWorkflowEmail
Die SendWorkflowEmail.java liegt im Package com.company.firstspirit.email.
Viele Grรผรe,
Michael

