gpt4 book ai didi

scala - 项目在 IntelliJ 中编译良好,Tomcat 说 java.lang.NoClassDefFoundError : my/package/name/blah

转载 作者:行者123 更新时间:2023-12-04 03:08:47 24 4
gpt4 key购买 nike

我的项目在 IntelliJ 中编译得很好,它是一个用 scala 编写的简单 spring-mvc。

当我使用 tomcat 运行它时出现此错误:

java.lang.NoClassDefFoundError: org/example/houses/SomeClassNameHere

以上不是我的图书馆的确切名称。

我的 Controller 看起来像:
package com.example.scalacms.web.controllers

import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.{ResponseBody, RequestMapping}
import org.example.house

@Controller
class HomeController {
var houses: Houses = _


@RequestMapping(Array("/"))
@ResponseBody
def index: String = {
"hello, world!"
}

}

我很困惑,因为它在 IntelliJ 中编译得很好,它在智能感知等中提取了我所有的类。

可能是tomcat在我的类路径中没有库吗?我正在使用爆炸的神器。

我在输出窗口的任何地方都看不到类路径,所以我无法确认。

更新

所以我查看了 /out/artifacts/myapp_web_war_exploded/WEB-INF/lib而且我在那里看不到jar文件。为什么 jar 不包含在部署中?我应该怎么做才能将它包含在 intellij 中?

最佳答案

如果是 maven WAR 项目,请检查 jar 是否标记为已排除或在范围内 provided在 pom 中,因为其中任何一个都会从 WAR 中删除 jar。

如果不是这种情况,请转到命令行到 pom WAR 所在的目录,然后执行 mvn dependency:tree并确认你的 jar 确实在那里。

如果 jar 在那里,则意味着它只能是与 IDE 相关的问题。尝试以下步骤:

  • 废弃你当前的服务器
  • 从官网下载并解压干净的服务器
  • 在 IDE 中配置新服务器
  • 确保将模块作为 maven 模块导入,以便 IDEA 完全基于 poms
  • 构建编译和部署类路径
  • 如果已经是 Maven 项目,请单击 Maven Projects(左上方的隐藏 Pane ),然后单击 Reimport All Maven Projects
  • 进行构建 -> 重建项目
  • 单击 F4/Libraries 并确认库在那里,然后运行服务器
  • 关于scala - 项目在 IntelliJ 中编译良好,Tomcat 说 java.lang.NoClassDefFoundError : my/package/name/blah,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22284965/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com