【问题标题】:JRuby/Nokogiri can't find Java XML libs in Mule ESB 3JRuby/Nokogiri 在 Mule ESB 3 中找不到 Java XML 库
【发布时间】:2011-07-22 17:19:09
【问题描述】:

我无法让 JRuby gem Nokogiri 工作。它适用于jirb。我在 Mac OS X Lion 上运行 Java 6。 JRuby 是 1.6.3。

你知道如何解决这个问题吗?堆栈跟踪:

INFO  2011-07-22 19:12:53,520 [Mule.app.deployer.monitor.1.thread.1] org.mule.module.launcher.DeploymentService: 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Started app 'muleesb3-1.0-SNAPSHOT'                 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

java.lang.NoSuchMethodError: javax.xml.parsers.DocumentBuilderFactory.newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/parsers/DocumentBuilderFactory;
    at nokogiri.XmlDocument.createNewDocument(XmlDocument.java:220)
    at nokogiri.XmlDocument.<init>(XmlDocument.java:96)
    at nokogiri.HtmlDocument.<init>(HtmlDocument.java:57)
    at nokogiri.NokogiriService$2.allocate(NokogiriService.java:239)
    at nokogiri.internals.HtmlDomParserContext.wrapDocument(HtmlDomParserContext.java:121)
    at nokogiri.internals.XmlDomParserContext.parse(XmlDomParserContext.java:209)
    at nokogiri.HtmlDocument.do_parse(HtmlDocument.java:89)
    at nokogiri.HtmlDocument.read_memory(HtmlDocument.java:117)
    at nokogiri.HtmlDocument$s$0$0$read_memory.call(HtmlDocument$s$0$0$read_memory.gen:65535)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:282)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:71)
    at org.jruby.ast.FCallManyArgsNode.interpret(FCallManyArgsNode.java:60)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:120)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:272)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:80)

【问题讨论】:

    标签: java ruby gem jruby mule


    【解决方案1】:

    DocumentBuilderFactory.newInstance(String, ClassLoader) 是 Java 6 中的新方法。听起来您的类路径中有另一个 jar,其中包含此类的旧版本。您可以在jarfinder.com 看到可能包含该类的 jar 列表。如果您能够在 Eclipse 中查看您的项目,您可以使用“打开类型”对话框检查哪些 jar 包含 DocumentBuilderFactory 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多