Я знаю, что этот вопрос задавали несколько раз, но на мои глаза все правильно. Я также удалил свой код из Eclipse и позволил IDE создать геттеры/сеттеры, но безрезультатно.
Вот моя ошибка в weblogic:
Вызывается: org.springframework.beans.NotWritablePropertyException: Недопустимое свойство gpsDataAllStopsSql класса bean [com.fedex.dire.webservices.direservice.dao.GPSDataDaoImpl]: Свойство bean 'gpsDataAllStopsSql' не доступно для записи или имеет неверный метод setter. Соответствует ли тип параметра сеттера типу возврата получателя?
Здесь мой Bean & Property в моем контексте:
<bean id="dataDao" class="com.text.service.dao.DataDaoImpl" >
<property name="dataSource" ref="dataSource" />
<property name="gpsDataAllStopsSql">
<value><![CDATA[SELECT A.XML_DATA,B.ADDR1,B.ADDR2,B.POSTALCODE FROM GPS.EVENT_STAMP A LEFT OUTER JOIN DB.SCAN B ON A.FAC_IORG_NBR=B.FACILITY AND A.SCANNER_DATE=B.SCANDATE AND A.SCANNER_ID=B.SCANNERID AND A.PD_START_TIME=B.PDSTART WHERE FAC_IORG_NBR = ? AND SCANNER_DATE = CAST(? AS DATE) AND SCANNER_ID = ? AND PD_START_TIME = ?]]></value>
</property>
<property name="gpsDataSql">
<value><![CDATA[SELECT A.XML_DATA,A.STOP_NUMBER,B.ADDR1,B.ADDR2,B.POSTALCODE FROM GPS.EVENT_STAMP A LEFT OUTER JOIN DB.SCAN B ON A.STOP_NUMBER=B.STOP# AND A.FAC_IORG_NBR=B.FACILITY AND A.SCANNER_DATE=B.SCANDATE AND A.SCANNER_ID=B.SCANNERID AND A.PD_START_TIME=B.PDSTART WHERE FAC_IORG_NBR = ? AND SCANNER_DATE = CAST(? AS DATE) AND SCANNER_ID = ? AND PD_START_TIME = ? AND STOP_NUMBER = ?]]></value>
</property>
</bean>
Вот методы getter и setter в моем DaoImpl:
private static String gpsDataSql = null;
private static String gpsDataAllStopsSql = null;
public static String getGpsDataSql() {
return gpsDataSql;
}
public static void setGpsDataSql(String gpsDataSql) {
DataDaoImpl.gpsDataSql = gpsDataSql;
}
public static String getGpsDataAllStopsSql() {
return gpsDataAllStopsSql;
}
public static void setGpsDataAllStopsSql(String gpsDataAllStopsSql) {
DataDaoImpl.gpsDataAllStopsSql = gpsDataAllStopsSql;
}
Есть ли что-то, что мои глаза скользят, или это может быть еще одна проблема с моей окружающей средой?
Благодарю!
Компонент, который вы декларируете в XML, пытается установить свойства, существующие в классе DataDaoImpl
. Чтобы это правильно работало, удалите статические элементы и попробуйте следующее для своего класса:
package com.text.service.dao;
public class DataDaoImpl extends SomeOtherDaoWhereDataSourceIsDefined {
private String gpsDataAllStopsSql;
private String gpsDataSql;
public String getGpsDataAllStopsSql() {
return gpsDataAllStopsSql;
}
public void setGpsDataAllStopsSql(String gpsDataAllStopsSql) {
this.gpsDataAllStopsSql = gpsDataAllStopsSql;
}
public String getGpsDataSql() {
return gpsDataSql;
}
public void setGpsDataSql(String gpsDataSql) {
this.gpsDataSql = gpsDataSql;
}
}
В этой статье объясняется использование статических и нестатических элементов.