今天程序遇到一个奇怪的问题,应用在本地的tomcat运行没问题,放到websphere就出问题了,本地是windows平台,websphere是linux,出问题原因是变量用eclipse生成的get、set方法导致的。变量是一个小写字母开头,第二个是大写字母,这种变量不能用eclipse直接生成get、set方法。
eclipse自动生成的
private String aValue;
public String getaValue() {
return aValue;
}
public void setaValue(String aValue) {
this.aValue = aValue;
}
这种在websphere上报null,没有值,而本地上运行没报错,调试只能通过日志文件查看,一步步定位。
把上面代码的get、set方法修改如下即可正常
private String aValue;
public String getAValue() {
return aValue;
}
public void setAValue(String aValue) {
this.aValue = aValue;
}
从上面可以看出来,websphere上struts2中要求get、set方法名后紧跟大写,不能跟小写。以后定义变量尽量不要这样定义。