Can you post the setter method for ds in CasesJdbcDAO?
Also can you post the class definition line for JDBCDataSource?
The question is can JDBCDataSource be coerced to the type of getDs()?
On 12/2/05, Kurt Edegger <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I do have a question relating to properties of managed beans defined in
> faces-config.xml. I do face the following situation of two beans:
>
> <managed-bean>
> <managed-bean-name>jdbcDataSourceBean</managed-bean-name>
> <managed-bean-class>JDBCDataSource</managed-bean-class>
> <managed-bean-scope>application</managed-bean-scope>
> </managed-bean>
>
> <managed-bean>
> <managed-bean-name>casesDAOBean</managed-bean-name>
> <managed-bean-class>CasesJdbcDAO</managed-bean-class>
> <managed-bean-scope>session</managed-bean-scope>
> <managed-property>
> <!-- [1] -->
> <property-name>ds</property-name>
> <value>#{jdbcDataSourceBean}</value>
> </managed-property>
> </managed-bean>
>
> The first bean is injected into the second one and everything works
> fine, but as I wrote the code I decided to name the managed-property of
> the second bean 'dataSource' since it's more descriptive.
> I renamed the field in the class and the setter as well.
> But when the casesDAOBean is contructed at runtime, the application
> crashes with an exception 'javax.servlet.jsp.el.ELException: Attempt to
> coerce a value of type "JDBCDataSource" to type "javax.sql.DataSource"'.
>
> Somehow the property name is recognized as type, even I had to declared
> it in CasesJdbcDAO anyway (JDBCDataSource dataSource; ).
>
> Why am I not allowed to call the field like a class in the package
> javax.sql?
>
> I had a hard time to find this one, since I wouldn't think of simply
> renaming the field solved the issue.
> Any clues why this happens?
>
> Thanks,
>
> Kurt
>
> P.S.: Yep, sorry, not really myfaces related ;)
>