0

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

7
  • I am not sure but sometime faces this issue because the method not exist in the class. Commented Jan 26, 2014 at 17:29
  • 1
    Do you have an explicit dependency in commons-lang? can you show whole dependencies section in pom? Commented Jan 26, 2014 at 17:30
  • yes i have this dependency: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.2.1</version> </dependency> Commented Jan 26, 2014 at 22:52
  • It definitely looks like an old commons-lang dependency. You can try to run mvn dependency:tree to see if there is no other jar from this library on a classpath. Commented Jan 26, 2014 at 23:51
  • Thanks.. I did check... and the problem was indeed old versions of dozer (maybe a version conflit)... now everthing is working!! Btw, it is possible to set the mapper as autowire? Commented Jan 26, 2014 at 23:56

1 Answer 1

2

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.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.