开始失去理智,我会把自己拉到一起,在这里写一个正确的问题..
我不知道为什么或我做了什么,因为我没有改变任何应该影响这个的东西,但突然之间我得到了这个:
由于缺少行号属性,无法在com.company.whatever.MyObjectService $$ EnhancerBySpringCGLIB $$ e3b7e123中安装断点。
或截图:
是的,我已经检查了Prefences下的内容,并按照here的建议进行了检查。
我不知道为什么但是我最近因为这样的错误而感到困扰 - 让我不能完成我需要完成的实际工作..
这是我的maven命令:
mvn tomcat7:run-war -am -pl mz-web-server -Dpackage-mode=dev -Denv=dev -DskipTests
究竟是什么原因?
是的,我有
mvn clean install
但没有任何帮助!
答案 0 :(得分:1)
您声明使用maven,因此IDE中的选项不太可能对此有很大帮助。 相反,你应该更专注于maven或更具体地说是构建插件。
例如:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<debug>true</debug>
<debuglevel>lines,vars,source</debuglevel>
</configuration>
</plugin>
</plugins>
</build>
答案 1 :(得分:0)
我经常遇到Jboss这个问题。
当我坚持使用它时,我只需清理我的部署目录并重新部署我的war / jar,一切正常。
你也可以尝试一下&#34;丑陋的&#34;替代方案并尝试远程调试您的应用程序。
答案 2 :(得分:0)
我猜你已经尝试了所有这些情况,但是今天我在尝试调试使用JDK 1.6在Tomcat 6中部署的“旧”和有点凌乱的Spring应用程序时遇到了问题。
经过多次检查后:
但仍然得到“缺少行号”错误。我遇到问题的项目是几年前第三方使用Ant开发的。
那时出了什么问题?每个IDE都允许您配置存储编译文件的位置。例如,对于Eclipse,默认文件夹是/bin
(如果它是Maven项目,它是/target
),对于IntelliJ,它是/out
。
我的项目使用Ant,并在${webroot.dir}/WEB-INF/classes
这样的文件夹中编译文件(如build.xml文件中的编译任务所示),然后将这些.class文件添加到生成的war中。
<property name="classes.dir" value="${webroot.dir}/WEB-INF/classes" />
<target name="compile" depends="prepare,resources">
<javac srcdir="${basedir}/src/main/java" destdir="${classes.dir}" debug="on" debuglevel="lines,vars,source">
...
</javac>
</target>
问题是IDE在/ bin文件夹中查找了.class文件,但我的新编译的.class文件放在另一个地方。更改项目配置(Eclipse和IntelliJ)中的输出文件夹并指向同一个Ant的编译文件夹后,断点开始按预期工作。
我知道您正在使用Maven并且我的案例正在使用Ant,但是任何构建自动化工具都会发生该文件夹混乱,您指定输出文件夹并且与您正在使用的IDE中的项目配置不匹配。< / p>
希望你的理智还可以;)
答案 3 :(得分:0)
当我仅在工作场所中的一个项目上工作时,我遇到了此消息,因此得出的结论是,由于该项目具有相同的groupID和文件结构/程序包,因此属于同一工作场所中的其他项目(我试图从jdbc更改为休眠,因此我只复制了大部分内容)。 所以我的猜测是,由于文件具有相同的名称和路径,因此编译器在确定放置断点的位置时遇到了问题,因此当SPRING发挥作用时,编译器尝试将其放置在原始文件中,而不是新文件中。 >
更改包装会导致消息消失。