GWT + рд╣рд╛рдЗрдмрд░рдиреЗрдЯ + рдбрд┐рд╕реНрдкреИрдЪ

рдПрдХ рдкреЛрд░реНрдЯрд▓ рдмрдирд╛рддреЗ рд╕рдордп, рдмрд╣реБрдд рдмрд╛рд░ рдмреИрдХрдПрдВрдб рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдм рдХреЛрдИ рднреА рдХрдерди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕реНрдерд╛рди рдкрд░ рд╡реЗ ORM рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред GWT рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдврд╛рдВрдЪрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╡рддрдпрд╛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рд╡рд╛ рд╣реИред рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдерд╛ рдХрд┐ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рд╕рдВрдкреВрд░реНрдг POJO (рд▓рдЧрд╛рддрд╛рд░ рд╡рд╕реНрддреБрдУрдВ) рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рдж рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рд░рд▓ рд╣реЛрдЧрд╛ред рддреЛ рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдмрдирд╛рдИ, POJO рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд▓реМрдЯрдХрд░ред POJO рдХреЛ рд╕реАрд░рд┐рдпрд▓ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдЕрдкрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛:

Caused by: com.google.gwt.user.client.rpc.SerializationException: Type 'org.hibernate.collection.PersistentSet' 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.
at com.google.gwt.user.server.rpc.impl.StandardSerializationPolicy.validateSerialize(StandardSerializationPolicy.java:83)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:591


рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ рд╣реА рдХреЛрдИ рд╡рд╕реНрддреБ рд▓рдЧрд╛рддрд╛рд░ рдмрдирддреА рд╣реИ, рдЙрд╕рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдорд┐рдд рд╕реЗрдЯ рдПрдХ PersistentSet рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдм рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рднреЗрдЬреА рдЧрдИ рд╡рд╕реНрддреБ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдПрдХреАрдХрд░рдг рдХреЗ рддрд░реАрдХреЗ

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рдерд╛, рдореИрдВ рдРрд╕рд╛ рдкрд╣рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реВрдВ рдЬреЛ POJO рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкрд╣рд▓реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ рдЬрд┐рд╕рдиреЗ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реЛред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдФрд░ GWT рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рддреАрди рдореБрдЦреНрдп рддрд░реАрдХреЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
тАв рдбреАрдЯреАрдУ (рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕) - рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рдЙрди рд╕рднреА рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреИрд╕реЗ рдХрд┐ рдкреАрдУрдЬреЗрдУ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
тАв рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЛрдЬрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ - рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдПрдХ рд╣реА рдлрд╝реАрд▓реНрдб рдФрд░ рдЧреЗрдЯрдмреИрди рд╕рдВрдХреЗрддрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
тАв рдЧрд┐рд▓реЗрдб рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ 4gwt рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдлреА рддреБрдЪреНрдЫ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдирд╣реАрдВ рдорд╛рдиреВрдВрдЧрд╛, рд╕рд╛рде рд╣реА рджреВрд╕рд░рд╛, рдЬреЛ рдкрд╣рд▓реЗ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рд╣реИред рдпрджрд┐ рдЖрдк рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ dozer.sourceforge.net рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ

рдЧрд┐рд▓рд┐рдпрдб

рдмрд╣реБрдд рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдЕрднреА рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред Glead рдПрдХ рдУрдкрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ POJO рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, PersistentBeanManager рдирд╛рдордХ рдПрдХ рдкрд░рдд рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдХрд░рддреЗ рд╕рдордп, PBM рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ POJO рдХреЛ рдПрдХ рд╕рдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕рднреА LazyInitiaslization рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЙрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрднреА NULL рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХреГрдд рдирд╣реАрдВ рд╣реИрдВред рдЙрд╕реА рд╕рдордп рдореЗрдореЛрд░реА рдореЗрдВ POJO рдХрд╛ рднрдВрдбрд╛рд░рдгред рд░рд┐рдЯрд░реНрди рд░рди рдкрд░, PBM рдХреНрд▓рд╛рдЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд POJO рдХреЗ рд╕рд╛рде рдмреНрд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде POJO рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪрдорддреНрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ gwt.xml рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рд╕рднреА POJO LightEntity рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдВ, рдФрд░ RemoteServiceServlet PersistantRemoteService рдХреЗ рдмрдЬрд╛рдп рд╕рд░реНрд╡рд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╢рд╛рдпрдж рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╛рд░реНрдердХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд▓реЗрдЦ рдХреЗ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдбрд┐рд╕реНрдкреИрдЪ рд╢рдмреНрдж рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдбрд┐рд╕реНрдкреИрдЪ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Gwt-рдбрд┐рд╕реНрдкреИрдЪ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдкреИрдЪ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Guice рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЛрдИ рд╕реЗрд╡рд╛ рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдорд╛рдирдХ GuiceStandardDispatchServlet рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ gwt-dispatch рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЕрдВрджрд░ рд╡рд╛рдпрд░реНрдб рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ред

рдЧрд┐рд▓рд┐рдпрдб + рдбрд┐рд╕реНрдкреИрдЪ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ gwt-dispatch рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╛рд░рд╛ рдХреЗ рдХреБрдЫ рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рднрдВрдбрд╛рд░ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рд▓реЗрддреЗ рд╣реИрдВред hg clone code.google.com/p/gwt-dispatch
рд╣рдо рдЖрдИрдбреАрдИ рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рдпрд╣ рд╕рдм рдбрд╛рд▓рддреЗ рд╣реИрдВред рдореИрдВ рдЧреНрд░рд╣рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд▓рд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ .classpath рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛрдбрд╝реЗ
тАв рдЧрд┐рд▓реНрдб-рдХреЛрд░-1.3.2.1839.рдЬрд░
тАв gliead-hibernate-1.3.2.1839.jar
тАв glead4gwt-1.3.2.1839.jar
тАв рдЬрд┐рди-1.5-рдкреЛрд╕реНрдЯ- gwt-2.2.jar
тАв guice-3.0.jar
тАв рд╣рд╛рдЗрдмрд░рдиреЗрдЯ.рдЬрд░
тАв org.springframework.beans-3.1.2.RELEASE.jar
тАв org.springframework.context-3.1.2.RELEASE.jar
тАв org.springframework.web-3.1.2.RELEASE.jar
рд╣рдо net.customware.gwt.dispatch.server.standard.AbstractStandardDispatchServlet рд╡рд░реНрдЧ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдХрдИ рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ:
 public abstract class AbstractStandardDispatchServlet extends PersistentRemoteService implements StandardDispatchService { public AbstractStandardDispatchServlet() { HibernateUtil hibernateUtil = new HibernateUtil(); SessionFactory sf; Configuration conf = new Configuration(); conf.configure(); conf.getProperties(); sf = conf.buildSessionFactory(); hibernateUtil.setSessionFactory(sf); PersistentBeanManager persistentBeanManager = new PersistentBeanManager(); persistentBeanManager.setPersistenceUtil(hibernateUtil); StatelessProxyStore sps = new StatelessProxyStore(); sps.setProxySerializer(new GwtProxySerialization()); persistentBeanManager.setProxyStore(sps); setBeanManager(persistentBeanManager); } public <R extends Result> R execute(Action<R> action) throws DispatchException { try { Dispatch dispatch = getDispatch(); if (dispatch == null) throw new ServiceException("No dispatch found for servlet '" + getServletName() + "' . Please verify your server-side configuration."); return dispatch.execute(action); } catch (RuntimeException e) { log("Exception while executing " + action.getClass().getName() + ": " + e.getMessage(), e); throw new ServiceException(e); } } /** * * @return The Dispatch instance. */ protected abstract Dispatch getDispatch(); } 

рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рдЖрдк рдмрд╕ рдкреБрд░рд╛рдиреЗ рдореЗрдВ .class рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ)ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ
тАв рдмреАрдирд▓рд┐рдм-5.0.5.рдЬрд░
тАв рдмреАрдирд▓рд┐рдм-рд╣рд╛рдЗрдмрд░рдиреЗрдЯ-5.0.5.рдЬрд░
тАв com.springsource.net.sf.cglib-2.2.0.jar

рд╣рдо gwt.xml рдореЗрдВ gilead рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рд╣рдорд╛рд░реА LightEntity рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рди рд╕рдХреЗ
 <inherits name="net.sf.gilead.Gilead4Gwt" /> 

рдФрд░ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рд╕рднреА POJO LightEntity рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ
 @Entity @Table(name = "CARD") public class Card extends LightEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "CARDID", columnDefinition = "BIGINT NOT NULL AUTO_INCREMENT") private long cardId; @Column(name = "CARDNUMBER") private String cardNumber; @ManyToOne @JoinColumn(name = "USERID", insertable = false, updatable = false, nullable = false) private User user; @Column(name = "ACTIVATED") private Integer activated; public Long getCardId() { return cardId; } public void setCardId(Long cardId) { this.cardId = cardId; } public String getCardNumber() { return cardNumber; } public void setCardNumber(String cardNumber) { this.cardNumber = cardNumber; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public Integer getActivated() { return activated; } public void setActivated(Integer activated) { this.activated = activated; } } 

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫред рдбрд┐рд╕реНрдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП рдЕрдм рдЖрдк рдЬреАрдбрдмреНрд▓реНрдпреВрдЯреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдкрдиреА рд▓рдЧрд╛рддрд╛рд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In154321/


All Articles