Java Message Service



  • Hallo,

    also dieser JMS ist doch einfach eine API. Wie die einzelnen Provider die API realisieren , das liegt dann wohl bei denen. Die requests werden doch ganz normal mit HTTP verschickt oder. In der payload ist dann die java message enthalten. Seh ich das richtig ?



  • Soweit ich das versteh, erhaelt der Service Provider die Message von irgendjemand und liefert sie dann an die Clients aus. Dachte zuerst der Service Provider erzeugt die Nachricht auch..

    Und wozu eigentlich die Queue. In der Queue werden doch alle Clients gespeichert die Interesse an der Nachricht haben. Oder nee. Hm. Keine Ahnung. Oder hat jeder Client seine eigene Queue , was ja bedeuten wuerde er speichert in der Queue die Nachricht und holt sie irgendwann ab. Hm



  • Ich hab mir jetzt mal das Package javax.jms angeschaut. Da sind allein 100 interfaces drin. Das heisst man muss den Java Message Service fast komplett selbst implementieren. Ist ja krass.



  • Hier NUR mal das Interface MessageConsumer. All diese Methoden MUESSEN implementiert werden...

    public class JMSService implements MessageConsumer{
    
    	@Override
    	public void close() throws JMSException {
    		// TODO Auto-generated method stub
    
    	}
    
    	@Override
    	public MessageListener getMessageListener() throws JMSException {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public String getMessageSelector() throws JMSException {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public Message receive() throws JMSException {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public Message receive(long arg0) throws JMSException {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public Message receiveNoWait() throws JMSException {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	@Override
    	public void setMessageListener(MessageListener arg0) throws JMSException {
    		// TODO Auto-generated method stub
    
    	}
    }
    


  • Hier der Link zu JMS. https://docs.oracle.com/javaee/7/api/javax/jms/package-summary.html

    Mich wunderts dass hier Client und Provider Klassen/Interfaces gemischt werden. Das eine laeuft doch beim Client das andere auf nem Server.



  • Du musst dich schon etwas mehr anstrengen. Wenn der Satz so losgeht

    computernerds schrieb:

    also dieser

    will eigentlich niemand mehr weiterlesen.



  • mehr anstrengen ? das ist der laengste Thread aller Zeiten von mir 🙂

    hoffe einer kennt sich mit JMS aus



  • Jetzt hab ich es doch tatsaechlich geschafft einen Java Message Service aufzusetzen. Man braucht einen Producer, einen Consument und den Broker.

    Was mich jetzt total wundert. Die Broker URL ist mit tcp addressiert.

    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://DESKTOP-3RRM7RQ:61616");
    

    Wo ist hier die oberste Schicht ? Also wieso kein http ?



  • Wieso meinst Du, http zu brauchen?



  • aber man braucht doch eine Anwendungsschicht. TCP ist doch nur zum Transport da. Ich muss ja wissen was transpiert werden soll. Ein leerer LKW hilft mir ja nicht weiter...



  • Die Anwendungsschicht heisst Java Message Service.



  • SG1 schrieb:

    Die Anwendungsschicht heisst Java Message Service.

    Muesste es dann nicht jms://Desktop-3RRM7RQ:61616 sein

    sonst koennte man ja auch statt

    http://www.c-plusplus.net/forum

    dann

    tcp://www.c-plusplus.net/forum

    schreiben. Haha. Bin gewohnt dass immer das hoechste Protokoll in der URL genannt wird 🙂



  • Ist sogar eine halbwegs berechtigte Frage. Hier drückt das Protokoll etwas anderes aus, als im Browser. Du weißt hier sowieso, dass es um JMS geht. Man kann aber auch das Transportprotokoll angeben. Hier könnte tatsächlich auch http stehen, oder mq...