国际特稿:与俄拉锯战两年 乌克兰还能撑多久?
作者: 联合早报 日期:2024-03-31 05:00 阅读:0 来源:联合早报
据联合早报报道
2024年3月对乌克兰来说,是个危险的月份。对抗俄罗斯已两年多,乌克兰仍无法收复国土,更因为缺乏西方有力的军援而弹药短缺,乌军在前线面对巨大压力。近期乌克兰更多是依靠发动无人机攻势,试图以小博大,俄罗斯则猛烈炮轰乌克兰首都基辅进行威慑。战事进入第三年,乌克兰还撑得住吗?
今年3月6日,乌克兰总统泽连斯基在乌南敖德萨接待到访的希腊总理米佐塔基斯时,俄军一枚导弹在几百公尺外爆炸。国家领导人走访遭遇险情,难免令人怀疑,乌克兰是否失去了制空权。
同月22日,莫斯科近郊的音乐厅遭到特大恐怖袭击,惹恼了俄罗斯总统普京。尽管美国指乌克兰不是幕后黑手,乌方也断然否认,普京仍坚持暗示恐袭与乌克兰有关,预示俄乌对抗将进一步升级。
从2022年2月普京下令侵略乌克兰到现在,双方仍然僵持不下。一开始,乌克兰被打了个措手不及,外界也都认为长期贪污腐败的乌克兰政府,既没有军事力量对抗俄罗斯,也断然不会有意志力敢去硬扛这个军事强国。没想到,泽连斯基没有逃跑,坚守国土,这个举动改变了局势,鼓舞乌克兰全民,战争初期乌克兰军民不顾生死保家卫国,让俄军蒙受重大人员伤亡。
请订阅或登录,以继续阅读全文!
FreeMarker template error (DEBUG mode; use RETHROW in production!):
The following has evaluated to null or missing:
==> info.copyRight [in template "1/default/newsDetail.html" at line 740, column 24]
----
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 legally refer to something that's sometimes 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: ${info.copyRight.content!""} [in template "1/default/newsDetail.html" at line 740, column 22]
----
Java stack trace (for programmers):
----
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:85)
at freemarker.core.UnexpectedTypeException.(UnexpectedTypeException.java:48)
at freemarker.core.NonHashException.(NonHashException.java:49)
at freemarker.core.Dot._eval(Dot.java:48)
at freemarker.core.Expression.eval(Expression.java:83)
at freemarker.core.DefaultToExpression._eval(DefaultToExpression.java:88)
at freemarker.core.Expression.eval(Expression.java:83)
at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
at freemarker.core.Environment.visit(Environment.java:330)
at freemarker.core.Environment.visit(Environment.java:336)
at freemarker.core.Environment.visit(Environment.java:336)
at freemarker.core.Environment.process(Environment.java:309)
at freemarker.template.Template.process(Template.java:384)
at com.jspxcms.common.file.FtpFileHandler$11.doInFtp(FtpFileHandler.java:270)
at com.jspxcms.common.file.FtpTemplate.execute(FtpTemplate.java:58)
at com.jspxcms.common.file.FtpFileHandler.storeFile(FtpFileHandler.java:257)
at com.jspxcms.core.html.PInfo.doMakeHtml(PInfo.java:105)
at com.jspxcms.core.html.PInfo.makeHtml(PInfo.java:48)
at com.jspxcms.core.html.HtmlServiceImpl.makeInfo(HtmlServiceImpl.java:56)
at com.jspxcms.core.html.HtmlServiceImpl$$FastClassBySpringCGLIB$$ca793f53.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:283)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671)
at com.jspxcms.core.html.HtmlServiceImpl$$EnhancerBySpringCGLIB$$24b34a51.makeInfo()
at com.jspxcms.core.service.impl.InfoServiceImpl.updateHtml(InfoServiceImpl.java:879)
at com.jspxcms.core.service.impl.InfoServiceImpl.updateHtml(InfoServiceImpl.java:843)
at com.jspxcms.core.service.impl.InfoServiceImpl.save(InfoServiceImpl.java:155)
at com.jspxcms.core.service.impl.InfoServiceImpl$$FastClassBySpringCGLIB$$3b2ee07e.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:283)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671)
at com.jspxcms.core.service.impl.InfoServiceImpl$$EnhancerBySpringCGLIB$$2c00c0b2.save()
at com.jspxcms.ext.collect.CollectorImpl$CollectThread.doCollect(CollectorImpl.java:133)
at com.jspxcms.ext.collect.CollectorImpl$CollectThread.run(CollectorImpl.java:44)