分类目录归档:Java

Setting property ‘clientAuth’ to ‘false’ did not find a matching property.

解決方式就是將原本server.xml中的
<Connector port=”443″ protocol=”HTTP/1.1″ SSLEnabled=”true” maxThreads=”150″ scheme=”https” secure=”true”
clientAuth=”false” sslProtocol=”TLS”
keystoreFile=”your jks file”
keyAlias=”your alias name”
keystorePass=”your password” />
protocol=”HTTP/1.1″

替換成

protocol=”org.apache.coyote.http11.Http11Protocol”

修正後的server.xml如下
<Connector port=”443″ protocol=”org.apache.coyote.http11.Http11Protocol” SSLEnabled=”true” maxThreads=”150″ scheme=”https” secure=”true”
clientAuth=”false” sslProtocol=”TLS”
keystoreFile=”your jks file”
keyAlias=”your alias name”
keystorePass=”your password” />
然後再重新啟動Tomcat,服務就可以順利啟動了。

[基础]Listener、Filter、Servlet初始化顺序

Listener > Filter > Servlet

Listener和Filter的初始化都是在容器启动完成之前初始化的。

Servlet缺省不进行初始化,如果想要servlet自动初始化,需要在指定的servlet中配置参数,没有此标签,默认启动时servlet不进行初始化。

初始化的顺序跟Listener、Filter、Servlet在web.xml中的顺序无关

而多个Filter或多个Servlet的时候,谁的mapping在前面,谁先初始化。例如,如果你需要在Struts之前对请求做一下预处理,则需要自行编写一个Filter,并且把它的Mapping写在Struts的前面。

但是,如果web.xml中配置了,初始化顺序:context-param > Listener > Filter > Servlet

例如,你的应用没有正确的对象注入,有可能跟初始化顺序有关。比如,需要注入Action的Service没能在正确的时间初始化。

Struts2 config browser插件无法访问的一种情况及解决方案

config-browser是一个很好用的插件,可以直观地浏览所有action,我的一个项目中竟然无法打开这个页面。经过诸多试验,找到了原因:

如果给struts过滤器添加了name为config的init-param参数,就无法访问,提示“There is no Action mapped for action name XXX. – [unknown location]”错误。去掉这个参数就可以正常访问。

自定义struts配置文件位置的话,还就得需要这个。

鱼与熊掌不可得兼,毕竟config-browser这个插件在开发过程中很有用,配置文件就放到缺省位置算了。

解决Struts破坏Post数据一例

近日试用一个短信平台,支持接收用户回复的短信(上行短信)。发送,接收回执,查询余额等测试都没有问题。但是读取中文上行短信的时候总是出现乱码。

大致程序逻辑是这样的:我在短信平台中设置一个我自己的页面,如果有短信回复到我的专用号码时,短信平台会通过POST的方式把短信内容做GBK的URLENCODE编码后发给这个页面,我自己的程序可以做需要的处理(比如保存到数据库)。

接下来说一下曲折的解决过程吧,以便以后解决问题效率能有所提高: 继续阅读解决Struts破坏Post数据一例