- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 SCXML 的新手,即使是最简单的应用程序我也无法启动。当我尝试启动它时,出现以下异常。但是我在类路径上有包含该类的库 commons-scxml-0.9.jar
。有什么想法吗?
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.<init>(AbstractStateMachine.java:103)
at main.StateMachineImpl.<init>(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
代码如下:
主类
public class Main {
public static void main(String[] args) {
StateMachineImpl stateMachineImpl = new StateMachineImpl();
stateMachineImpl.fireEvent(Event.START.getEvent());
stateMachineImpl.fireEvent(Event.STOP.getEvent());
}
}
事件
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;
}
}
StateMachineImpl
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");
}
}
状态机-cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0"
initialstate="off">
<state id="off">
<transition event="event.start" target="running" />
</state>
<state id="running">
<transition event="event.stop" target="off" />
</state>
</scxml>
编辑 - 解决方案:我必须添加额外的依赖项(我认为它们会由 Maven 自动加载)。
pom.xml 依赖
<dependency>
<groupId>commons-scxml</groupId>
<artifactId>commons-scxml</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-jexl</groupId>
<artifactId>commons-jexl</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.7.1</version>
</dependency>
最佳答案
添加commons-jexl.jar
也到 CLASSPATH。按项目pom.xml
在 0.9 版本中你还需要(不包括传递依赖):
commons-logging
commons-digester
commons-beanutils
commons-el
关于java - Apache Commons SCXML - 找不到 JexlContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8286760/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!