将Struts从版本2.0.11.2升级到2.3.28.1时面临的问题

时间:2016-11-08 11:07:19

标签: struts2 dojo

我有一个使用Struts 2.0.11.2的应用程序。由于struts的旧版本,应用程序被标记为易受攻击。我在将struts升级到版本2.3.28.1时遇到问题(这是最新允许的版本)我们的组织)。 经过对谷歌的大量研究,我明白在新的struts版本中不推荐使用Dojo类。但是我们的项目使用了很多dojo标签。 我知道替代插件,如Struts Jquery。但是使用替代插件将涉及大量的代码更改和测试,这在我们目前的时间框架中是不可行的。 是否有一些方法可以使用带有struts的dojo标签到版本2.3.28.1? 我们可以以某种方式将struts2-dojo-plugin与Struts版本2.3.28.1结合起来吗?

我自己尝试了但是卡住了(详情如下)

我尝试了什么:

1)我用struts2-core-2.3.28.1 jar替换了Struts核心jar。

2)更新了Maven存储库中提到的所有依赖项jar。

3)添加了struts2-dojo-plugin-2.3.20.1

4)包含在JSP-s

<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
<head><sx:head /></head>

我面临的问题:

当我点击下面的JSP时,我得到的错误。任何帮助都非常感谢。如果您需要我的任何更多细节或信息,请告诉我。

FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!)
The following has evaluated to null or missing:
==> parameters.pushId  [in template "template/ajax/submit.ftl" at line 103, column 6]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
    - Failed at: #if parameters.pushId  [in template "template/ajax/submit.ftl" at line 103, column 1]
----

Java stack trace (for programmers):
----
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
    at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:116)
    at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:60)
    at freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:40)
    at freemarker.core.NonBooleanException.<init>(NonBooleanException.java:44)
    at freemarker.core.Expression.modelToBoolean(Expression.java:136)
    at freemarker.core.Expression.evalToBoolean(Expression.java:119)
    at freemarker.core.Expression.evalToBoolean(Expression.java:110)
    at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:46)
    at freemarker.core.Environment.visit(Environment.java:312)
    at freemarker.core.MixedContent.accept(MixedContent.java:62)
    at freemarker.core.Environment.visit(Environment.java:312)
    at freemarker.core.Environment.process(Environment.java:290)
    at freemarker.template.Template.process(Template.java:312)
    at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:158)
    at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:584)
    at org.apache.struts2.components.ClosingUIBean.start(ClosingUIBean.java:57)
    at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:54)
    at jsp_servlet._demotool.__fileupload._jsp__tag2(__fileupload.java:332)
    at jsp_servlet._demotool.__fileupload._jspService(__fileupload.java:236)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:408)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:318)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:502)
    at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:432)
    at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:163)
    at jsp_servlet._demotool.__ctmmessage._jspService(__ctmmessage.java:132)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:408)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:318)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:502)
    at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:432)
    at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:163)
    at jsp_servlet._demotool.__home._jspService(__home.java:255)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:408)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:318)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter.doFilter(StrutsExecuteFilter.java:90)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.doFilter(StrutsPrepareFilter.java:91)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

0 个答案:

没有答案
相关问题