Note that there are some explanatory texts on larger screens.

plurals
  1. POApache Commons SCXML - cannot find JexlContext
    text
    copied!<p>I'm new to SCXML and I cannot start even the simplest application. When I try to start it I get the following exception. But I have the library <code>commons-scxml-0.9.jar</code> with that class on classpath. Any ideas?</p> <pre><code>Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/jexl/JexlContext at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at org.apache.commons.scxml.env.AbstractStateMachine.&lt;init&gt;(AbstractStateMachine.java:103) at main.StateMachineImpl.&lt;init&gt;(StateMachineImpl.java:8) at main.Main.main(Main.java:6) Caused by: java.lang.ClassNotFoundException: org.apache.commons.jexl.JexlContext at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 15 more </code></pre> <p>Here is the code:</p> <p><code>Main class</code></p> <pre><code>public class Main { public static void main(String[] args) { StateMachineImpl stateMachineImpl = new StateMachineImpl(); stateMachineImpl.fireEvent(Event.START.getEvent()); stateMachineImpl.fireEvent(Event.STOP.getEvent()); } } </code></pre> <p><code>Event</code></p> <pre><code>public enum Event { START("event.start"), STOP("event.stop"); private String event; private Event(String event) { this.event = event; } public String getEvent() { return event; } public void setEvent(String event) { this.event = event; } } </code></pre> <p><code>StateMachineImpl</code></p> <pre><code>public class StateMachineImpl extends AbstractStateMachine { public StateMachineImpl() { super(StateMachineImpl.class.getClassLoader().getResource("state-machine-cfg.xml")); } public void off() { System.out.println("StateMachine is OFF"); } public void running() { System.out.println("StateMachine is RUNNING"); } } </code></pre> <p><code>state-machine-cfg.xml</code></p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" initialstate="off"&gt; &lt;state id="off"&gt; &lt;transition event="event.start" target="running" /&gt; &lt;/state&gt; &lt;state id="running"&gt; &lt;transition event="event.stop" target="off" /&gt; &lt;/state&gt; &lt;/scxml&gt; </code></pre> <p><strong>EDIT - solution:</strong> I have to add additional dependencies (I thought they would be loaded by Maven automatically).</p> <p><code>pom.xml dependencies</code></p> <pre><code>&lt;dependency&gt; &lt;groupId&gt;commons-scxml&lt;/groupId&gt; &lt;artifactId&gt;commons-scxml&lt;/artifactId&gt; &lt;version&gt;0.9&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;commons-logging&lt;/groupId&gt; &lt;artifactId&gt;commons-logging&lt;/artifactId&gt; &lt;version&gt;1.1.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;commons-jexl&lt;/groupId&gt; &lt;artifactId&gt;commons-jexl&lt;/artifactId&gt; &lt;version&gt;1.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;xalan&lt;/groupId&gt; &lt;artifactId&gt;xalan&lt;/artifactId&gt; &lt;version&gt;2.7.1&lt;/version&gt; &lt;/dependency&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload