【问题标题】:Scala and Tomcat -> NoClassDefFound Stringbuilder?Scala 和 Tomcat -> NoClassDefFound Stringbuilder?
【发布时间】:2009-09-27 15:23:03
【问题描述】:

当我在 tomcat 下运行我的 scala 应用程序时,我无法进行基本的字符串连接,并且我收到一条错误消息,指出没有为 StringBuilder 找到类定义。我在 windows 7(开发)和 ubuntu(生产)下运行,我不相信 java 1.4.x JDK 或 JRE 曾经安装在这两个系统上。

知道为什么

val html = "<p>" + request.getParameter("myParam") + "</p>"

不工作?

这很令人沮丧。

【问题讨论】:

  • 我怀疑(对不起,我错了),Scala 使用了自 1.5 以来添加的 StringBuilder,但 Tomcat 可能只能运行 1.4 代码(与 J2ME 运行 1.3 代码的方式相同)。您不需要安装 1.4 JDK,任何 Sun JDK(可能是任何 JDK)都可以用于较旧的 java 版本。在这种情况下,tomcat 运行你的代码就像没有 StringBuilder 的 1.4 代码一样。
  • 快速浏览一下就会发现人们似乎也有类似的问题:nabble.com/…。不幸的是,似乎还没有解决方案。
  • Tomcat 肯定指向 catalina.sh 中的 jdk6 jre。

标签: scala servlets tomcat6


【解决方案1】:

缺少的类是scala.StringBuilder 还是java.lang 中的StringBuilder?如果是前者,听起来很像您在运行应用时没有 scala-library.jar scala 库,应该将其添加到运行时类路径中。

【讨论】:

  • 在将 scala-library jar 包含在 tomcat libs 目录中之前,我无法运行任何 scala 应用程序。你是说图书馆设置比这更多吗?我错过了什么?
  • 从您的问题中不清楚您是尝试在 JDK1.4 还是 1.5 下运行它。你想用哪一个?
【解决方案2】:

你试过用-target:jvm-1.4编译吗?

【讨论】:

  • 原谅我的无知,但我为什么需要这样做呢?我在 1.5 下的 tomcat 上运行了常规的 Java 应用程序。
  • 如果 tomcat 正在运行 jvm 1.4,正如其他人所建议的那样,这应该会有所帮助。
  • 为什么 tomcat 会运行 jvm 1.4?我不希望它运行 jvm 1.4!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
相关资源
最近更新 更多