Question

I'm trying to map two classes using Dozer. But everytime that I enter the method that where is mapping the classes the following error is thrown:

org.apache.commons.lang.ClassUtils.getClass(Ljava/lang/String;)

Someone knows what I'm missing or doing wrong?

I created the dozerBeanMapping.xml in src/main/resources and added the mapping:

 <?xml version="1.0" encoding="UTF-8"?>
    <mappings xmlns="http://dozer.sourceforge.net"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://dozer.sourceforge.net 
http://dozer.sourceforge.net/schema/beanmapping.xsd">
     <mapping>
        <class-a>com.projectx.standard.services.user.model.Address</class-a>
        <class-b>com.projectx.standard.dao.user.model.AddressDTO</class-b>
      </mapping>
    </mappings>

and also added to my pom.xml the following dependencies:

<dependency>
    <groupId>net.sf.dozer</groupId>
    <artifactId>dozer</artifactId>
    <version>5.3.1</version>
</dependency>
<dependency>
    <groupId>org.apache.xmlbeans</groupId>
    <artifactId>xmlbeans</artifactId>
    <version>2.4.0</version>
    <scope>runtime</scope>
</dependency>

And my class that where the mapping is:

public void saveAddress(Address address) {

        Mapper mapperBeanName = DozerBeanMapperSingletonWrapper.getInstance();
        PostalCode postalCode = address.getPostalCode();
        this.postalCodeService.savePostalCode(postalCode);

        address.setFkPostalCode(postalCode.getId());

        AddressDTO addressDTO = mapperBeanName.map(address, AddressDTO.class);
        this.addressServiceDAO.saveAddress(addressDTO);

    }

and the stack trace:

java.lang.NoSuchMethodError: org.apache.commons.lang.ClassUtils.getClass(Ljava/lang/String;)Ljava/lang/Class;
at org.dozer.util.DefaultClassLoader.loadClass(DefaultClassLoader.java:36)
at org.dozer.DozerInitializer.loadBeanType(DozerInitializer.java:115)
at org.dozer.DozerInitializer.initialize(DozerInitializer.java:97)
at org.dozer.DozerInitializer.init(DozerInitializer.java:74)
at org.dozer.DozerBeanMapper.init(DozerBeanMapper.java:164)
at org.dozer.DozerBeanMapper.(DozerBeanMapper.java:90)
at org.dozer.DozerBeanMapperSingletonWrapper.getInstance(DozerBeanMapperSingletonWrapper.java:43)
at com.projectx.standard.services.user.implementation.AddressTypeServiceImpl.getAddressTypes(AddressTypeServiceImpl.java:27)
at com.projectx.standard.app.controler.user.UserRegistrationController.loadModel(UserRegistrationController.java:72)
at com.projectx.standard.app.controler.user.UserRegistrationController.loadData(UserRegistrationController.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:100)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:604)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:565)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:123)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:171)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Thank you

Was it helpful?

Solution

It definitely looks like an old commons-lang dependency. You can run:

mvn dependency:tree

to see if there is no other jar from this library on a classpath. In case of multiple jars from the same library (for example in different versions) JVM can use wrong classes.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top