Still getting SerializationException

33 views
Skip to first unread message

przemek lewandowski

unread,
Nov 3, 2012, 11:10:09 AM11/3/12
to bea...@googlegroups.com
Hi Im new to BeanLib, I have read the instructions about HibernateBeanReplicator, but Im stiil getting SerializationException ;/ 
Could Somebody help me ?

these are my entity clasess:
=============================================
package pl.dbg.prawnicy.shared;

import java.io.Serializable;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

@Entity
@Table(name = "Uzytkownik")
@SuppressWarnings("serial")
public class Uzytkownik implements Serializable
{
@Id
@GeneratedValue
@Column(name = "userId")
private Integer userId;

@Column(name = "Login", nullable = false, unique=true)
private String login;

@Column(name = "Haslo", nullable = false)
private String haslo;

@Column(name = "Hash")
private String hash;

@Column(name = "Imie", nullable = false)
private String imie;

@Column(name = "Nazwisko", nullable = false)
private String nazwisko;

@Column(name = "Mail")
private String mail;

@Column(name = "Telefon")
private String telefon;

@OneToMany(mappedBy="user")
@Cascade({CascadeType.ALL})
private Set<UzytkownikZalogowanyInfo> userLogedInfo;

public Uzytkownik()
{
}


public Uzytkownik(String login, String haslo, String hash, String imie, String nazwisko, String mail, String telefon) {
super();
this.login = login;
this.haslo = haslo;
this.hash = hash;
this.imie = imie;
this.nazwisko = nazwisko;
this.mail = mail;
this.telefon = telefon;
}

GETTERS and SETTERS
==============================================================================
Second

package pl.dbg.prawnicy.shared;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "UzytkownikZalogowanyInfo")
@SuppressWarnings("serial")
public class UzytkownikZalogowanyInfo
{

@Id
@GeneratedValue
@Column(name = "userInfoId")
private Integer userInfoId;

@Column(name = "Zalogowany")
private Date zalogowany;

@Column(name = "Wylogowany")
private Date wylogowany;

@ManyToOne
@JoinColumn(name = "userId")
private Uzytkownik user;

public UzytkownikZalogowanyInfo()
{
}

public UzytkownikZalogowanyInfo(Date zalogowany, Date wylogowany, Uzytkownik user)
{
super();
this.zalogowany = zalogowany;
this.wylogowany = wylogowany;
this.user = user;
}

GETTERS and SETTERS
===================================================================
And this is my servlet code


@SuppressWarnings("serial")
public class GreetingServiceImpl extends RemoteServiceServlet implements GreetingService
{

public Uzytkownik greetServer() throws IllegalArgumentException
{
Session session = SessionManager.getSessionFactory().openSession();
Uzytkownik uzytkownik = null;

try {
session.beginTransaction();

List<Uzytkownik> uzytkownicyList = session.createCriteria(Uzytkownik.class).list();

if (!uzytkownicyList.isEmpty())
{
uzytkownik = uzytkownicyList.iterator().next();
System.out.println("Jest uzytkownik");

HibernateBeanReplicator replicator = new Hibernate3BeanReplicator("pl.dbg.prawnicy.shared");
replicator.initSetterMethodCollector(new PrivateSetterMethodCollector());
//HibernateBeanReplicator replicator = new Hibernate3BeanReplicator().initReaderMethodFinder(new PrivateReaderMethodFinder());
uzytkownik = uzytkownicyList.iterator().next();
Uzytkownik uzytkownikDTO = replicator.copy(uzytkownik);

UzytkownikZalogowanyInfo uzytkownikZalogowanyInfoDTO = replicator.copy(uzytkownikDTO.getUserLogedInfos().iterator().next());


uzytkownikDTO.getUserLogedInfos().clear();
uzytkownikDTO.getUserLogedInfos().add(uzytkownikZalogowanyInfoDTO);

System.out.println("Data z drugiego obiektu "+uzytkownikDTO.getUserLogedInfos().iterator().next().getWylogowany());
return uzytkownikDTO;
}

session.getTransaction().commit();

} catch (Exception e) {
e.printStackTrace();

} finally {
session.close();
}
return null;
}

}


pleas help :D 

hanso...@gmail.com

unread,
Nov 3, 2012, 1:18:07 PM11/3/12
to bea...@googlegroups.com
Hi Przemek,

Any stack trace you can provide ?

Regards,
Hanson

przemek lewandowski

unread,
Nov 3, 2012, 3:07:31 PM11/3/12
to bea...@googlegroups.com
I hope it can help You :)
This is typical error for serializations problem from hibernate.

Starting Jetty on port 8888
[WARN] Exception while dispatching incoming RPC call
com.google.gwt.user.client.rpc.SerializationException: Type 'pl.dbg.prawnicy.shared.UzytkownikZalogowanyInfo' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = pl.dbg.prawnicy.shared.UzytkownikZalogowanyInfo@1b021a4
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:619)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126)
at com.google.gwt.user.client.rpc.core.java.util.Collection_CustomFieldSerializerBase.serialize(Collection_CustomFieldSerializerBase.java:44)
at com.google.gwt.user.client.rpc.core.java.util.HashSet_CustomFieldSerializer.serialize(HashSet_CustomFieldSerializer.java:39)
at com.google.gwt.user.client.rpc.core.java.util.HashSet_CustomFieldSerializer.serializeInstance(HashSet_CustomFieldSerializer.java:51)
at com.google.gwt.user.client.rpc.core.java.util.HashSet_CustomFieldSerializer.serializeInstance(HashSet_CustomFieldSerializer.java:28)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeImpl(ServerSerializationStreamWriter.java:740)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:621)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:153)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:539)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeClass(ServerSerializationStreamWriter.java:709)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeImpl(ServerSerializationStreamWriter.java:748)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:621)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:153)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:539)
at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:616)
at com.google.gwt.user.server.rpc.RPC.encodeResponseForSuccess(RPC.java:474)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:571)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
[ERROR] 500 - POST /prawnicy/greet (127.0.0.1) 57 bytes
Request headers
Accept: */*
Accept-Language: pl
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: 127.0.0.1:8888
Connection: Keep-Alive
Referer: http://127.0.0.1:8888/Prawnicy.html?gwt.codesvr=127.0.0.1:9997
X-GWT-Permutation: HostedMode
X-GWT-Module-Base: http://127.0.0.1:8888/prawnicy/
Content-Type: text/x-gwt-rpc; charset=utf-8
Content-Length: 132
Cache-Control: no-cache
Response headers
Content-Type: text/plain

anh I also post Screen with my libraries and a part of error




Hanson Char

unread,
Nov 3, 2012, 3:57:26 PM11/3/12
to bea...@googlegroups.com
The stack trace doesn't seem to have anything to do with Beanlib (or Hibernate).  This means the failure occur outside of beanlib.  

Regards,
Hanson

przemek lewandowski

unread,
Nov 3, 2012, 4:11:34 PM11/3/12
to bea...@googlegroups.com
Yes I know that this is GWT error, cause of different serialization

Problem is propably, in bad initialization Object that is copied.

Can You tell me is everything all right with this code in servlet ?

session.beginTransaction();

List<Uzytkownik> uzytkownicyList = session.createCriteria(Uzytkownik.class).list();

if (!uzytkownicyList.isEmpty())
{
uzytkownik = uzytkownicyList.iterator().next();
System.out.println("Jest uzytkownik");

HibernateBeanReplicator replicator = new Hibernate3BeanReplicator("pl.dbg.prawnicy.shared");
replicator.initSetterMethodCollector(new PrivateSetterMethodCollector());
//HibernateBeanReplicator replicator = new Hibernate3BeanReplicator().initReaderMethodFinder(new PrivateReaderMethodFinder());
uzytkownik = uzytkownicyList.iterator().next();
Uzytkownik uzytkownikDTO = replicator.copy(uzytkownik);

UzytkownikZalogowanyInfo uzytkownikZalogowanyInfoDTO = replicator.copy(uzytkownikDTO.getUserLogedInfos().iterator().next());


uzytkownikDTO.getUserLogedInfos().clear();
uzytkownikDTO.getUserLogedInfos().add(uzytkownikZalogowanyInfoDTO);

System.out.println("Data z drugiego obiektu "+uzytkownikDTO.getUserLogedInfos().iterator().next().getWylogowany());
 return uzytkownikDTO;
I would like to use it as DTO Object but without creating new DTO classes, just copy to new Object ?? how can I achive it ?


Reply all
Reply to author
Forward
0 new messages