java if语句不起作用

风逝涯 2014-09-11 05:27:39
在spring注入sessionFactory时,执行AnnotationSessionFactoryBean中的setConfigurationClass方法,会调用父类的LocalSessionFactoryBean中的setConfigurationClass方法,却在jboss启动服务的时候报错,用debug跟进去发现if语句中的条件都为假,应该会跳出if,但却进入if语句导致报错,把这个方法单独拿出来执行却又正确了,代码如下截图:
spring的配置:

LocalSessionFactoryBean在debug时的截图:

jboss报错截图:

把setConfigurationClass方法单独拿出来执行的截图:

求大神帮助!!!
...全文
1026 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
bree06 2014-09-24
  • 打赏
  • 举报
回复
可以继续往下跟,因为你的configurationClass==null不成立所以Cofiguration.class.isAssignableFrom()方法被调用,你应该看一下Cofiguration类的isAssignableFrom方法
风逝涯 2014-09-24
  • 打赏
  • 举报
回复
引用 12 楼 bree06 的回复:
看清楚报的错误不是同一个,如果真是你描述的那样应该报IllegalArgementException,但实际却报BeanCreatingException. 停掉服务器clear一下再跑
报的就是IllegalArgementException,jboss报错截图最后一组caused by能看见的,服务器clear再跑也一样
风逝涯 2014-09-24
  • 打赏
  • 举报
回复
引用 11 楼 smile_java 的回复:
[quote=引用 10 楼 fsy_qf5216 的回复:] [quote=引用 9 楼 smile_java 的回复:] [quote=引用 6 楼 fsy_qf5216 的回复:] 不会引用错误的,那个是spring包里面的class文件,我也看过没有引用错误
在执行If前面加个system out输出语句,看一下If里的条件到底是哪个条件出现了异常,是不是两个条件输出的都是false,回复我的时候引用一下我,不然我不知道你给过回复[/quote] 这个加不了输出语句,图中LocalSessionFactoryBean是spring框架中的jar包中的类,项目引用时只有class文件的,if条件判断中的两个判断都是false的,可以在LocalSessionFactoryBean在debug时的截图中看出来的[/quote] 如果都是false的话那你的If肯定不会走,你的异常可能是其它地方报出来的,你可以在if后面接一个输出语句就知道有没有进if语句了,刚看你的异常信息,好像并不是你自已抛出的异常。[/quote] 我没办法加输入输出语句的,那个是jar里面的class文件,实际是if判断为false却执行了if里面的语句,所以很不理解
bree06 2014-09-24
  • 打赏
  • 举报
回复
看清楚报的错误不是同一个,如果真是你描述的那样应该报IllegalArgementException,但实际却报BeanCreatingException. 停掉服务器clear一下再跑
smile_java 2014-09-22
  • 打赏
  • 举报
回复
引用 10 楼 fsy_qf5216 的回复:
[quote=引用 9 楼 smile_java 的回复:] [quote=引用 6 楼 fsy_qf5216 的回复:] 不会引用错误的,那个是spring包里面的class文件,我也看过没有引用错误
在执行If前面加个system out输出语句,看一下If里的条件到底是哪个条件出现了异常,是不是两个条件输出的都是false,回复我的时候引用一下我,不然我不知道你给过回复[/quote] 这个加不了输出语句,图中LocalSessionFactoryBean是spring框架中的jar包中的类,项目引用时只有class文件的,if条件判断中的两个判断都是false的,可以在LocalSessionFactoryBean在debug时的截图中看出来的[/quote] 如果都是false的话那你的If肯定不会走,你的异常可能是其它地方报出来的,你可以在if后面接一个输出语句就知道有没有进if语句了,刚看你的异常信息,好像并不是你自已抛出的异常。
风逝涯 2014-09-22
  • 打赏
  • 举报
回复
引用 9 楼 smile_java 的回复:
[quote=引用 6 楼 fsy_qf5216 的回复:] 不会引用错误的,那个是spring包里面的class文件,我也看过没有引用错误
在执行If前面加个system out输出语句,看一下If里的条件到底是哪个条件出现了异常,是不是两个条件输出的都是false,回复我的时候引用一下我,不然我不知道你给过回复[/quote] 这个加不了输出语句,图中LocalSessionFactoryBean是spring框架中的jar包中的类,项目引用时只有class文件的,if条件判断中的两个判断都是false的,可以在LocalSessionFactoryBean在debug时的截图中看出来的
smile_java 2014-09-19
  • 打赏
  • 举报
回复
引用 6 楼 fsy_qf5216 的回复:
不会引用错误的,那个是spring包里面的class文件,我也看过没有引用错误
在执行If前面加个system out输出语句,看一下If里的条件到底是哪个条件出现了异常,是不是两个条件输出的都是false,回复我的时候引用一下我,不然我不知道你给过回复
风逝涯 2014-09-19
  • 打赏
  • 举报
回复
注解方法哪里有问题,可否说的细致点?
Joel_Wu 2014-09-19
  • 打赏
  • 举报
回复
注解方法有问题
风逝涯 2014-09-19
  • 打赏
  • 举报
回复
不会引用错误的,那个是spring包里面的class文件,我也看过没有引用错误
风逝涯 2014-09-18
  • 打赏
  • 举报
回复
!后面的方法返回值是true,加!成false应该跳出if,可却执行if的里面的语句了
smile_java 2014-09-18
  • 打赏
  • 举报
回复
Configuration这个类是不是引错了?javax.security.auth.login.Configuration,检查一下你是不是引用了这个,这样的话你的第二个条件就是false,加个非就不难理解为什么会执行If了
meng_taiqian 2014-09-12
  • 打赏
  • 举报
回复
if裡面的第二個表達式前面有個“!”。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧