java - Injecting an enum with Spring -


i'm trying inject java enum through spring context using <util:constant.

here's i've done. in spring config, i've following entry

<util:constant id="content" static-field="com.test.taxonomy.model.metadatatypeenum.content_group" /> <util:constant id="category" static-field="com.test.taxonomy.model.metadatatypeenum.category" />     <bean id="adskcontentgroup" class="com.test.taxonomy.model.adskcontentgroup" scope="prototype">   <property name="name" ref="content" />  </bean> 

here, i'm trying leverage enum adskcontentgroup injected in bean's (adskcontentgroup) ame property.

here's enum :

public enum metadatatypeenum {   content_group ("adskcontentgroup"),    private string metadatatype;    private metadatatypeenum(string metadatatype) {     this.metadatatype = metadatatype;   }   public string getmetadatatype() {     return this.metadatatype;   } } 

here's bean :

public class adskcontentgroup extends metadata {   public adskcontentgroup(){   } } 

the bean extends base class has setter name attribute

here's class definition:

public class metadata {   private metadatatypeenum name;   private string value;    public string getname() {     return name.getmetadatatype();   }    public void setname(metadatatypeenum name) {     this.name = name;   } } 

in runtime, i'm getting following exception

error com.test.taxonomy.plugin.taxonomypluginimpl  - error in creating metadata mapping :error creating bean name 'adskcontentgroup' defined in servletcontext resource [/web-inf/beans.xml]: initialization of bean failed; nested exception org.springframework.beans.typemismatchexception: failed convert property value of type [com.test.taxonomy.model.metadatatypeenum] required type [java.lang.string] property 'name'; nested exception java.lang.illegalargumentexception: original must not null   org.springframework.beans.factory.beancreationexception: error creating bean name 'adskcontentgroup' defined in servletcontext resource [/web-inf/beans.xml]: initialization of bean failed; nested exception org.springframework.beans.typemismatchexception: failed convert property value of type [com.test.taxonomy.model.metadatatypeenum] required type [java.lang.string] property 'name'; nested exception java.lang.illegalargumentexception: original must not null 

not sure what's going wrong approach.

any pointer highly appreciated.

  • thanks

your metadata class ill-designed javabean, not conform spec: setter uses parameter of type metadatatypeenum, return type of getter string.


Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -