我在让 JRuby gem Nokogiri 工作时遇到了麻烦。它适用于吉尔布。我在 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)
最佳答案
DocumentBuilderFactory.newInstance(String, ClassLoader)
是 Java 6 中的一个新方法。听起来您的类路径中有另一个 jar,其中包含此类的旧版本。您可以在jarfinder.com处看到可能包含该类的潜在jar列表。 。如果您能够在 Eclipse 中查看项目,则可以使用“打开类型”对话框检查哪些 jar 包含 DocumentBuilderFactory 类。
关于java - JRuby/Nokogiri 在 Mule ESB 3 中找不到 Java XML 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793665/