【问题标题】:Springsource tool suite skipping codesSpringsource工具套件跳过代码
【发布时间】:2012-05-28 12:01:12
【问题描述】:

我有一个非常奇怪的问题。当我尝试调试代码时,sts 完全忽略了代码。 下面是我非常简单的代码,我想知道为什么值没有改变,当我调试时,从{client.employmentKindOfWork ="asdasd" 的行没有被执行。它跳过所有内容并直接跳转到 client.save()。

Client client = Client.FindById(caseInstance.clientIdClient);
if (client!=null) {
  client.clientMailAddr1="sdfsdfsf"
  client.isDelete = true
  client.employmentKindOfWork ="asdasd"
  client.save()
}

我尝试了以下步骤:

  1. 通过向导命令清理
  2. 点击项目然后清理。
  3. 构建项目几次。
  4. 打开和关闭 STS。
  5. 创建新工作区,然后再次导入项目。
  6. 在首选项中添加此行?Java>je 编辑和默认 vm -XX:+UseParallelGC
  7. 右键刷新项目刷新项目
  8. 通过命令向导重新编译

所有这些都不起作用!

请。建议任何我没有尝试过的东西,除了更新之外可能会解决这个问题,因为我所有的队友都有我拥有的相同版本并且他们没有这个问题。

【问题讨论】:

  • 一些问题:只有在调试器中单步执行时才会出现这种情况,还是在不使用调试器时也会出现这种情况?你确定client 真的不为空吗?删除 if 语句会发生什么?在每次调用更改 client 之后添加 sys.out.println 语句会发生什么?客户的价值观是否正在更新?确保您的 Java 编译器首选项设置为在类文件中包含行号。
  • 它在调试器和它不被使用时都会发生。是的,我确信它不为空,因为它进入 If 语句并跳转到 client.save()。不,这些值没有被更新,这就是为什么我将它设置为调试模式以查看发生了什么,并且保存之前的行被忽略。原始代码没有 IF 并且没有任何反应,它仍然跳过行。当您说“确保您的 Java 编译器首选项设置为在类文件中包含行号”时。我在哪里可以看到?抱歉,我是 java 和 sts 的新手。谢谢。
  • 实际上我看到了“Java 编译器首选项设置为在类文件中包含行号”。是的,已检查。

标签: spring debugging sts-springsourcetoolsuite


【解决方案1】:

您很可能没有运行您认为的代码。添加一些 system.out.println 语句并查看它们是否被访问。我的猜测是他们不是。最有可能的是,您将类文件编译到一个位置,但从另一个位置运行它们的陈旧版本。

我假设这是一个 Maven 项目。确保在您的 java 构建路径(项目上的 Ctrl-I)中,输出文件夹设置为 target/classes 和 target/test-classes。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多