Java “什么会导致?”;无法安装断点";使用mvn tomcat7运行Web应用程序的问题:运行war?
我开始失去理智了,我要振作起来,在这里写一个恰当的问题 我不知道为什么或我做了什么,因为我没有改变任何应该影响这一点的事情,但突然我得到了这个: 由于缺少行号属性,无法在com.company.whatever.MyObjectService$$EnhancerBySpringCGLIB$$e3b7e123中安装断点 或者作为屏幕截图: 是的,我已经在序言中检查过了,并且遵循了来自的建议 我不知道为什么,但最近我一直被这样的错误困扰着——使我无法完成我需要完成的实际工作 这是我的maven命令:Java “什么会导致?”;无法安装断点";使用mvn tomcat7运行Web应用程序的问题:运行war?,java,eclipse,maven,tomcat,Java,Eclipse,Maven,Tomcat,我开始失去理智了,我要振作起来,在这里写一个恰当的问题 我不知道为什么或我做了什么,因为我没有改变任何应该影响这一点的事情,但突然我得到了这个: 由于缺少行号属性,无法在com.company.whatever.MyObjectService$$EnhancerBySpringCGLIB$$e3b7e123中安装断点 或者作为屏幕截图: 是的,我已经在序言中检查过了,并且遵循了来自的建议 我不知道为什么,但最近我一直被这样的错误困扰着——使我无法完成我需要完成的实际工作 这是我的maven命令
mvn tomcat7:run-war -am -pl mz-web-server -Dpackage-mode=dev -Denv=dev -DskipTests
究竟是什么原因呢
是的,我有
mvn清洁安装
- 打开/关闭Eclipse
- 刷新项目资源管理器
- 查看序言-->Java-->编译器-->类文件生成
- 。。。另外:取消设置、应用、再次设置、应用行号信息选项
- 使用JDK代替JRE
- 和上帝谈过,甚至想改变我的职业
但是没有任何帮助 您声明您使用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>
org.apache.maven.plugins
maven编译器插件
1.8
1.8
真的
行、变量、源
我在Jboss上经常遇到这个问题
当我被它绊倒时,我只需清理部署目录并重新部署war/jar,一切正常
您还可以尝试“丑陋”的替代方案,并尝试远程调试您的应用程序 我想您已经尝试过所有这些情况,但今天我在调试一个“旧”的、有点凌乱的Spring应用程序时遇到了问题,该应用程序部署在一个使用JDK 1.6的Tomcat 6中 经过多次检查:
- 正确添加到.class文件的行号(通过javap检查 -v)
- 已从Eclipse/IntelliJ正确连接到Tomcat
- 将调试和调试级别正确添加到构建任务(Ant)
- 清理IDE和Tomcat中的所有缓存,重建,重新部署
/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中的项目配置不匹配,那么任何构建自动化工具都可能出现文件夹混乱的情况
希望你的理智还不错;) 我在工作场所只处理一个项目时遇到了这条消息,因此我得出结论,因为这个项目在同一工作场所的不同项目中具有相同的组ID和文件结构/包(我试图从jdbc更改为hibernate,所以我只是复制了其中的大部分)。 因此,我猜想编译器在识别断点的位置时遇到了问题,因为文件具有相同的名称和路径,所以当SPRING开始运行时,编译器尝试将其放在原始文件中,而不是新文件中
更改包导致消息消失。
com.company.whatever.MyObjectService$$EnhancerBySpringCGLIB$$e3b7e123
看起来像是CGLIB生成的类,即动态生成的字节码。maven和IDE选项都不可能对您有所帮助,因为该类可能没有任何Java源代码。