рдкреБрд░рд╛рдиреЗ рд╕рдордп рд╕реЗ, рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ рдЕрджреНрднреБрдд рдХреНрд░рдорд╛рдВрдХрди рддрдВрддреНрд░ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдорд╛рдирд╕рд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрдЯрд┐рд▓ рд╡рд╕реНрддреБ рд░реЗрдЦрд╛рдВрдХрди рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рднрдВрдбрд╛рд░рдг рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдХреНрд░рдордмрджреНрдз рд╡рд╕реНрддреБрдПрдВ "рд╡рдЬрди" рдХрд╛рдлреА рдХрдо рд╣реИрдВ, рдПрдХ рд╕рдордп рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ ... рдпрд╣ рд╕рдм рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЬрдм рддрдХ рдЖрдк рдЖрдордиреЗ рд╕рд╛рдордиреЗ рдирд╣реАрдВ рд░рд╣ рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдмрд╣реБ-рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд, рдмрд╣реБрдд рдореВрд▓реНрдпрд╡рд╛рди рдФрд░ рдЕрднреА рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрдкрдиреЗ рдирдВрдЧреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рдПрдВ рдФрд░ рд╕рдордЭреЗрдВ рдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдмрд┐рдирд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЗрд╕ рд╡рд┐рд╢рд╛рд▓ рдХреНрд░рдордмрджреНрдз рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ?
рд╕рд┐рд░рд┐рдпрд▓рд┐рд╕рд┐рд╕ рдЗрди рдФрд░ рдХрдИ рдЕрдиреНрдп рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реИ - рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рдЖрдкрдХреЛ рдХреНрд░рдордмрджреНрдз рдЬрд╛рд╡рд╛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ (
рдХреНрд░рдордмрджреНрдз рд░реВрдк рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд░реВрдкреЛрдВ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдореЗрд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдореИрдВрдиреЗ рдореВрд▓ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдЙрд╕ рд╡рд╕реНрддреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЙрд╕рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдХреНрд░рдорд╛рдВрдХрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рд╣реИред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ:рд╢рдирд┐рд╡рд╛рд░ред рд╢рд╛рдо рдХреЛред рдЗрд╕ рджрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░рд╛ рдХрд╛рдо рд╣рдбреВрдк рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдХреИрд╕рд╛ рд╣реИ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рд╣рдорд╛рд░реЗ рд╡рд┐рд╡реЗрдХ рдХреЛ рд╢рд╛рдВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ ...
<рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░>рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ, рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣рдорд╛рд░реЗ рд╣рдбреВрдк рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЖрдЙрдЯрдСрдлрдореЗрд░реА рдПрд░рд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд╛рд░реНрдп рдкреВрд░реЗ рд╣реЛрдиреЗ рд▓рдЧреЗ, рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдЕрдм рдХреЛрдИ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдерд╛ рдФрд░ рдЖрдИрдЯреА рд╡рд┐рднрд╛рдЧ рдиреЗ рдЙрдЪрд┐рдд рд╕рдордп рд▓рдЧрд╛рдХрд░ рдХрд╛рд░рдг рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдЖ рдХрд┐ рд╣рдорд╛рд░реЗ рдЕрдореЗрд░рд┐рдХреА рд╕рд╣рдпреЛрдЧреА рдиреЗ рд╕реЛрдЪ-рд╕рдордЭрдХрд░ рдХреЙрдиреНрдлрд┐рдЧ рдХреЛ рджреЗрдЦрд╛, рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рд╣реА рдХрд┐рдпрд╛, рдФрд░ рдХрд╣рд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред
рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреЛ рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛, рдФрд░ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╣рдореЗрдВ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐
рдХреНрд▓реВрдбреЗрд░рд╛ рдкреНрд░рдорд╛рдгрд┐рдд рдбреЗрд╡рд▓рдкрд░ рдЯреАрдо рдореЗрдВ рдерд╛ред
</ рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░>рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдпрд╣ рдерд╛!
рдЦрдбреБрдк рдиреЗ рдЧрд╡рд╛рд╣реА рджреА рдХрд┐ рдЗрд╕ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╢рдирд┐рд╡рд╛рд░ рдХреЛ рдПрдХ рднреА рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖред
рдХреНрд░реИрд╢ рдХрд╛ рдХрд╛рд░рдг рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕реЗ рдХреБрдЫ рдЕрд▓рдЧ рдерд╛: рдХрд╛рд░реНрдп рдЯреНрд░реИрдХрд░ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХрд╛рд░реНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА xml-file рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдирд╣реАрдВ рдереАред
рдмреЗрд╢рдХ, рдореБрдЭреЗ рддреБрд░рдВрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд╛рдХреНрд╖рд╕реА рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ? рдХрд╛рд╢, рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкрдЪрд╛рд╕ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдмреВрдБрдж рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмреВрдБрдж рдореЗрдВ рдПрдХ рджрд░реНрдЬрди рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЧреНрд░рд╛рдл рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реИред
рдЕрдХреЗрд▓реЗ рдХрд╛рдордЪрд▓рд╛рдК рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдорджрдж рд╕реЗ рд╢рдирд┐рд╡рд╛рд░ рд╢рд╛рдо рдХреЛ рдЗрд╕ рдмрд╣реБ-рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдЙрджреНрдзрд╛рд░рдХрд░реНрддрд╛ рдЖрддрд╛ рд╣реИ: рд╕реАрд░рд┐рдпрд▓ред рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ - рдФрд░ рдореЗрд░реЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рд╡рд░реНрдЧреЛрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╡рд╕реНрддреБ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдбрдВрдк рд╣реИред рд╣рд╛рде рдкрд░ рдПрдХ рдкреВрд░реНрдг рдбрдВрдк рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рд▓рд┐рдП
рдЧрдЬрд╝рд┐рдк рд╕рдВрдкреАрдбрд╝рди рдЪрд╛рд▓реВ рдХрд░реЗрдВ,
рдЬреЗрдмреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреИрдЪ рдХрдХреНрд╖рд╛рдПрдВред рд╡реЛрдЗрд▓рд╛ - рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ!
рдпрд╣ рдПрдХ рд╣реИрдХ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдмрд┐рдирд╛ рд╣реИрдХ рдХреЗ - рдХрд╣реАрдВ рдирд╣реАрдВред
рдкреБрдирд╢реНрдЪ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕реНрдерд╛рдпреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдордп рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд┐рдХрд▓рд╛ред рд╕рдЪ рдХрд╣реВрдБ рддреЛ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрдХ рдиреЗ рдЬреЛ рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд╛рдП, рд╡реЗ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдЬреАрдм рд▓рдЧреЗред рднрдЧрд╡рд╛рди рдХреЗ рд▓рд┐рдП, рдареАрдХ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рдореЗрдВ рдмрдВрджрд░рдЧрд╛рд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдмрддрд╛рдпрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ! рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рд╣реИ, рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред
рджрд░рдЕрд╕рд▓, рд▓реЗрдЦ:рдЬрдм рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ
Serialysis рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдЬрдм рдореБрдЭреЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рдореБрдЭреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА рдереА, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдХреНрд░рдордмрджреНрдз рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдереАред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рджреВрд░рд╕реНрде RMI рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯрдм рд╣реИ, рдФрд░ рдЖрдк рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкрддреЗ рдпрд╛ рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛, рдпрд╛ рдХреМрди рд╕рд╛
RMI рд╕реЙрдХреЗрдЯ рдлреИрдХреНрдЯрд░реА (RMIClientSocketFactory) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдорд╛рдирдХ RMI API рд╕реНрдЯрдм рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Deserialization рдХреЗ рдмрд╛рдж рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареВрдВрда рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХреНрд░рдордмрджреНрдз рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдХреНрд░рдордмрджреНрдз рд╕реНрдЯрдм рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг
рдЬреЗрдПрдордПрдХреНрд╕ рдПрдкреАрдЖрдИ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛
рд╣реИ ред MBean рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ
QueryExp рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреНрд╡рд╛рд░рд╛
рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред QueryExp рдЙрджрд╛рд╣рд░рдг
рдХреНрд╡реЗрд░реА рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреА рд╡рд╕реНрддреБ QueryExp рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдкреНрд░рд╢реНрди рдХрд░рддрд╛ рд╣реИ? JMX API рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдХреНрд░рдордмрджреНрдз рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЬрдм рдХреЛрдИ рдЧреНрд░рд╛рд╣рдХ рдХрд┐рд╕реА рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗ, рддреЛ рдЙрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрджрд┐ рд╣рдо рдХреНрд░рдордмрджреНрдз рд░реВрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреБрд░реЛрдз рдХреНрдпрд╛ рдерд╛ред
рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдиреЗ рдореБрдЭреЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдореМрдЬреВрджрд╛ рдорд╛рдирдХ JMX рдХрдиреЗрдХреНрдЯрд░ рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ QueryExps рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдирдИ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ
рдЬреЗрдПрд╕рдЖрд░ 262 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрдиреЗрдХреНрдЯрд░ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдПрдордПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред QueryExp рдХреЛ рдкрд╛рд░реНрд╕ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ XML рдореЗрдВ рдмрджрд▓реЗрдВ? рдЙрддреНрддрд░ рд╕рд░рд▓ рд╣реИ: рдХреНрд░рдордмрджреНрдз QueryExp рдХреЗ рдЕрдВрджрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП WS рдХрдиреЗрдХреНрдЯрд░ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЗрди рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдПрдХ рдЪреАрдЬ рд╕рдорд╛рди рд╣реИ: рд╡реЗ рдЕрдкрдиреЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдкреАрдЖрдИ рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ RMI рд╕реНрдЯрдм рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрд┐рд╕ рддрд░рд╣ рдЖрдкрдХреЛ QueryExp рдХреЛ рдореВрд▓ рдХреНрд╡реЗрд░реА рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИред (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдорд╛рдирдХ toString () рдЖрдЙрдЯрдкреБрдЯ, рдЬреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ)ред рд▓реЗрдХрд┐рди рдЕрдм рдРрд╕реА рдХреЛрдИ рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╣рдо рдХреЛрдб рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЗрди рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдШреБрд╕ рдЬрд╛рддреЗ рд╣реИрдВ
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрди рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ рдЬрд┐рдирдореЗрдВ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рд▓реЛрднрди рдмрд╕ рд╡рд╛рдВрдЫрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред RMI рд╕реНрдЯрдм рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐
getRef () рд╕реНрдЯрдм рд╡рд┐рдзрд┐ sun.rmi.server.UnicastRef рджреЗрддрд╛ рд╣реИ, рдФрд░ JDK рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ ref.f рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИ sun.rmi.transport.LiveRef, рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рдеред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рдХреЛрдб рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╣реВрдВрдЧрд╛, рдЖрдкрдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП):
import sun.rmi.server.*; import sun.rmi.transport.*; import java.rmi.*; import java.rmi.server.*; public class StubDigger { public static getPort(RemoteStub stub) throws Exception { RemoteRef ref = stub.getRef(); UnicastRef uref = (UnicastRef) ref; Field refField = UnicastRef.class.getDeclaredField("ref"); refField.setAccessible(true); LiveRef lref = (LiveRef) refField.get(uref); return lref.getPort(); } }
рд╢рд╛рдпрдж рдкрд░рд┐рдгрд╛рдо рдЖрдкрдХреЛ рдХрд╛рдлреА рд╕реВрдЯ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди, рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ, рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреЗрддрд╛ - рдпрд╣ рдХреЛрдб рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реВрд░рдЬ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрднреА рди рдХрд░реЗрдВред * рдХрдХреНрд╖рд╛рдПрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рднреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рд╕реА рднреА рдЬреЗрдбреАрдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдорд╛рдиреНрдпрддрд╛ рд╕реЗ рдкрд░реЗ рдирд╣реАрдВ рдмрджрд▓реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХрд╛ рдХреЛрдб рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдЬреЗрдбреАрдХреЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реЗ, рдЬрдм рдЖрдк
Field.setAccessible рдХреА рддрд░рд╣ рдХреБрдЫ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдЯреЙрдк рд╕рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝реАрд▓реНрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рддрдХ рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрджрд▓реЗ рд╣реБрдП рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рдеред
(рдпрд╣ рдХреЛрдб JDK 5 рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, JDK 6 рдореЗрдВ LiveRef рдиреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ getPort () рд╡рд┐рдзрд┐ рдХрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЕрдм рдЖрдкрдХреЛ Field.setAccessible рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд╕реВрд░рдЬ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред * рдХрдХреНрд╖рд╛рдПрдВред)
рдмреЗрд╢рдХ, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рддреЛ рд╡реЗ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗ, рддреЛ рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдк рд╕рдлрд▓ рд╣реЛрдВрдЧреЗред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдХреНрд░рдордмрджреНрдз рд░реВрдк рдЗрд╕рдХреЗ рдЕрдиреБрдмрдВрдз рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрджрд┐ рдПрдкреАрдЖрдИ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдмрд╛рд╣рд░реА рдЕрдиреБрдмрдВрдз рдЗрд╕рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬреЗрдбреАрдХреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдПред
рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдПрдХ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХреНрд░рдордмрджреНрдз рд░реВрдк рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рдЖрд╢рд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреНрд░рдордмрджреНрдз рд░реВрдк рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдиреБрдХреНрд░рдорд┐рдд рд░реВрдк рдХрд╛ рд╡рд┐рд╡рд░рдг рдЬрд╛рд╡рджреЛрдХ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЖрдк рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ JDK рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХреНрд░рдордмрджреНрдз рд░реВрдкреЛрдВ рдХреЛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкреГрд╖реНрда рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдирдорд╕реНрддреЗ рд╕рд┐рд░рд┐рдпрд▓рд┐рд╕рд┐рд╕!
рдХреНрд░рдордмрджреНрдз рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ "рд╕реАрд░рд┐рдпрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг" рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ, рд╕реАрд░рд┐рдпрд▓рд┐рдпрд▓рд┐рд╕рд┐рд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЛрдб ...
SEntity sint = SerialScan.examine(new Integer(5)); System.out.println(sint);
... рдпрд╣ рд▓рд╛рдПрдЧрд╛ ...
SObject(java.lang.Integer){ value = Prim(int){5} }
рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ java.lang.Integer рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╡рд╕реНрддреБ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ SerialScan.examine рдХреЛ рджрд┐рдпрд╛ рдерд╛, рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдВрджрд░ int рдХреЗ рдПрдХрд▓ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рд╣рдо
рдкреНрд░рд▓реЗрдЦрд┐рдд рдХреНрд░рдордмрджреНрдз рд░реВрдк java.lang.Integer рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ
рд╣реИрдВ , рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ред
рдпрджрд┐ рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб java.lang.Integer рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡рд░реНрдЧ рдореЗрдВ рднреА рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдлрд╝реАрд▓реНрдб рд╣реИ int:
private final int value;
рд▓реЗрдХрд┐рди рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╣реИрдВред рдЕрдкрдбреЗрдЯ рдореЗрдВ, рдлрд╝реАрд▓реНрдб рдХреЛ рдирдпрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдореВрд▓ рд╡рд░реНрдЧ
java.lang.Number , рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдФрд░ рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рдд рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ рдХрд┐ рдХреНрд░рдордмрджреНрдз рд░реВрдк рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдЧрд╛ред рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди
рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд░реВрдк рдХреЛ рдЙрд╕рдХреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ
рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдмрджрд▓ рдЧрдП рд╣реЛрдВред
рдпрд╣рд╛рдБ рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╣рдо рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐
рдРрд░реЗрд▓реЗрд╕реНрдЯ рдХреЗ рдЕрдВрджрд░ рд╕рд░рдгреА рдХрд┐рддрдиреА рдмрдбрд╝реА рд╣реИред рдПрдкреАрдЖрдИ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣рдореЗрдВ
рджрд┐рдП рдЧрдП рд╕реЗ рдХрдо рдирд╣реАрдВ рдПрдХ рд╕рд░рдгреА рдХреЗ рдЖрд╡рдВрдЯрди рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
редрдпрджрд┐ рд╣рдо
ArrayList рдХреЗ
рдХреНрд░рдордмрджреНрдз рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕рдореЗрдВ рд╡рд╣ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рд╣рдо рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдХреНрд░рдордмрджреНрдз рдлрд╝реАрд▓реНрдб рдЖрдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕реВрдЪреА рдореЗрдВ рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди WriteObject рдкрджреНрдзрддрд┐ рдореЗрдВ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдбреЗрдЯрд╛ рдореЗрдВ рд╡рд╣реА рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:
рд╕реАрд░рд┐рдпрд▓ рдбреЗрдЯрд╛:рдЖрдВрддрд░рд┐рдХ ArrayList рдХреА рд▓рдВрдмрд╛рдИ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдкреАрдЫреЗ - рджрд┐рдП рдЧрдП рдХреНрд░рдо рдореЗрдВ рд╕рднреА рддрддреНрд╡ (рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ)редрдЕрдЧрд░ рд╣рдо рдпрд╣ рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ ...
List<Integer> list = new ArrayList<Integer>(); list.add(5); SObject slist = (SObject) SerialScan.examine(list); System.out.println(slist);
... рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд╖реНрдХрд░реНрд╖ рдорд┐рд▓рддрд╛ рд╣реИ ...
SObject(java.util.ArrayList){ size = SPrim(int){1} -- data written by class's writeObject: SBlockData(blockdata){4 bytes of binary data} SObject(java.lang.Integer){ value = SPrim(int){5} } }
рдпрд╣рд╛рдБ рд╣рдо рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рдЕрдВрдзреЗрд░реЗ рдЬрдВрдЧрд▓ рдореЗрдВ рдкрд╛рддреЗ рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝реАрд▓реНрдб рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд░рд╛рдЗрдЯрдСрдмрдЬреЗрдХреНрдЯ (ObjectOutputStream) рд╡рд┐рдзрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ
рдСрдмреНрдЬреЗрдХреНрдЯOutputStream.writeInt рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рд╕реНрдЯреНрд░реАрдо рдХреЛ рдордирдорд╛рдирд╛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддреА рд╣реИред рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд░реАрдбрдСрдмрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐ рднреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рддреА рд╣реИ, рдФрд░
@serialData рдЯреИрдЧ рдХреА рдорджрдж рд╕реЗ рдпрд╣
рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ WriteObject рд╡рд┐рдзрд┐ рдХреНрдпрд╛ рд▓рд┐рдЦрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ ArrayList рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
Serialysis рдореЗрдВ рд░рд╛рдЗрдЯрдСрдмрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ SObject.getAnnotations () рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред
ObjectOutputStream.writeObject (рдСрдмреНрдЬреЗрдХреНрдЯ) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд░реНрдЬ рдХреА рдЧрдИ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдПрдХ SObject рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред
DataOutput (
writeInt ,
writeUTF рд╡рдЧреИрд░рд╣ ) рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА ObjectOutputStream рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдЧрд╛рддрд╛рд░ рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝реЗ рдХреЛ SBlockData рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рдзрд╛рд░рд╛ рдЖрдкрдХреЛ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЗ рднреАрддрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИ; рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрдЦрдХ рдФрд░ рдкрд╛рдардХ рдХреЗ рдмреАрдЪ, @serialData рдЯреИрдЧ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИред
ArrayList рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рд░рдгреА рдХрд╛ рдЖрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
SObject slist = (SObject) SerialScan.examine(list); List<SEntity> writeObjectData = slist.getAnnotations(); SBlockData data = (SBlockData) writeObjectData.get(0); DataInputStream din = data.getDataInputStream(); int alen = din.readInt(); System.out.println("Array length: " + alen);
рдХреИрд╕реЗ Serialysis рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рд╣рд▓ рдХрд░рддреА рд╣реИ
рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдХреЗрд╡рд▓ QueryExp рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмрд╛рдд рдХреА рдереАред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ QueryExp рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
QueryExp query = Query.or(Query.gt(Query.attr("Version"), Query.value(5)), Query.eq(Query.attr("SupportsSpume"), Query.value(true)));
рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ: "рдореБрдЭреЗ 5 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдЬрди рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓реЗ рдПрдордмреАрдпрдирд░реНрд╕ рджреЗрдВ рдпрд╛ рд╕рддреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╕рдкреЛрд░реНрдЯрд╕реНрдкрд░реНрдо рд╡рд┐рд╢реЗрд╖рддрд╛ред" JDK рдореЗрдВ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП .String () рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
((Version) > (5)) or ((SupportsSpume) = (true))
рдФрд░ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ SerialScan.examine рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрддрд╛ рд╣реИ:
SObject(javax.management.OrQueryExp){ exp1 = SObject(javax.management.BinaryRelQueryExp){ relOp = SPrim(int){0} exp1 = SObject(javax.management.AttributeValueExp){ attr = SString(String){"version"} } exp2 = SObject(javax.management.NumericValueExp){ val = SObject(java.lang.Long){ value = SPrim(long){5} } } } exp2 = SObject(javax.management.BinaryRelQueryExp){ relOp = SPrim(int){4} exp1 = SObject(javax.management.AttributeValueExp){ attr = SString(String){"supportsSpume"} } exp2 = SObject(javax.management.BooleanValueExp){ val = SPrim(boolean){true} } } }
рдХреЛрдб рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдмрд╣рддрд╛ рд╣реИ, рдПрдХ XML рд╕рдорддреБрд▓реНрдп рдмрдирд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЧрдд JMX рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдареАрдХ рдЙрд╕реА рдХреНрд░рдордмрджреНрдз рд░реВрдк рдореЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рдХрд╣реАрдВ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рдПрдЧреАред
рдЕрдм
RMI рд╕реНрдЯрдм рдореЗрдВ рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб:
public static int getPort(RemoteStub stub) throws IOException { SObject sstub = (SObject) SerialScan.examine(stub); List<SEntity> writeObjectData = sstub.getAnnotations(); SBlockData sdata = (SBlockData) writeObjectData.get(0); DataInputStream din = sdata.getDataInputStream(); String type = din.readUTF(); if (type.equals("UnicastRef")) return getPortUnicastRef(din); else if (type.equals("UnicastRef2")) return getPortUnicastRef2(din); else throw new IOException("Can't handle ref type " + type); } private static int getPortUnicastRef(DataInputStream din) throws IOException { String host = din.readUTF(); return din.readInt(); } private static int getPortUnicastRef2(DataInputStream din) throws IOException { byte hasCSF = din.readByte(); String host = din.readUTF(); return din.readInt(); }
рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП,
рдХреНрд░рдордмрджреНрдз рд░рд┐рдореЛрдЯрдСрдмрдЬреЗрдХреНрдЯ рдлреЙрд░реНрдо рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рдпрд╣ рдХреЛрдб, рдмреЗрд╢рдХ, рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреЛрд░реНрдЯ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрд░рдПрдордЖрдИ рд╕реНрдЯрдмреНрд╕ рд╕реЗ рдЕрдиреНрдп рд╕рднреА рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ - рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдк рддрдм рддрдХ рдХреНрд░рдордмрджреНрдз рд░реВрдкреЛрдВ рдореЗрдВ рддрд▓реНрд▓реАрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдЧрдВрднреАрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ Serialysis рдЖрдкрдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдПрдВ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХреНрд░рдордмрджреНрдз рд╣реИрдВ рдЬреИрд╕реА рдЖрдк рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред
рдЖрдк рдпрд╣рд╛рдБ рд╕реЗ Serialysis рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
http://weblogs.java.net/blog/emcmanus/serialysis.zip ред