intellij idea - mapstruct annotation processor did not generate mappers Implimentation -


i have created spring boot application using jhipster generator, , added entites author , book, author has many books while book has 1 author.

then when run app using intellij idea got stacktrace :

java.lang.unsupportedoperationexception: null     @ com.zaxxer.hikari.util.fastlist.iterator(fastlist.java:209) ~[hikaricp-2.4.1.jar:na]     @ org.apache.catalina.loader.webappclassloaderbase.loadedbythisorchild(webappclassloaderbase.java:2195) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.loader.webappclassloaderbase.checkthreadlocalmapforleaks(webappclassloaderbase.java:2105) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.loader.webappclassloaderbase.checkthreadlocalsforleaks(webappclassloaderbase.java:2060) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.loader.webappclassloaderbase.clearreferences(webappclassloaderbase.java:1575) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.loader.webappclassloaderbase.stop(webappclassloaderbase.java:1521) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.loader.webapploader.stopinternal(webapploader.java:447) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.util.lifecyclebase.stop(lifecyclebase.java:232) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.core.standardcontext.stopinternal(standardcontext.java:5517) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.util.lifecyclebase.stop(lifecyclebase.java:232) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.core.containerbase$stopchild.call(containerbase.java:1424) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ org.apache.catalina.core.containerbase$stopchild.call(containerbase.java:1413) [tomcat-embed-core-8.0.30.jar:8.0.30]     @ java.util.concurrent.futuretask.run(futuretask.java:266) [na:1.8.0_73]     @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) [na:1.8.0_73]     @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) [na:1.8.0_73]     @ java.lang.thread.run(thread.java:745) [na:1.8.0_73]  2016-03-26 16:43:25.866 error 3056 --- [  restartedmain] o.s.boot.springapplication               : application startup failed  org.springframework.beans.factory.beancreationexception: error creating bean name 'authorserviceimpl': injection of autowired dependencies failed; nested exception org.springframework.beans.factory.beancreationexception: not autowire field: private com.capvalue.recruite.web.rest.mapper.authormapper com.capvalue.recruite.service.impl.authorserviceimpl.authormapper; nested exception org.springframework.beans.factory.nosuchbeandefinitionexception: no qualifying bean of type [com.capvalue.recruite.web.rest.mapper.authormapper] found dependency: expected @ least 1 bean qualifies autowire candidate dependency. dependency annotations: {@javax.inject.inject()}     @ org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor.postprocesspropertyvalues(autowiredannotationbeanpostprocessor.java:334) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.populatebean(abstractautowirecapablebeanfactory.java:1214) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:543) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:482) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:306) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:230) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:302) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:197) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:772) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:839) ~[spring-context-4.2.4.release.jar:4.2.4.release]     @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:538) ~[spring-context-4.2.4.release.jar:4.2.4.release]     @ org.springframework.boot.context.embedded.embeddedwebapplicationcontext.refresh(embeddedwebapplicationcontext.java:118) ~[spring-boot-1.3.1.release.jar:1.3.1.release]     @ org.springframework.boot.springapplication.refresh(springapplication.java:764) ~[spring-boot-1.3.1.release.jar:1.3.1.release]     @ org.springframework.boot.springapplication.dorun(springapplication.java:357) ~[spring-boot-1.3.1.release.jar:1.3.1.release]     @ org.springframework.boot.springapplication.run(springapplication.java:305) ~[spring-boot-1.3.1.release.jar:1.3.1.release]     @ com.capvalue.recruite.application.main(application.java:74) [classes/:na]     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) ~[na:1.8.0_73]     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) ~[na:1.8.0_73]     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) ~[na:1.8.0_73]     @ java.lang.reflect.method.invoke(method.java:497) ~[na:1.8.0_73]     @ org.springframework.boot.devtools.restart.restartlauncher.run(restartlauncher.java:49) [spring-boot-devtools-1.3.1.release.jar:1.3.1.release] caused by: org.springframework.beans.factory.beancreationexception: not autowire field: private com.capvalue.recruite.web.rest.mapper.authormapper com.capvalue.recruite.service.impl.authorserviceimpl.authormapper; nested exception org.springframework.beans.factory.nosuchbeandefinitionexception: no qualifying bean of type [com.capvalue.recruite.web.rest.mapper.authormapper] found dependency: expected @ least 1 bean qualifies autowire candidate dependency. dependency annotations: {@javax.inject.inject()}     @ org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor$autowiredfieldelement.inject(autowiredannotationbeanpostprocessor.java:573) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.annotation.injectionmetadata.inject(injectionmetadata.java:88) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor.postprocesspropertyvalues(autowiredannotationbeanpostprocessor.java:331) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     ... 20 common frames omitted caused by: org.springframework.beans.factory.nosuchbeandefinitionexception: no qualifying bean of type [com.capvalue.recruite.web.rest.mapper.authormapper] found dependency: expected @ least 1 bean qualifies autowire candidate dependency. dependency annotations: {@javax.inject.inject()}     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.raisenosuchbeandefinitionexception(defaultlistablebeanfactory.java:1373) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.doresolvedependency(defaultlistablebeanfactory.java:1119) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.resolvedependency(defaultlistablebeanfactory.java:1014) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     @ org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor$autowiredfieldelement.inject(autowiredannotationbeanpostprocessor.java:545) ~[spring-beans-4.2.4.release.jar:4.2.4.release]     ... 22 common frames omitted  2016-03-26 16:43:25.870  warn 3056 --- [  restartedmain] o.s.boot.springapplication               : error handling failed (error creating bean name 'delegatingapplicationlistener' defined in class path resource [org/springframework/security/config/annotation/web/configuration/websecurityconfiguration.class]: beanpostprocessor before instantiation of bean failed; nested exception org.springframework.beans.factory.beancreationexception: error creating bean name 'org.springframework.cache.annotation.proxycachingconfiguration': initialization of bean failed; nested exception org.springframework.beans.factory.nosuchbeandefinitionexception: no bean named 'org.springframework.context.annotation.configurationclasspostprocessor.importregistry' defined)  process finished exit code 1 

from similar issue in github (https://github.com/jhipster/generator-jhipster/issues/2399) understand mapstruct annotation processor did not generate authormapperimpl.java , bookmapperimpl.java can find authormapper.java , bookmapper.java :

authormapper.java

@mapper(componentmodel = "spring", uses = {}) public interface authormapper {      authordto authortoauthordto(author author);      @mapping(target = "books", ignore = true)     author authordtotoauthor(authordto authordto); } 

bookmapperimpl.java

@mapper(componentmodel = "spring", uses = {}) public interface bookmapper {      @mapping(source = "author.id", target = "authorid")     @mapping(source = "author.name", target = "authorname")     bookdto booktobookdto(book book);      @mapping(source = "authorid", target = "author")     book bookdtotobook(bookdto bookdto);      default author authorfromid(long id) {         if (id == null) {             return null;         }         author author = new author();         author.setid(id);         return author;     } } 

jhipster version

generator-jhipster 2.27.2

jhipster configuration (.yo-rc.json)

{   "generator-jhipster": {     "basename": "jhipster",     "packagename": "com.capvalue.recruite",     "packagefolder": "com/capvalue/recruite",     "authenticationtype": "session",     "hibernatecache": "ehcache",     "clusteredhttpsession": "no",     "websocket": "no",     "databasetype": "sql",     "devdatabasetype": "mysql",     "proddatabasetype": "mysql",     "searchengine": "elasticsearch",     "usesass": false,     "buildtool": "maven",     "frontendbuilder": "grunt",     "enabletranslation": true,     "enablesocialsignin": false,     "remembermekey": "f70fd101e4b03583ba48c96a91e0af7ab6a6c92e",     "testframeworks": [       "gatling"     ]   } } 

entity configuration(s)

author.json

 {         "relationships": [             {                 "relationshipid": 1,                 "relationshipname": "book",                 "otherentityname": "book",                 "relationshiptype": "one-to-many",                 "otherentityrelationshipname": "author"             }         ],         "fields": [             {                 "fieldid": 1,                 "fieldname": "name",                 "fieldtype": "string",                 "fieldvalidaterules": [                     "required"                 ]             },             {                 "fieldid": 2,                 "fieldname": "birthday",                 "fieldtype": "localdate"             }         ],         "changelogdate": "20160326163433",         "dto": "mapstruct",         "service": "serviceimpl",         "pagination": "pager"     } 

book.json

{     "relationships": [         {             "relationshipid": 1,             "relationshipname": "author",             "otherentityname": "author",             "relationshiptype": "many-to-one",             "otherentityfield": "name"         }     ],     "fields": [         {             "fieldid": 1,             "fieldname": "title",             "fieldtype": "string",             "fieldvalidaterules": [                 "required"             ]         },         {             "fieldid": 2,             "fieldname": "price",             "fieldtype": "bigdecimal"         }     ],     "changelogdate": "20160326164101",     "dto": "mapstruct",     "service": "serviceimpl",     "pagination": "pager" } 

the unsupportedoperationexception hikaricp's fastlist iterator fixed in more recent version (of hikaricp). recommend upgrade hikaricp 2.4.5.


Comments