【问题标题】:java eclipse debug never enters certain mvc service classesjava eclipse debug从不进入某些mvc服务类
【发布时间】:2019-06-20 05:46:44
【问题描述】:

我正在尝试使用 Eclipse 调试我的 java mvc Web 应用程序。但是,调试没有进入从我的控制器调用的服务类。我可以调试到我的控制器正在调用方法“getReportsService.getAppReportLinksFromIQ(appid)”,但它永远不会在 Eclipse 中使用 F5 进入服务类。所以我所看到的只是由此产生的“nullPointerException”,它来自方法中不喜欢的任何结果。

控制器代码:

try {
    reports = getReportsService.getAppReportLinksFromIQ(appid);
} catch (Exception e) {
    e.printStackTrace();
}

服务代码注意:调用中的 URL 不是真实的 URL

@Service
public class GetReportsServiceImpl implements GetReportsService {

    @Override
    public String getAppIdFromIQ(String appId) {

        RestTemplate restTemplate = new RestTemplate();
        //Get encode Application ID

        String getAppIdUrl = "http://url" + appId;
        AppIdDTO response = restTemplate.getForObject(getAppIdUrl + "/1", AppIdDTO.class);
        return response.getId();
    }

【问题讨论】:

    标签: java eclipse debugging model-view-controller service


    【解决方案1】:

    我能看到发生这种情况的唯一原因是getReportsService 为空。否则,执行应该进入方法。

    如果不是这样,请查看 NPE 的堆栈跟踪以找到确切的行。

    顺便说一句,我假设您的意思是 getAppIdFromIQ 不是 getAppReportLinksFromIQ

    【讨论】:

    • 堆栈跟踪没有显示任何直接引用我的服务类中的代码的内容,但它显示了一个 httpconnect 调用,该调用将由我的类中的调用产生。就像我的班级是鬼一样。
    • 你的回答让我明白了一些事情,请参阅我上面的评论。我对此表示赞赏。
    • 很高兴我能帮上忙 :)
    【解决方案2】:

    请重新检查控制器中的调用方法名和服务类中的方法名。 两者的方法名称应该相同。

    【讨论】:

      【解决方案3】:

      您的评论让我仔细研究了一些东西。我在我的服务类中指定了以下内容

      GetReportsService getReportsService;
      

      我改成

      @Resource private GetReportsService getReportsService;
      

      这解决了问题。谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-18
        • 2022-01-11
        相关资源
        最近更新 更多