首页 > 其他分享 >Struts2 v2.1.6 笔记

Struts2 v2.1.6 笔记

时间:2023-08-28 14:01:47浏览次数:41  
标签:core catalina java 笔记 v2.1 start Struts2 apache org


1.启动
<constant name="struts.devMode" value="true"/> 或者
<constant name="struts.configuration.xml.reload" value="true"/>
时启动tomcat报错。
org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter struts2
java.lang.NullPointerException
    at com.opensymphony.xwork2.util.FileManager$FileRevision.needsReloading(FileManager.java:209)
    at com.opensymphony.xwork2.util.FileManager.fileNeedsReloading(FileManager.java:60)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.needsReload(XmlConfigurationProvider.java:325)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.needsReload(StrutsXmlConfigurationProvider.java:168)
    at com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(ConfigurationManager.java:220)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:61)
    at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:774)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:191)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2009-2-4 22:40:54 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2009-2-4 22:40:54 org.apache.catalina.core.StandardContext start
严重: Context [/Struts2Demo2] startup failed due to previous errors

    devMode模式是开发模式,开启它则默认开启了i18n.reload、configuration.xml.reload。这个错误是由于configuration.xml.reload设置为true倒置的,但是网上的资料没有说明原因及解决办法,倒是一个国外的apache相关BBS上有人说这是216版本的BUG,并且附上了一个.patch修正文件,说217版本会修正。。。可我不会用也不知道是不是这个原因,这个问题就一直搁置在这里了。过了几个月,也就是最近网上查了下发现在apache的一个邮件列表中有关于这个的解释,原因很简单,tomcat的安装路径包含空格。。。无语啊。。。一试果然如此。

   下面是4个开发模式常用配置的简介---
    <!-- 开启使用开发模式,详细错误提示 -->
    <!-- <constant name="struts.devMode" value="true"/>-->
    <!-- 指定每次请求到达,重新加载资源文件 -->
    <!-- <constant name="struts.i18n.reload" value="true"/>-->
    <!-- 指定每次配置文件更改后,自动重新加载 -->
    <!-- <constant name="struts.configuration.xml.reload" value="true"/>-->
    <!-- 指定XSLT Result使用样式表缓存 -->
    <!-- <constant name="struts.xslt.nocache" value="true"/>-->

2.零配置插件codebehind一旦导入就必须进行init-param初始化配置,否则报错:packageAction can't mapping action!

3.<s:i18n name="???"></s:i18n>包住那个标签,该标签就加载它指定的国际化文件,不管是text,textfield还是form都是如此。

4.action实例、xxxScope对象都在ValueStack内,直接使用${}调用

5.使用append标签时,没有所谓的将map和list集合对象连接起来的说法,在创建map对象的使用的语法为#{:,},如果省略冒号,则默认value为null。

5.StackContext 中的对象可以理解为struts2标签库使用的专用对象,比如通过value属性调用:value="#xxx.xxx.xxx..."

6.ValueStack是StackContext的顶级对象,可以不需要#前缀使用,StackContext中的某些已建立对象可以通过比如在某些标签中设置var属性调入根对象ValueStack,达到省略#号的目的。在实际中则可以理解为在标签内临时新建的一个或多个对象,通过var属性指定的名称访问 value="xxx.xxx.xxx...."

7.${requestScope.xxx.name} 与 <s:property value="#request.xxx.name"/>(escapse属性设置为false) 表达的内容相同,都是输出request范围内的xxx对象的name属性值,且无论是否该值包含html代码

标签:core,catalina,java,笔记,v2.1,start,Struts2,apache,org
From: https://blog.51cto.com/u_16237557/7263441

相关文章

  • [struts2]配置dispatcher INCLUDE和Forward可能问题解决
    Struts2.1.6GA不支持<dispatcher>FORWARD</dispatcher>和<dispatcher>INCLUDE</dispatcher>你要是和URLRewrite过滤器一起工作会报错。目前最新版本GeneralAvailability(GA)Releases-ReadyforPrimeTime!Struts2.1.8("bestavailable")Struts2.0.14(&qu......
  • Struts2与URL Rewrite整合注意的地方
    1.在重新定向的jsp界面中不要使用<s:include>标签,会发生空指针异常,你可以使用<jsp:include>去解决 2.web.xml中UrlRewrite过滤器要在struts2过滤器前面,在Struts2过滤器映射要这样写<filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern>......
  • 01 字典树学习笔记
    01字典树前置知识:字典树。01字典树是一种特殊的字典树,它会把数字看作二进制的\(\texttt{01}\)串存入字符串。在树上,除了叶子节点外的所有节点都表示一个数的范围。我们在插入元素时,和在字典树中插入元素时类似的。这里不再阐述。插入示例代码如下:constintMAXN=2e6......
  • 学习笔记:DSTAGNN中ST块的代码分析
    DSTAGNN模型可以看我上一个博客学习笔记:DSTAGNN:DynamicSpatial-TemporalAwareGraphNeuralNetworkforTrafficFlowForecasting这篇博客主要写了我对代码中ST块部分的阅读。写这篇模型的初衷,是这篇论文结构图和语言描述不太一致,再加上我想要学习怎么写一个时空预测的代......
  • 使用Struts2拦截器需要注意的地方
    今天在写拦截器的时候发现一个貌似属于bug的问题我使用的版本是2.1.8 当访问一个满足拦截器拦截条件的请求时,虽然代码已经执行进入拦截器,并且返回结果也是拦截后改变的跳转结果,但是却没有按照返回结果跳转,而是依旧进入了action。 源代码是这样的:publicStringintercept(ActionIn......
  • kafka笔记
    1、kafkabroker是kafka的节点信息,相当于服务器节点信息。2、kafka的作用是在业务高峰时起到削峰的作用、同时解除生产者和消费者的耦合作用让生产者不再强关联。3、kafka可以分为生产者和消费者单topic模式,生产者生产数据后消费者就会删除数据kafka可以分为多topic模式,多to......
  • AD电路板设计笔记
    【隐藏某层】PCB隐藏某层,按快捷键L即可调出隐藏对话框【更新PCB】原理图修改后更新PCB,Design-UpdatePCBDocument,,,【快速定位元件】1原理图中快速定位PCB元件,Tools-CrossProbe原理图跳转到PCB中,快捷键T+C【PCB的元件高亮,其他变灰,Shift+C可以恢复】2从PCB跳转......
  • Programming abstractions in C阅读笔记:p130-p131
    《ProgrammingAbstractionsInC》学习第52天,p130-p131,总结如下:一、技术总结1.piglatingame通过piglatingame掌握字符复制,指针遍历等操作。/**输入:字符串,这里采用书中坐着自定义的getline函数*/#include<stdio.h>#include<string.h>#include"simpio.h"#def......
  • linux学习指令与现有环境解决问题笔记
    linux学习指令与现有环境笔记注意:我将pytorch和cuda安装在了pytorch这个虚拟环境中pytorch安装及注意问题注意版本对应,稳定版2.0.1对应cuda11.7,别按错了按错导致重新安装cuda安装过程与对应问题注意上述内容,里面告诉了添加环境变量,如何删除cuda,cuda下载的位置,下载对应驱动......
  • MySQL学习笔记
    SQL注释单行注释:–-或#注释内容多行注释:/*注释内容*/SQL分类分类说明DDL数据定义语言,用来定义数据库对象DMI数据操作语言,用来对数据库表中的数据进行增删改DQL数据查询语言,用来查询数据库中表的记录DCL数据控制语言,用来创建数据库用户,控制数据库的访......