-
最近运行别人项目的时候,java.lang.NullPointerException 但是看了半天也不知道那个地方空指针了5
Struts Problem Report
Struts has detected an unhandled exception:
Messages:
File: com/lingx/system/security/SecurityContextFactory.java
Line number: 28
Stacktraces
java.lang.NullPointerException
com.lingx.system.security.SecurityContextFactory.getUserDetails(SecurityContextFactory.java:28)
com.lingx.system.security.SecurityContextFactory.getUser(SecurityContextFactory.java:48)
com.lingx.loas.utils.OperationLogger.record(OperationLogger.java:41)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:609)
org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:45)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
com.lingx.loas.web.IndexAction$$EnhancerByCGLIB$$af3cdece.execute()
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.interceptor.MessageStoreInterceptor.intercept(MessageStoreInterceptor.java:204)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
java.lang.Thread.run(Thread.java:662)
2014年5月04日 09:55
2个答案 按时间排序 按投票排序
-
采纳的答案
SecurityContextHolder这个应该属于springsecurity的类吧。也就是说你们应该继承了springsecurity安全组件。首先说下这个问题为什么会发生。
1 首先,SpringSecurity的保存用户信息(登陆session)他并非是保存在httpsession中的,而是保存在本地线程中的。也就是说,其实如果你直接通过session。get方法是无法拿去到你登陆后的session信息,即你中间所说的Authentication对象。
所以依据这种情况,SpringSecurity提供了两种方式来帮助你获取到你验证后的用户信息,2 第一种是通过SecurityContextHolder.getContext().getAuthentication()这种方式, 另外还有一个方式是你直接在httpsession中拿去对应的authentication对象,这个关键字设置为专门的值的,如果我没记错的话,关键字应该是:HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY.
3 关于你这个原因产生,我猜测是由于你们在springsecurity验证完成后没有吧对应的security放入到session中导致,所以你拿去的Authentication为空,自然就是会报控制正了,建议你查看下你们自己写的springSecurity验证类。这个类应该是实现了接口UserDetailsService,这个实现类有几个用途,其一就是实现身份验证,就是验证用户名密码是否正确,另外一个就是需要把验证后的authencation对象放入到session中,你没有放,那么你肯定是无法获取到的。而方式SecurityContextHolder.getContext().getAuthentication()不为空的前提就是你在这个类的验证完成后需要调用方法SecurityContextHolder.getContext().setAuthentication(). 建议你查询下这个类是否有问题。2014年5月04日 17:29
-
第28行。
你应该让eclipse显示行号。
或者鼠标点击括号中的内容,将直接跳到报错代码处。
com.lingx.system.security.SecurityContextFactory.getUserDetails(SecurityContextFactory.java:28)
你可以分析那行代码,你也可以把那行代码贴出来看看。2014年5月04日 10:13
相关推荐
空指针异常是 Java.lang.NullPointerException 的一种特殊情况。当我们尝试访问或操作一个 null 对象时,将抛出 NullPointerException。例如,在上面的代码中,我们尝试访问 conn 对象的方法时,如果 conn 对象为 ...
Java中的空指针异常(NullPointerException)是编程过程中常见的错误类型,尤其对于新手开发者来说更为常见。这个异常通常在试图访问或操作一个值为null的对象引用时抛出。下面将详细探讨这一异常的原因、表现形式、...
- **代码空指针异常**:`java.lang.NullPointerException`是一种运行时异常,表示应用程序试图在需要对象的地方使用了`null`。在本例中,可能是由于MyEclipse在计算代码完成建议时遇到了某个未被正确初始化的对象。 ...
java.lang....今天在家练习ListView的时候,遇到一个java.lang.NullPointerException的空指针异常,log如下: 2020-05-10 15:40:29.249 20436-20436/? E/k.myapplicatio: Unknown bits set in runtime_flag
java.lang.NullPointerException是一个运行时异常,可能会在运行的时候才会被抛出。因此,在编程时需要小心地处理null值,避免抛出java.lang.NullPointerException异常。同时,需要养成良好的编程习惯,例如在使用...
EasyExcel 导出报空指针NullPointerException java.lang.NullPointerException: null at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) at sun.awt.FontConfiguration.readFontConfigFile...
### Linux下使用POI读取Word文件出现空指针异常问题解决方案 #### 问题背景 在使用Apache POI处理Word文档时,在Linux环境下遇到了`java.lang.NullPointerException`异常。异常的具体位置出现在`org.apache.poi....
不过,与所有软件一样,Zend Studio for Eclipse 在使用过程中也可能会遇到各种问题,比如本文所提到的 Java 语言中常见的 null 指针异常(java.lang.NullPointerException)。 Java 语言中的 null 指针异常是...
`Error` 类通常用于表示程序运行时遇到的严重问题,这些问题通常是系统级别的,比如内存溢出、虚拟机错误等,这些错误往往是程序无法恢复的,因此通常不需要也不应该被捕获。而 `Exception` 类则包含了那些可以通过...
java.lang.UnsupportedClassVersionError 是一种不支持的类版本错误,指的是在程序中 Java 虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前 Java 虚拟机支持的时候,抛出的异常。 33. java.lang...
在Java编程语言中,`java.lang.Throwable`是所有错误(Error)和异常(Exception)的顶级父类,它是Java异常处理机制的核心组成部分。这个类位于`java.lang`包中,是Java标准库的一部分,提供了处理运行时问题的标准...
2. **空指针异常(NullPointerException)** - 原因:尝试访问尚未初始化或已null的对象引用。 - 解决方案:使用`Objects.requireNonNull()`方法进行非空检查,或者在访问对象前确保其已被正确初始化。 3. **线程...
非检查性异常也称为运行时异常(Runtime Exceptions),它们通常是由编程错误引起的,如空指针异常、数组越界等。这些异常不需要在方法签名中声明,并且通常不建议通过try-catch块来捕获它们,除非有明确的错误处理...
1. **数据库插入数据异常**:当遇到`java.lang.NullPointerException`错误,特别是在Oracle JDBC操作中,可能是由于数据源配置或连接池设置不当导致的。解决方案是将连接池的语句高速缓存大小设置为0,这有助于防止...
在Java编程中,空指针异常(`java.lang.NullPointerException`)是最常见的运行时异常之一,尤其在大型项目和复杂代码逻辑中更为常见。这种异常通常发生在试图访问一个尚未被实例化或已被设置为`null`的对象的属性或...
`java.lang.NullPointerException` 是一种运行时异常,表示程序试图在需要对象的地方使用了 `null`。例如,通过对 `null` 引用调用实例方法或访问其字段、将其赋值给不接受 `null` 的类型参数等情况下都会抛出此异常...
在 Sqoop 运行时,如果它不能正确解析JSON数据,可能会抛出空指针异常,这可能是由于缺少了必要的JSON解析库,如`java-json.jar`。 在标签中提到的"java-json.jar",这是一个常见的JSON处理库,可能来自于org.json...
`java.lang.NullPointerException`是一种运行时异常,当尝试访问一个尚未被初始化或已初始化但值为`null`的对象时触发。这种异常通常发生在以下几种常见场景中: - **图片处理**:在处理图像时,如果没有正确初始化...