Balana "evaluate" 命令导致 NoClassDefFoundError

Balana "evaluate" command causing NoClassDefFoundError

我从这里得到了一个用于 balana 1.0.5 的罐子:
http://maven.wso2.org/nexus/content/groups/wso2-public/org/wso2/balana/org.wso2.balana/1.0.5/
我有一个没有配置的 pdp 实例,我试图向它传递一个示例 xacml 请求字符串,只是为了看看我是否可以获得输出,然后我可以为 PDP 提供一个策略配置 运行 ,但是调用 evaluate 时出现此错误。


Caused by: java.lang.NoClassDefFoundError: org/apache/xerces/util/SecurityManager
        at org.wso2.balana.utils.Utils.getSecuredDocumentBuilderFactory(Utils.java:107)
        at org.wso2.balana.Balana.<init>(Balana.java:215)
        at org.wso2.balana.Balana.getInstance(Balana.java:228)
        at org.wso2.balana.ctx.RequestCtxFactory.getXacmlRequest(RequestCtxFactory.java:173)
        at org.wso2.balana.ctx.RequestCtxFactory.getRequestCtx(RequestCtxFactory.java:87)
        at org.wso2.balana.PDP.evaluate(PDP.java:119)

我想知道我是否使用了错误的来源,或者我是否使用了不正确的来源。

  1. 这是使用 1.0.5 balana 的结果吗?
  2. 这是使用 jar 而不是源文件吗?
  3. 我是否应该使用 mvn 下载而不是浏览 wso2 maven 存储库?
  4. 我已经尝试追踪包含对 SecurityManager 的引用的 xercesimpl.jar,但是当我将其导入类路径时,它破坏了一些 w3c xml 东西,否则可以正常工作。是否有使用系统的 SecurityManager 而不是试图依赖 xerces 的 balana 版本?

我还尝试使用相同的 1.0.5 jar 加载 K-Market 样本,我得到了同样的错误,并再次使用 1.0.4 jar,但是如果我转到1.0.3 罐子。

  1. 是的,1.0.5 balana 包含 jar 中不存在的依赖项。
  2. 可能,但不太可能,因为源文件(假设它们相同)仍将包含相同的依赖项。
  3. 不知道。我还没有 100% 弄清楚 maven。
  4. 我也这么认为。当回溯到 balana 1.0.3 jar
  5. 时错误停止发生