ermao3545
the big fundmental
采纳率100%
2009-11-26 10:42

eclipse不能调试了

已采纳

我用的eclipse开始好好的,但是后来调试就不稳定了,调试hibernate+spring的时候只能从ac = new FileSystemXmlApplicationContext("/WebRoot/WEB-INF/applicationContext.xml");这列开始调试,而且不能跳跃的调试,不能F8到另一个断点,按了F8就一路跑到底了。只能一步一步的调啊。郁闷死了,开始dao层还可以测试,但是到了Service层,有了事物管理,根本没法调了。把eclipse卸了重装,反复几次,还弄了另一个eclipse过来,还是不行,都是这个样子。但是调普通的Java类这些功能都好好的,难道eclipse不能调试spring+hibernate?在网上搜的时候也看见有人遇到和我相同的问题,但是他们也没解决方案?不会是要重装系统在重装eclipse吧??? :x
[b]问题补充:[/b]
一楼说的都试过了。还是不行。
[b]问题补充:[/b]
:cry: 问题是现在急着做项目啊。都弄的我半天才能调一个bug,还是用System.out.println()调的。都米人知道了么?
[b]问题补充:[/b]
大家说的方法都试了,最后实在不行,只能拿出MyEclipse了,JDK还是1.6的,哎,终于可以调试了,那叫一个爽啊。我现在是开发用eclipse,调试用MyEclipse。呵呵。不知道是不是wocsok老兄说的多线程问题,但是MyEclipse是可以的。
还有spring的事物加了之后老是遇到一些莫名其妙的问题,去掉事物代理运行成功,但是一加事物代理,则莫名其妙的异常了。举个例子给大家吧,不知道有人遇到类似问题没?如果嵌套超过一层,那我的save方法就变成update了(当然我传的实体是带ID的,但是单独测save还是save,就是不能嵌套),还有在事务中查出来的实体不让我改ID,改了就异常,郁闷。把事物配置发出来看看。


<!-- 定义事务拦截器 -->
 <bean id="transactionInterceptor"
      class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <!-- 注入事务管理 -->
    <property name="transactionManager" ref="transactionManager"/>
    <property name="transactionAttributes">
        <!-- 定义事务传播属性 -->
       <props>
          <prop key="update*">PROPAGATION_REQUIRED</prop>
          <prop key="delete*">PROPAGATION_REQUIRED</prop>
          <prop key="save*">PROPAGATION_REQUIRED</prop>
          <prop key="add*">PROPAGATION_REQUIRED</prop>
       </props>
    </property>
 </bean>
<!-- 定义BeanNameAutoProxyCreator-->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
    <!--  指定对满足哪些bean name的bean自动生成业务代理 -->
    <property name="beanNames">
        <!--  下面是所有需要自动创建事务代理的bean-->
        <list>
            <value>*Service</value>
        </list>
        <!--  此处可增加其他需要自动创建事务代理的bean-->
    </property>
    <!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
    <property name="interceptorNames">
        <list>
            <!-- 此处可增加其他新的Interceptor -->
            <value>transactionInterceptor</value> 
        </list>
    </property>     
</bean>

[b]问题补充:[/b]
呵呵,有几位兄台没看清我的说明哦,我开始已经说了,重装过eclipse。而且换了其他好的eclipse重装。都没用。算了,不能调试我就用MyEclipse。
至于595755330提出的问题我觉得spring和hibernate不调试的话怎么知道里面在怎么运行?我的事物配置并没有错,今天用MyEclipse调试的时候终于发现为什么我的save方法变update了,在hibernate的save方法里面会根据是否有事物层层调用,当走到StatefulPersisitentContext()时,会根据它的entityEntyies属性得到当前event的entry,而entityEntyies是IdentityMap类型,里面存着有id的实体和无id实体的映射,最后save的时候是根据映射关系返回entry中的id。所以我的save变update了。看了映射关系是根据内存地址映射的,没办法啊,因为我是复制数据,所以只能先查出实体,再将属性值赋给一个新变量,在save新变量。很麻烦啊,因为我一次要复制很多数据,不知道哪位兄弟遇到类似的问题了,一起交流下吧。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

14条回答

  • wocsok wocsok 12年前

    debug只能跟住一条线程的 我以前碰到过类似的毛病 当多线程的时候 它只能跟住一条 仔细看看你的程序部分实质上是否和多线程有关

    点赞 评论 复制链接分享
  • configure configure 12年前

    debug 一般不会出问题的,还是你的代码不对

    点赞 评论 复制链接分享
  • Tal Tal 12年前

    在cmd中运行
    eclipse -clean
    试试

    点赞 评论 复制链接分享
  • njdtk njdtk 12年前

    其他同事的好的eclipse可以直接copy过来一个

    点赞 评论 复制链接分享
  • iteye_14370 iteye_14370 12年前

    spring框架的作用是什么?怎么用的?它是容器管理通过xml配置文件创建对象,至少我没听过可以调试spring的,至于hibernate它都是封装好了底层的JDBC数据操作,你最多用到继承hibernate的模板方法。所所以只能调试都dao方法。至少我是这样认为的。如果说的不对请给我这个菜鸟指出来。非常感谢

    点赞 评论 复制链接分享
  • MingleLui 风影极光 12年前

    与其这么多时间,我建议重新安装。

    点赞 评论 复制链接分享
  • wanghaolovezlq wanghaolovezlq 12年前

    你的事务配置是没什么问题,关键看你代码里是怎么用了

    点赞 评论 复制链接分享
  • layer555 layer555 12年前

    有了事物管理,根本没法调了? 是指运行事务的那些代理类的影响吗?这个调试效果应该取决于你断点的位置吧?是不是你的断点位置不对? 如果要调试service的话,在service的方法前后加上端点,也不能用F8跳转吗?

    点赞 评论 复制链接分享
  • wocsok wocsok 12年前

    还有就是JDK6有的版本不太稳定 你可以换成JRE5的 再实验下

    点赞 评论 复制链接分享
  • badonly badonly 12年前

    跟框架应该没关系的!

    不知道是不是事务的原因,事务倒是没接触过!

    点赞 评论 复制链接分享
  • wanghaolovezlq wanghaolovezlq 12年前

    不至于吧,这么惨,那再搞个新的eclipse把工程导入一下,快速解决你目前的bug问题吧,

    点赞 评论 复制链接分享
  • xkuff xkuff 12年前

    1.在菜单栏点击Window>Open Perspective>Debug
    2.然后在菜单栏点击Run>Remove All Breakpoints
    3.重新设置你要调试的断点
    如果不行,请详细说一下你进入调试状态步骤。

    点赞 评论 复制链接分享
  • CaiHuajiang CaiHuajiang 12年前

    节哀吧,说不定那天就好了呢。

    点赞 评论 复制链接分享
  • CaiHuajiang CaiHuajiang 12年前

    换个工作区间试试,或者删掉.metadata目录

    点赞 评论 复制链接分享

相关推荐