cancel
Showing results for 
Search instead for 
Did you mean: 

TypeAdapter for StockLevelStatus (occ v2, hybris version 6.1.0.2)

Former Member
0 Kudos
519

Hi There,

following problem: since WsDTO's can not handle with generic Objects, I have to use the ProductData in my Endpoint. But then I get this exception: ERROR [hybrisHTTP2] [RestHandlerExceptionResolver] org.springframework.http.converter.HttpMessageConversionException: Could not instantiate JAXBContext for class [class de.hybris.platform.commercefacades.product.data.ProductData]: ; nested exception is javax.xml.bind.JAXBException: Exception Description: An invalid XmlJavaTypeAdapter [com.remmers.commercewebservices.adapters.StockLevelAdapter] was specified for field/property [stock] on class [de.hybris.platform.commercefacades.product.data.VariantOptionData]. Possible causes are an incorrect adapter class name or the wrong lo ader has been set. - with linked exception: [Exception [EeLink-50067] (Ee Persistence Services - 2.6.1.v20150916-55dc7c3): org.ee.persistence.exceptions.JAXBException Exception Description: An invalid XmlJavaTypeAdapter [com.remmers.commercewebservices.adapters.StockLevelAdapter] was specified for field/property [stock] on class [de.hybris.platform.commercefacades.product.data.VariantOptionData]. Possible causes are an incorrect adapter class name or the wrong lo ader has been set.] at de.hybris.platform.webservicescommons.jaxb.Jaxb2HttpMessageConverter.getJaxbContext(Jaxb2HttpMessageConverter.java:239) at de.hybris.platform.webservicescommons.jaxb.Jaxb2HttpMessageConverter.createMarshaller(Jaxb2HttpMessageConverter.java:190) at de.hybris.platform.webservicescommons.jaxb.Jaxb2HttpMessageConverter.writeToResult(Jaxb2HttpMessageConverter.java:157) at org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter.writeInternal(AbstractXmlHttpMessageConverter.java:66) at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:208) at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:205) at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:144) at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:185) at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:71) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:126) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:775) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:856) at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:841) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:254) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$StatisticsGatewayFilter.doFilter(AbstractPlatformFilterChain.java:343) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at com.remmers.commercewebservices.auth.GuestRoleFilter.doFilterInternal(GuestRoleFilter.java:85) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at com.remmers.commercewebservices.filter.SessionAttributesFilter.doFilterInternal(SessionAttributesFilter.java:61) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at com.remmers.commercewebservices.v2.filter.CartMatchingFilter.doFilterInternal(CartMatchingFilter.java:48) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at com.remmers.commercewebservices.v2.filter.UserMatchingFilter.doFilterInternal(UserMatchingFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at com.remmers.commercewebservices.v2.filter.BaseSiteMatchingFilter.doFilterInternal(BaseSiteMatchingFilter.java:63) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at de.hybris.platform.webservicescommons.filter.RestSessionFilter.doFilter(RestSessionFilter.java:49) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at de.hybris.platform.servicelayer.web.Log4JFilter.doFilter(Log4JFilter.java:45) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at de.hybris.platform.webservicescommons.filter.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:45) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain$InternalFilterChain.doFilter(AbstractPlatformFilterChain.java:224) at de.hybris.platform.servicelayer.web.AbstractPlatformFilterChain.doFilterInternal(AbstractPlatformFilterChain.java:154) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at de.hybris.platform.webservicescommons.filter.SessionHidingFilter.doFilter(SessionHidingFilter.java:44) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:168) at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:233) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:82) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at de.hybris.platform.servicelayer.web.XSSFilter.processPatternsAndDoFilter(XSSFilter.java:293) at de.hybris.platform.servicelayer.web.XSSFilter.doFilter(XSSFilter.java:247) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: javax.xml.bind.JAXBException: Exception Description: An invalid XmlJavaTypeAdapter [com.remmers.commercewebservices.adapters.StockLevelAdapter] was specified for field/property [stock] on class [de.hybris.platform.commercefacades.product.data.VariantOptionData]. Possible causes are an incorrect adapter class name or the wrong lo ader has been set. - with linked exception: [Exception [EeLink-50067] (Ee Persistence Services - 2.6.1.v20150916-55dc7c3): org.ee.persistence.exceptions.JAXBException Exception Description: An invalid XmlJavaTypeAdapter [com.remmers.commercewebservices.adapters.StockLevelAdapter] was specified for field/property [stock] on class [de.hybris.platform.commercefacades.product.data.VariantOptionData]. Possible causes are an incorrect adapter class name or the wrong lo ader has been set.] at org.ee.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:1127) at org.ee.persistence.jaxb.JAXBContext.(JAXBContext.java:192) at org.ee.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:165) at org.ee.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:152) at org.ee.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:112) at org.ee.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:102) at de.hybris.platform.webservicescommons.jaxb.MoxyJaxbContextFactoryImpl.createJaxbContext(MoxyJaxbContextFactoryImpl.java:75) at de.hybris.platform.webservicescommons.jaxb.Jaxb2HttpMessageConverter.getJaxbContext(Jaxb2HttpMessageConverter.java:234)

So I have created this Adapter: public class StockLevelAdapter extends XmlAdapter { public StockLevelAdapter(){ }

@Override public StockData unmarshal(String v) throws Exception { return null; }

@Override public String marshal(StockData v) throws Exception { return v.getStockLevelStatus().getCode(); }

}

and configured in the jaxb-converters-spring.xml:

     <property name="metadataSourceFactory" ref="customMetadataSourceFactory" />
     <property name="typeAdapters">
         <list>
             <value>de.hybris.platform.webservicescommons.jaxb.adapters.DateAdapter</value>
             <value>de.hybris.platform.webservicescommons.jaxb.adapters.StringMapAdapter</value>
             <value>de.hybris.platform.webservicescommons.jaxb.adapters.XSSStringAdapter</value>
     <value>com.remmers.commercewebservices.adapters.StockLevelAdapter</value>
         </list>
     </property>
 </bean>

The error still occurs.

Can anyone help?

Best Regards, Elizabet

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

StockLevelAdapter extends XmlAdapter looks wrong.

should be:

StockLevelAdapter extends XmlAdapter < String, StockLevel > {...}