рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред JMS рдЖрдкрдХреЛ рдПрдХ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╕ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдПрдордбреАрдмреА рдмреАрдиреНрд╕ рдЖрдкрдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд┐рдирд╛ рдЖрд╡реЗрджрди рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдПрдордбреАрдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЗрдПрдордПрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ
рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╣рд╛рдпрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ (рдирд┐рд░реНрдорд╛рддрд╛) рдФрд░ рдЙрдиреНрд╣реЗрдВ (рдЙрдкрднреЛрдХреНрддрд╛) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрджреЗрд╢
рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдЧрдВрддрд╡реНрдп рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдХрддрд╛рд░ рдпрд╛ рд╡рд┐рд╖рдп рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдкрднреЛрдХреНрддрд╛ рд╡рд╣рд╛рдВ рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ
рдЧрдВрддрд╡реНрдп рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреЛ рдореИрд╕реЗрдЬрд┐рдВрдЧ рдореЙрдбрд▓ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛ рдореЙрдбрд▓ - рдкреНрд╡рд╛рдЗрдВрдЯ-рдЯреВ-рдкреНрд╡рд╛рдЗрдВрдЯ
рдпрджрд┐ рдЧрдВрддрд╡реНрдп рд╕рд░реНрд╡рд░ рдореЗрдВ рдХрддрд╛рд░ рдкреНрд░рдХрд╛рд░ рд╣реИ, рддреЛ рдирд┐рд░реНрдорд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ рд╕рдВрджреЗрд╢ рдПрдХрдорд╛рддреНрд░ рдЙрдкрднреЛрдХреНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХрдИ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
рджреВрд╕рд░рд╛ рдореЙрдбрд▓ - рдкреНрд░рдХрд╛рд╢рд┐рдд-рд╕рджрд╕реНрдпрддрд╛
рдпрджрд┐ рдЧрдВрддрд╡реНрдп рд╕рд░реНрд╡рд░ рд╡рд┐рд╖рдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрджреЗрд╢ рдХреЛ рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рдЧрдВрддрд╡реНрдп рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рджреА рдЧрдИ рд╣реИред
рдЬреЗрдПрдордПрд╕ рд╕рдВрджреЗрд╢ рд╕рдВрд░рдЪрдирд╛
рдПрдХ рд╕рдВрджреЗрд╢ рдореЗрдВ рдПрдХ рд╣реЗрдбрд░, рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреНрд╖реЗрддреНрд░ рдФрд░ рдПрдХ рдирд┐рдХрд╛рдп рд╣реЛрддрд╛ рд╣реИред
рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдореЗрдЯрд╛ рд╕рдВрджреЗрд╢ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдмрд╛рджреА рд╣реИред
рдкреНрд░реЙрдкрд░реНрдЯреА рдлрд╝реАрд▓реНрдб рд╣реЗрдбрд░ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдкреЙрдкреБрд▓реЗрдЯреЗрдб рд╣реИ, рдФрд░ рдмрд╛рдж рдореЗрдВ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред
рд╢рд░реАрд░ рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреЗрд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рдмрдирд╛рддреЗ рд╕рдордп рд▓реЛрдб рдХрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░
javax.jms.Message рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВ
редрд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдХрддрд╛рд░ рдмрдирд╛рдирд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд┐рд╖рдп рдмрдирд╛рдПрдВрдЧреЗред рдореИрдВ рдЧреНрд▓рд╛рд╕рдлрд┐рд╢ 3.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХрдиреЗрдХреНрд╢рди рдлреИрдХреНрдЯрд░реА рдмрдирд╛рдПрдВред рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдИ рдкреНрд░рдХрд╛рд░ рд╕рдВрднрд╡ рд╣реИрдВред

рдлрд┐рд░ рд╣рдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдЧрдВрддрд╡реНрдп рдмрдирд╛рддреЗ рд╣реИрдВред

рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдмрдирд╛рдПрдБ
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рд░реНрдорд╛рддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рдВрджрд░реНрдн рд╕реЗ рдЙрдирдХреЗ рдорд╛рдирдХ JNDI рдирд╛рдо рдХреА рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
// @Resource(name="jms/TutorialPool") private ConnectionFactory connectionFactory; @Resource(name="jms/TutorialTopic") private Destination destination; public String getEnterString() { return enterString; } public void sendString(String enterString) { try { // Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(destination); TextMessage message = session.createTextMessage(); // JMS message.setStringProperty("clientType", "web clien"); // payload message.setText(enterString); // producer.send(message); System.out.println("message sent"); // session.close(); connection.close(); } catch (JMSException ex) { System.err.println("Sending message error"); ex.printStackTrace(); } }
рд╕рдВрджреЗрд╢-рдкреНрд░реЗрд░рд┐рдд рдмреАрди
рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдордбреАрдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЙрдкрднреЛрдХреНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрдЬреЛ рдЕрднрд┐рдирдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди MDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рдкреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╕рд░реНрд╡рд░ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдЧрд╛ред
MBD рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдСрдирдореИрд╕реЗрдЬ () рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ javax.jms.MessageListener рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╕реЗрдо рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рд╡рд░реНрдЧ рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░реЗрдВред
рдЖрдЗрдП рдПрдордбреАрдмреА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд░реНрд╡рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
@MessageDriven( // topic, mappedName="jms/TutorialTopic", name = "ExampleMDB") public class MDBExample implements MessageListener{ //, @Override public void onMessage(Message msg) { try { TextMessage message = (TextMessage)msg; // , consumer System.out.println("FROM MDB - client type IS " + message.getStringProperty("clientType")); // System.out.println("FROM MDB - payload IS" + message.getText()); } catch (JMSException ex) { ex.printStackTrace(); } } }
рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рдХрд╛рд░, рдЙрд╕рдХреА рд╕рд╛рдордЧреНрд░реА, рдЖрджрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рдСрдирдореИрд╕реЗрдЬ рд╡рд┐рдзрд┐ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдореИрдиреБрдЕрд▓ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
@Resource(name="jms/TutorialPool") private ConnectionFactory connectionFactory; @Resource(name="jms/TutorialTopic") private Destination destination; void onMessage(){ try { Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageConsumer consumer = session.createConsumer(destination); connection.start(); while(true){ Message msg = consumer.receive(); // } // connection } catch (JMSException ex) { ex.printStackTrace(); } }
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЬреЗрдПрдордПрд╕ рдФрд░ рдИрдЬреЗрдмреА рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкреБрд╕реНрддрдХреЛрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:
рдИрдЬреЗрдмреА 3 рдПрдХреНрд╢рди - рджреЗрдмреВ рдкрд╛рдВрдбрд╛, рд░реЗрдЬрд╛ рд░рд╣рдорд╛рди, рдбреЗрд░реЗрдХ рд▓реЗрдирдПрдбрдо рдмрд╛рдпрди рдХреА рдХреБрдЫ рдХрд┐рддрд╛рдмреЗрдВ