我的控制器(抽象控制器)正在調用服務類來獲取URL。在我服務的I類實例化我的依賴性在構造函數中:春天看不到我導入的類
抽象控制器:
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應用程序,春天拋出出現以下錯誤:
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類。
感謝您的回覆。我已將庫複製到web-inf/lib文件夾中。現在它工作了! 這改變了我過去的一些假設。我認爲只要有一個導入聲明就可以了。原來,開發和生產環境有不同的類路徑! (我得到的是否正確?) – Jeune 2009-08-23 15:08:09
是的,任何給定環境的類路徑可以有多種不同的原因。 Java webapp可以訪問WEB-INF/lib的內容,任何其他的classpath元素都可能會改變 – 2009-08-23 18:58:05