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

标签 java ruby rubygems jruby mule

我在让 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/

相关文章:

Java文件上传非常慢

java - 错误 android.view.InflateException : Binary XML: Error inflating class Button caused by xml background

ruby - 使用 oAuth token 进行 API 调用

ruby-on-rails - 保留、队列和可视化

ruby-on-rails - 无法让 bundle exec 在生产中工作

rubygems - 使用 Watir 检索文本

java - 将 Servlet 生成的图像 src 中的图像保存到硬盘

java - Spring Security OAuth2 和 Ldap 对同一资源进行身份验证

ruby-on-rails - 作为可标记行为在数据库中创建重复的行

ruby-on-rails - 事件管理员,不能与父级同时创建嵌套资源