java - Spring看不到我导入的类

标签 java spring

我的 Controller (抽象 Controller )正在调用服务类来获取 URL。在我的服务类中,我在构造函数中实例化我的依赖项:

抽象 Controller :

public class MyPageController extends AbstractController{
private UserService userService;
private LearnerService learnerService;
private TwitterService twitterService;
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    userService = UserServiceFactory.getUserService();
    learnerService = new LearnerService();
    twitterService=new TwitterService();

服务类:

public TwitterService(){
    //
    twitter = new Twitter();
}

但是当我尝试运行我的网络应用程序时,spring 抛出以下错误:

nested exception is java.lang.NoClassDefFoundError: twitter4j/Twitter:
    java.lang.NoClassDefFoundError: twitter4j/Twitter
    at com.hardwire.service.TwitterService.<init>(Twitter Service.java:21)
    at com.hardwire.controller.
    MyPageController.handleReq uestInternal(MyPageController.java:30)

为什么会抛出这个错误?我不明白。我将 Twitter 类导入到使用它的服务类中。

最佳答案

如果 ClassLoader 实例尝试加载类的定义但找不到该类的定义,则会收到 NoClassDefFoundError。

这基本上意味着运行时在类路径上找不到该类。在代码中包含导入声明是必需的,但不足以使其正常工作,您还需要确保包含 twitterj.Twitter 的 jar 位于应用程序类路径上。

最简单的方法是将 jar 复制到应用程序的 WEB-INF/lib 文件夹中。或者使用工具(如 MavenIvyAnt 甚至像 Eclipse 这样的 IDE )来确保将所需的 jar 打包到您的 war 中。

关于java - Spring看不到我导入的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1317836/

相关文章:

Java - 将 JMS 消息流式传输到 Oracle 表中

java - Spring工具套件IDE

java - 未调用 Android SQLiteHelper OnCreate 方法。导致没有这样的表异常

java - 勾选和渲染不适用于其他类,我该怎么办

java - Spring MVC : Saving a Java List in PostgreSQL with Hibernate

java - 在 URL 中带有时间戳的 Spring RequestMapping

java - 关于Spring事务管理重新设计的建议

java - Spring 3.1 Controller 不接受 ajax post

java - TextView.setText() 仅显示 sleep() 后的最终变化

java - 将原始负 rgb int 值转换回 3 数字 rgb 值