java - Deserialization throwing ClassNotFoundException for object in object -


i'm trying serialize , deserialize object, has liferay user object in (which it's userimpl). serialization/deserialization occurs in api library used in other projects.

this object:

public class objectdto implements serializable {      private static final long serialversionuid = 1927888580878066482l;      private user user;     private string string1;     private string string2;      public objectdto() {     }          //getters, setters    } 

the method serialization/deserialization occurs:

            bytearrayoutputstream bos = new bytearrayoutputstream();         objectoutputstream oos = new objectoutputstream(bos);         oos.writeobject(obj);          byte[] bytes = bos.tobytearray();          oos.close();         bos.close();          bytearrayinputstream bis = new bytearrayinputstream(bytes);         objectinputstream ois = new objectinputstream(bis);          object o = ois.readobject();          ois.close();         bis.close();          return o; 

the serialization works, , in few line make deserialization, , not work. throws classnotfoundexception userimpl:

java.lang.classnotfoundexception: com.liferay.portal.model.impl.userimpl @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1645) @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1491) @ java.lang.class.forname0(native method) @ java.lang.class.forname(class.java:247) @ java.io.objectinputstream.resolveclass(objectinputstream.java:604) @ java.io.objectinputstream.readnonproxydesc(objectinputstream.java:1575) @ java.io.objectinputstream.readclassdesc(objectinputstream.java:1496) @ java.io.objectinputstream.readordinaryobject(objectinputstream.java:1732) @ java.io.objectinputstream.readobject0(objectinputstream.java:1329) @ java.io.objectinputstream.defaultreadfields(objectinputstream.java:1947) @ java.io.objectinputstream.readserialdata(objectinputstream.java:1871) @ java.io.objectinputstream.readordinaryobject(objectinputstream.java:1753) @ java.io.objectinputstream.readobject0(objectinputstream.java:1329) @ java.io.objectinputstream.readobject(objectinputstream.java:351) @ com.sample.services.service.clpserializer.translateoutputgeneric(clpserializer.java:431) @ com.sample.services.service.clpserializer.translateoutput(clpserializer.java:490) @ com.sample.services.service.entityserviceclp.getentitybyuserid(entityserviceclp.java:62) @ com.sample.services.service.entityserviceutil.getentitybyuserid(entityserviceutil.java:45) @ com.sample.portlet.portlet.showportlet(portlet.java:57) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.springframework.web.bind.annotation.support.handlermethodinvoker.invokehandlermethod(handlermethodinvoker.java:176) @ org.springframework.web.portlet.mvc.annotation.annotationmethodhandleradapter.invokehandlermethod(annotationmethodhandleradapter.java:358) @ org.springframework.web.portlet.mvc.annotation.annotationmethodhandleradapter.dohandle(annotationmethodhandleradapter.java:345) @ org.springframework.web.portlet.mvc.annotation.annotationmethodhandleradapter.handlerender(annotationmethodhandleradapter.java:288) @ org.springframework.web.portlet.dispatcherportlet.dorenderservice(dispatcherportlet.java:734) @ org.springframework.web.portlet.frameworkportlet.processrequest(frameworkportlet.java:522) @ org.springframework.web.portlet.frameworkportlet.dodispatch(frameworkportlet.java:470) @ javax.portlet.genericportlet.render(genericportlet.java:233) @ com.liferay.portlet.filterchainimpl.dofilter(filterchainimpl.java:101) @ com.liferay.portal.kernel.portlet.portletfilterutil.dofilter(portletfilterutil.java:64) @ com.liferay.portal.kernel.servlet.portletservlet.service(portletservlet.java:92) @ javax.servlet.http.httpservlet.service(httpservlet.java:717) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ org.apache.catalina.core.applicationdispatcher.invoke(applicationdispatcher.java:646) @ org.apache.catalina.core.applicationdispatcher.doinclude(applicationdispatcher.java:551) @ org.apache.catalina.core.applicationdispatcher.include(applicationdispatcher.java:488) @ com.liferay.portlet.invokerportletimpl.invoke(invokerportletimpl.java:639) @ com.liferay.portlet.invokerportletimpl.invokerender(invokerportletimpl.java:724) @ com.liferay.portlet.invokerportletimpl.render(invokerportletimpl.java:426) @ org.apache.jsp.html.portal.render_005fportlet_jsp._jspservice(render_005fportlet_jsp.java:1387) @ org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70) @ javax.servlet.http.httpservlet.service(httpservlet.java:717) @ org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:377) @ org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:313) @ org.apache.jasper.servlet.jspservlet.service(jspservlet.java:260) @ javax.servlet.http.httpservlet.service(httpservlet.java:717) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ org.apache.catalina.core.applicationdispatcher.invoke(applicationdispatcher.java:646) @ org.apache.catalina.core.applicationdispatcher.doinclude(applicationdispatcher.java:551) @ org.apache.catalina.core.applicationdispatcher.include(applicationdispatcher.java:488) @ com.liferay.portal.util.portalimpl.renderportlet(portalimpl.java:3859) @ com.liferay.portal.util.portalutil.renderportlet(portalutil.java:1222) @ com.liferay.portlet.layoutconfiguration.util.runtimeportletutil.processportlet(runtimeportletutil.java:160) @ com.liferay.portlet.layoutconfiguration.util.runtimeportletutil.processportlet(runtimeportletutil.java:94) @ com.liferay.portlet.layoutconfiguration.util.runtimeportletutil.processtemplate(runtimeportletutil.java:256) @ com.liferay.portlet.layoutconfiguration.util.runtimeportletutil.processtemplate(runtimeportletutil.java:181) @ org.apache.jsp.html.portal.layout.view.portlet_jsp._jspservice(portlet_jsp.java:761) @ org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70) @ javax.servlet.http.httpservlet.service(httpservlet.java:717) @ org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:377) @ org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:313) @ org.apache.jasper.servlet.jspservlet.service(jspservlet.java:260) @ javax.servlet.http.httpservlet.service(httpservlet.java:717) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ org.apache.catalina.core.applicationdispatcher.invoke(applicationdispatcher.java:646) @ org.apache.catalina.core.applicationdispatcher.doinclude(applicationdispatcher.java:551) @ org.apache.catalina.core.applicationdispatcher.include(applicationdispatcher.java:488) @ com.liferay.portal.action.layoutaction.includelayoutcontent(layoutaction.java:364) @ com.liferay.portal.action.layoutaction.processlayout(layoutaction.java:623) @ com.liferay.portal.action.layoutaction.execute(layoutaction.java:232) @ org.apache.struts.action.requestprocessor.processactionperform(requestprocessor.java:431) @ org.apache.struts.action.requestprocessor.process(requestprocessor.java:236) @ com.liferay.portal.struts.portalrequestprocessor.process(portalrequestprocessor.java:154) @ org.apache.struts.action.actionservlet.process(actionservlet.java:1196) @ org.apache.struts.action.actionservlet.doget(actionservlet.java:414) @ javax.servlet.http.httpservlet.service(httpservlet.java:617) @ com.liferay.portal.servlet.mainservlet.callparentservice(mainservlet.java:520) @ com.liferay.portal.servlet.mainservlet.service(mainservlet.java:497) @ javax.servlet.http.httpservlet.service(httpservlet.java:717) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.strip.stripfilter.processfilter(stripfilter.java:309) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.themepreview.themepreviewfilter.processfilter(themepreviewfilter.java:88) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.gzip.gzipfilter.processfilter(gzipfilter.java:121) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.secure.securefilter.processfilter(securefilter.java:182) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.autologin.autologinfilter.processfilter(autologinfilter.java:239) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ org.apache.catalina.core.applicationdispatcher.invoke(applicationdispatcher.java:646) @ org.apache.catalina.core.applicationdispatcher.processrequest(applicationdispatcher.java:436) @ org.apache.catalina.core.applicationdispatcher.doforward(applicationdispatcher.java:374) @ org.apache.catalina.core.applicationdispatcher.forward(applicationdispatcher.java:302) @ com.liferay.portal.servlet.friendlyurlservlet.service(friendlyurlservlet.java:134) @ javax.servlet.http.httpservlet.service(httpservlet.java:717) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.strip.stripfilter.processfilter(stripfilter.java:261) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.themepreview.themepreviewfilter.processfilter(themepreviewfilter.java:88) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.gzip.gzipfilter.processfilter(gzipfilter.java:110) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.secure.securefilter.processfilter(securefilter.java:182) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.i18n.i18nfilter.processfilter(i18nfilter.java:222) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.autologin.autologinfilter.processfilter(autologinfilter.java:239) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ org.apache.catalina.core.applicationdispatcher.invoke(applicationdispatcher.java:646) @ org.apache.catalina.core.applicationdispatcher.processrequest(applicationdispatcher.java:436) @ org.apache.catalina.core.applicationdispatcher.doforward(applicationdispatcher.java:374) @ org.apache.catalina.core.applicationdispatcher.forward(applicationdispatcher.java:302) @ com.liferay.portal.servlet.filters.virtualhost.virtualhostfilter.processfilter(virtualhostfilter.java:280) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.absoluteredirects.absoluteredirectsfilter.processfilter(absoluteredirectsfilter.java:85) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ org.tuckey.web.filters.urlrewrite.urlrewritefilter.dofilter(urlrewritefilter.java:738) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.servlet.filters.threadlocal.threadlocalfilter.processfilter(threadlocalfilter.java:52) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:123) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ com.liferay.portal.kernel.servlet.basefilter.processfilter(basefilter.java:196) @ com.liferay.portal.kernel.servlet.basefilter.dofilter(basefilter.java:126) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:233) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:191) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:470) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:127) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:102) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:298) @ org.apache.coyote.http11.http11processor.process(http11processor.java:857) @ org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:588) @ org.apache.tomcat.util.net.jioendpoint$worker.run(jioendpoint.java:489) @ java.lang.thread.run(thread.java:619) 

any ideas or leads one?

the interface user contained in portal-service.jar, on global classpath. implementation class, userimpl in portal-impl.jar in liferay's webapplication's local classpath (e.g. in web-inf/lib) , cannot @ it. i'd shouldn't rely on serializing object - after all, never know if can deserialize again.

rather have purely userid in own serialized object , fetch again database when need deserialize.

this way liferay's servicebuilder makes objects available webapplications, despite implementation of services , objects living purely within 1 application.

if you're tempted add portal-impl.jar own application's classpath: not work! you'll run kinds of other issues, unrelated problem you're trying solve. you'll need find different solution underlying problem.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -