我在 Excel 中有一个 Drools 决策表,规则中使用的一些字符串有“Á”字符。当我从这个决策表在 Guvnor 中构建规则包时,我在规则源中得到错误的字符。
例如,
在电子表格中 -> Área de Lazer|POR,
在内置的 drl 文件中 -> �rea de Lazer|POR
在这种情况下,有什么方法可以调整 Guvnor 以支持 UTF-8?有没有人遇到过类似的问题?
谢谢
@Geoffrey De Smet
你好,
我在 ExcelParser.java 中添加了以下代码:
WorkbookSettings ws = new WorkbookSettings();
ws.setEncoding("UTF-8");
Workbook workbook = Workbook.getWorkbook( inStream , ws);
我已经从 git-hub 成功构建了 drools 项目,但是当我尝试使用 maven 2.2.1 或 maven 3.0.3 构建 guvnor-webapp 来测试它时,我得到了同样的错误:
[错误] 致命错误 [信息] ------------------------------------------ ------------------------------ [信息] org/apache/commons/io/IOUtils org.apache.commons.io。 IOUtils [INFO] ---------------------------------------------- -------------------------- [INFO] 在 org.codehaus 跟踪 java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils。 mojo.gwt.AbstractGwtMojo.checkGwtUserVersion(AbstractGwtMojo.java:289) at org.codehaus.mojo.gwt.AbstractGwtMojo.getGwtUserJar(AbstractGwtMojo.java:251) at org.codehaus.mojo.gwt.shell.CompileMojo.compile(CompileMojo. java:268) 在 org.codehaus.mojo.gwt.shell.CompileMojo.doExecute(CompileMojo.java:255) 在 org.codehaus.mojo.gwt.shell.AbstractGwtShellMojo.execute(AbstractGwtShellMojo.java:119) 在 org.apache .maven.plugin.DefaultPluginManager。org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) 的 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) 的 executeMojo(DefaultPluginManager.java:490) .maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java :348) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 在 org.apache.maven 的 org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)。DefaultMaven.execute(DefaultMaven.java:138) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 在 org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method .invoke(Method.java:597) 在 org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 在 org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 在 org.codehaus.classworlds。 org.codehaus.classworlds.Launcher.main(Launcher.java:375) 上的 Launcher.mainWithExitCode(Launcher.java:430) 原因:java.lang。ClassNotFoundException: org.apache.commons.io.IOUtils at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader. java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) 在 org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java :255) 在 org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274) 在 org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) 在 java.lang.ClassLoader.loadClass(ClassLoader.java: 248)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 :307) 在 org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) 在 org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255) 在 org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm. java:274) 在 org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:248)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 :307) 在 org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) 在 org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255) 在 org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm. java:274) 在 org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:248)findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) at org.codehaus.classworlds.DefaultClassRealm.loadClass (DefaultClassRealm.java:255) 在 org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274) 在 org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) 在 java.lang.ClassLoader.loadClass(类加载器.java:248)findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) at org.codehaus.classworlds.DefaultClassRealm.loadClass (DefaultClassRealm.java:255) 在 org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274) 在 org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) 在 java.lang.ClassLoader.loadClass(类加载器.java:248)DefaultClassRealm.loadClass(DefaultClassRealm.java:274) at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) at java.lang.ClassLoader.loadClass(ClassLoader.java:248)DefaultClassRealm.loadClass(DefaultClassRealm.java:274) at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
对此的任何帮助将不胜感激!
谢谢!
PS 我已阅读自述文件,并按照描述进行。