简体   繁体   English

JRuby/Nokogiri 在 Mule ESB 3 中找不到 Java XML 库

[英]JRuby/Nokogiri can't find Java XML libs in Mule ESB 3

I've having troubles getting the JRuby gem Nokogiri to work.我在让 JRuby gem Nokogiri 工作时遇到了麻烦。 It works in jirb.它适用于jirb。 I'm running Java 6 on Mac OS X Lion.我在 Mac OS X Lion 上运行 Java 6。 JRuby is 1.6.3. JRuby 是 1.6.3。

Do you know how to solve this?你知道如何解决这个问题吗? Stacktrace:堆栈跟踪:

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)

DocumentBuilderFactory.newInstance(String, ClassLoader) is a new method in Java 6. It sounds like you have another jar in your classpath that contains an older version of this class. DocumentBuilderFactory.newInstance(String, ClassLoader)是 Java 6 中的一个新方法。听起来你的类路径中有另一个 jar 包含此 ZA2F2ED4F8EBC2CBB4C21A29DC40 的旧版本。 You can see a potential list of jars that might contain the class at jarfinder.com .您可以在 jarfinder.com 中查看可能包含 class 的jars的潜在列表。 If you're able to view your project in Eclipse, you could check what jars contain the DocumentBuilderFactory class by using the 'Open Type' dialog.如果您能够在 Eclipse 中查看您的项目,您可以使用“打开类型”对话框检查 jars 包含 DocumentBuilderFactory class 的内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM