为什么我在 liferay 中收到 NullPointerException?

2024-01-10

我得到了NullPointerException在下面一行:

originalStrutsPortletAction.processAction(
                    originalStrutsPortletAction, portletConfig, actionRequest,
                        actionResponse);

我正在打印所有值:

System.out.println(originalStrutsPortletAction);
System.out.println(portletConfig);
System.out.println(actionRequest);
System.out.println(actionResponse);

Output:

com.liferay.portal.struts.StrutsPortletActionAdapter@2f20c4be
com.liferay.portlet.PortletConfigImpl@5f4268dd
com.liferay.portlet.ActionRequestImpl@1054ae1e
com.liferay.portlet.ActionResponseImpl@27733bf2

那么为什么我会得到NullPointerException?请帮忙。提前致谢。 完整的堆栈跟踪如下:-

java.lang.NullPointerException
    at com.liferay.portlet.login.action.LoginAction.login(LoginAction.java:196)
    at com.liferay.portlet.login.action.LoginAction.processAction(LoginAction.java:93)
    at com.liferay.portal.struts.StrutsPortletActionAdapter.processAction(StrutsPortletActionAdapter.java:60)
    at com.liferay.portal.kernel.struts.BaseStrutsPortletAction.processAction(BaseStrutsPortletAction.java:44)
    at com.abhishek.ExampleLoginAction.check(ExampleLoginAction.java:185)
    at org.apache.jsp.jsp.otpCheck_jsp._jspService(otpCheck_jsp.java:71)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at sun.reflect.GeneratedMethodAccessor503.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
    at com.sun.proxy.$Proxy660.doFilter(Unknown Source)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:165)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
    at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:74)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:204)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:109)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

简单的答案:您在该位置没有得到 NullpointerException - 至少根据您发布的堆栈跟踪没有得到。 Liferay 的LoginAction 没有originalStrutsAction。如果您使用的是 6.2 GA5,这是代码 https://github.com/liferay/liferay-portal/blob/6.2.x/portal-impl/src/com/liferay/portlet/login/action/LoginAction.java#L196抛出 NullpointerException。为什么?那不是你问的。

或者,换句话说:您将收到 NullpointerException,因为您取消引用 Nullpointer。您只需要确定您实际从哪里获得它。堆栈跟踪有帮助。谁知道您的 ExampleLoginAction 在调用您要发布的行之前会做什么...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我在 liferay 中收到 NullPointerException? 的相关文章

随机推荐

  • 来自多个工人的 Gunicorn 日志记录

    我有一个 Flask 应用程序 它在服务器上的多个 Gunicorn 同步进程中运行 并使用 TimedRotatingFileHandler 从每个工作人员的 Flask 应用程序内记录到文件 回想起来 这似乎不安全 有没有一种标准方法可
  • 直接在 jQuery 对象上定义实用函数有什么好处吗?

    直接在 jQuery 对象上定义实用程序函数是否有任何具体好处 例如 给定以下两个构造 someUtility function do some something with jQuery var someUtility function
  • InAppPurchase 无效的产品标识符 - 可能的原因

    在我的应用内购买试验中 我花了一个漫长的夜晚来解决这个问题 但我似乎无法解决这个问题 我的产品标识符不断返回为 无效的产品标识符 希望有人指出 使用当前的配置文件和 appId 我可以使用推送通知 我的应用程序 ID 已生成 不带通配符 已
  • 如何从 watchOS 应用程序的共享框架中的资产目录访问颜色?

    我的 iOS 和 watchOS 应用程序之间有一个共享框架 其中包含带有一些命名颜色的资产目录 我想在我的 watchOS 应用程序中访问指定的颜色 在iOS中 我可以使用UIColor init named name String in
  • React - 将 @babel/preset-react (https://git.io/JfeDR) 添加到 Babel 配置的“预设”部分以启用转换

    我想使用反应验证组件Input以我的形式 这就是我导入它并在表单中使用的原因
  • 沿 sin 曲线均匀分布的空间圆

    我试图沿着正弦曲线均匀地定位精灵 视觉上呈圆形 例如半径为 50 目前 我用于 x 和 y 的函数是 for int i 0 i
  • 为什么我在打字稿中没有收到有关 StrictNullChecks 的警告

    我在打字稿中有以下代码 interface Member name string age number class Person implements Member name string constructor name string t
  • Swift 编译器错误 Int 无法转换为 CGFloat

    我试图运行这段代码 但编译器一直在困扰我 Int 无法转换为 CGFloat 但我从未将 min max 或 value 声明为变量 Int 之前也没有提到过它们 override func touchesBegan touches NSS
  • Python 中的实时倒计时器

    正如标题所说 我想用python创建一个实时倒计时器 到目前为止 我已经尝试过这个 import time def countdown t print Countdown s format t time sleep t 但这让应用程序休眠
  • 从路径中删除当前工作目录

    我在 Windows 中工作 想知道是否有办法从路径中删除当前工作目录 我知道这是 PowerShell 中的默认行为 但我需要它批量工作或在 Windows 命令行中工作 在 UNIX 中 我只需确保我的 PATH变量不包含 有什么办法可
  • “无效的 JWT:受众检查失败。”尝试从 Google 获取 OAuth 令牌时出错

    我正在尝试从 google 获取 OAuth2 令牌并不断收到此响应 error invalid grant error description Invalid JWT Failed audience check The right aud
  • 添加谷歌地图作为子视图会导致 iOS 应用程序因 exc_bad 崩溃

    我的代码直到大约 3 天前都运行得很好 我尝试回到一个 100 有效的更旧的提交 但现在它仍然因 exc bad 崩溃 仅当在设备上运行应用程序时才会发生崩溃 如果我在模拟器上运行应用程序或使用仪器在设备上运行应用程序 它运行得很好 当我更
  • Wagtail MultiSite - 交叉发布内容

    我目前正在通过单个 Wagtail 安装构建两个站点 这些网站适用于一家公司及其姊妹公司 内容有一些重叠 理想情况下 我们不想将相同的内容发布两次 特别是 我们在两个网站上都有一个活动页面 可能有与两家公司相关的活动 问题是 Wagtail
  • 自动生成返回类型为 HttpResponseMessage 的帮助页面

    我希望能对 Web api 自动生成的帮助页面进行一些说明 据我所知 如果我返回一个类型 它将自动生成该操作的帮助页面和示例 但是 如果我使用 HttpResponseMessage 那么它无法猜测响应是什么 只能对请求参数做出假设 这是可
  • Java 停止进程并关闭流

    我正在使用 ProcessBuilder 启动外部进程 但我需要能够终止它 现在 我可以毫无问题地终止进程 但由于某种原因 错误流没有关闭 因此读取流的线程永远不会完成 这使我无法关闭我的程序 这是我开始从输入流和错误流读取线程的地方 fi
  • 在另一个 PreferenceActivity 中启动自定义 PreferenceActivity

    在我的配置活动中 我需要创建一个首选项屏幕 顶部有一个固定视图 显示页面中配置的内容的预览 我不想更改主首选项屏幕 我已经有一个单独的活动 我想要 嵌套 首选项屏幕的不同布局 我尝试过的是在首选项屏幕内指定一个 Intent 但是当我单击此
  • 获取动态分配的数组大小

    Stroustrup 在 C 编程语言 一书中说 取消分配由new delete and delete 必须能够确定分配的对象的大小 这意味着使用标准实现分配的对象new将比静态对象占用稍多的空间 通常 用了一个词来保持物体的大小 这意味着
  • Grails 3.0.0.M1 - 创建插件 - 找不到方法 bintray

    令人沮丧的是 我无法添加过滤器和映射到已消失的 web xml 我想创建一个插件 只能使用 doWithWebDescriptor 我的第一个应用程序的第一个插件 我不足以辨别以下内容是否值得 JIRA 或者我又搞砸了 有人可以帮我决定这个
  • 在 dask 中生成批量图像

    我刚开始dask因为它提供了强大的并行处理能力 我身边有40000我磁盘上的图像 我将使用它来使用一些 DL 库构建分类器 例如Keras or TF 我在 pandas 数据框中收集了这个元信息 图像路径和相应的标签 如下所示 img p
  • 为什么我在 liferay 中收到 NullPointerException?

    我得到了NullPointerException在下面一行 originalStrutsPortletAction processAction originalStrutsPortletAction portletConfig action