Java 弹簧罐';我看不到我导入的类

Java 弹簧罐';我看不到我导入的类,java,spring,Java,Spring,我的控制器(抽象控制器)正在调用服务类以获取URL。在我的服务类中,我在构造函数中实例化了我的依赖项: 抽象控制器: public class MyPageController extends AbstractController{ private UserService userService; private LearnerService learnerService; private TwitterService twitterService; @Override protected Mo

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

抽象控制器:

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();
}
但当我尝试运行我的web应用程序时,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)
嵌套异常为java.lang.NoClassDefFoundError:twitter4j/Twitter:
java.lang.NoClassDefFoundError:twitter4j/Twitter
位于com.hardwire.service.TwitterService(TwitterService.java:21)
在com.hardwire.controller上。
MyPageController.handleReq uestInternal(MyPageController.java:30)

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

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

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


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

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

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


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

您的WEB-INF/lib目录中有twitter4j jar吗?

您的WEB-INF/lib目录中有twitter4j jar吗?

谢谢您的回复。我已将库复制到web inf/lib文件夹。现在它工作了!这改变了我过去的一些假设。我认为有一份进口声明是可以的。事实证明,开发环境和生产环境具有不同的类路径!(我说得对吗?)是的,任何给定环境的类路径都可能因许多原因而不同。Java webapp将可以访问WEB-INF/lib的内容,任何其他类路径元素都会发生更改。谢谢您的回复。我已将库复制到web inf/lib文件夹。现在它工作了!这改变了我过去的一些假设。我认为有一份进口声明是可以的。事实证明,开发环境和生产环境具有不同的类路径!(我说得对吗?)是的,任何给定环境的类路径都可能因许多原因而不同。Java webapp将可以访问WEB-INF/lib的内容,任何其他类路径元素都可能发生更改