tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
1053
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    prophi prophi ist offline Rookie
    Registriert seit
    Feb 2004
    Beiträge
    5
    Hallo Leute,

    ich versuche gerade eine JMS Verbindung über Android aufzubauen und bin über die Forensuche auf dieses HelloWorld-Tutorial gestoßen:

    http://nareshyadav.blogspot.com/2009...llo-world.html

    Ich habe den Code bisher in ein kleines Testprojekt gebastelt. Leider fehlt mir bei Android die javax.naming.* Library und ich bekomme folgenden Fehler:

    "The type javax.naming.Referenceable cannot be resolved. It is indirectly referenced from required .class files" (bei QueueSender sender = session.createSender(queue); )

    Ich habe nun schon versucht die fehlende Library (jndi.jar) einzubinden. Doch dann kommt leider der Fehler "Conversion to Dalvik format failed with error 1" - Google sagt mir, dass die Android Library sich mit der Java Core Library verhakt.
    Das Ganze soll auf eine einfach Nachricht an einen openMQ hinauslaufen. Sitze jetzt schon gut 2 Tage daran, kriegs aber nicht hin.
    Es reicht vermutlich auch, das javax.naming Package aus der Library zu exportieren um diese dann einzubinden. Habe mich auch schon an folgendem Tutorial versucht, kriegs aber leider nicht hin:
    http://code.google.com/p/dalvik/wiki/JavaxPackages

    Könnt ihr mir da helfen?

    Danke und Gruß, flO
     

  2. #2
    pizza1234 pizza1234 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Beiträge
    177
    Hi,
    ist ein interessantes Thema, aber ich schätze, das geht so einfach nicht, selbst wenn du die jars eingebunden bekommst.
    Vielleicht hilft dir das weiter: http://www.softwired-inc.com/company/wjms.html

    Grüße
    Peter
     

  3. #3
    prophi prophi ist offline Rookie
    Registriert seit
    Feb 2004
    Beiträge
    5
    Hm ja, die kommerzielle Lösung hatte ich auch schon ergoogelt, die haben auch reichlich die Foren mit ihrer Werbung zugestreut.
    Da das ganze für meine Abschlussarbeit für die Uni ist, werd ich da kaum Geld investieren wollen/dürfen.

    Warum denkst du, dass es mit dem einbinden der jars nicht funktionieren wird. Woran wird es hängen? Das Tut beschreibt wie es gehen soll:
    http://code.google.com/p/dalvik/wiki/JavaxPackages
    allerdings hänge ich an dem Punkt, an dem ich die Properties setzen muss, ich weiß nicht so recht was ich da in meinen Fall setzen muss?
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    ich würde hier einfach einen Proxy dazwischen schalten. Deine Android App sendet eine Anfrage an den Proxy der wiederum eine JMS Nachricht an das gewünschte Ziel verfasst.

    Deine Android app könnte mit dem Proxy beispielsweise über ein HTTP- / Rest interface oder direkt über Sockets kommunizieren.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  5. #5
    prophi prophi ist offline Rookie
    Registriert seit
    Feb 2004
    Beiträge
    5
    wie könnte ich so einen Proxy dann umsetzen? Wird dieser in Java geschrieben?
    Hast du zufällig ein Tutorial dazu parat?

    Danke dir!
     

  6. #6
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    eine einfache Variante:

    Der Proxy als Java-Servlet das im Tomcat in einer kleinen Webapp läuft.
    Der Android Client kommuniziert mit dem Servlet über HTTP. Das Servlet analysiert validiert den Request
    und erstellt eine entsprechende JMS Message und sendet diese an die gewünschte Destination (dein JMS Ziel).

    Wenn du noch eine Rückantwort brauchst kannst du das entweder direkt im Servlet tun... sprich du machst den
    JMS Call in deiner doGet/doPost Methode und wartest synchron (mit einem Timeout) auf die JMS-Antwort. (1)
    Die JMS Antwort verarbeitest du dann und schickst diese in umgewandelter Form (als Plain-Text, JSON oder XML)
    mit dem HTTPResponse Body an deinen Android Client zurück.

    (1) siehe auch :http://www.tutorials.de/enterprise-j...t-jbossmq.html

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  7. #7
    pizza1234 pizza1234 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Beiträge
    177
    Hi,
    wie siehts denn mit XMPP aus, das ist soweit ich weiß ja in Android enthalten, und für ActiveMQ(openMQ kenn ich nicht) gibt es eine JMS/XMPP-Bridge.

    Grüße
    Peter
     

  8. #8
    prophi prophi ist offline Rookie
    Registriert seit
    Feb 2004
    Beiträge
    5
    Hallo Thomas,

    besten Dank für deinen Lösungsansatz, ich weiß nicht, ob die Lösung für mein kleines Programm nicht schon ein bisschen zu überladen ist. Ich habe noch nicht so viel mit Java (mit Servlets noch gar nichts) gemacht und werde da auch noch ne Menge Zeit investieren müssen.

    @Peter
    bei openMQ gibt es ein Beispiel für eine JMS Bridge, allerdings verbindet diese zwei MQ Broker miteinander:
    "A JMS Bridge Example that Bridges Two MQ Brokers
    ------------------------------------------------

    This example bridges a MQ broker running on localhost:7676 to another
    MQ broker running on localhost:7677. It has 1 transacted link: ..."

    Für was ist eine solche JMS Bridge denn vorgesehen?
     

  9. #9
    pizza1234 pizza1234 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Beiträge
    177
    Hi,
    Für was ist eine solche JMS Bridge denn vorgesehen?
    Kann ich dir nicht sagen, ich kenne openMQ nicht. Muss es denn unbedingt openMQ sein?

    Grüße
    Peter
     

  10. #10
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    OpenMQ hat scheinbar auch selbst schon ein REST orientiertes HTTP-Interface:
    http://www.adam-bien.com/roller/abie...s_ajax_java_ee
    http://mq.java.net/4.3-content/ums/examples/README.html

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  11. #11
    prophi prophi ist offline Rookie
    Registriert seit
    Feb 2004
    Beiträge
    5
    Hi Thomas,

    danke für die Hilfe. Sorry, das ich schon wieder nachfragen muss. Habe noch nicht wirklich Erfahrung damit.
    Wie funktioniert das mit dem UMS genau? Muss ich diesen auf einen Webserver installieren oder ist das nur ein Skript, der die HTTP Requests dann an meinen openMQ Server weiterleitet?

    Danke dir und Gruß, Florian

    edit:
    @Peter
    ja, ich müsste das auf jeden Fall über openMQ realisieren, das ist vom Projekt meiner Uni so vorgegeben worden.
    Geändert von prophi (22.12.10 um 14:17 Uhr)
     

  12. #12
    pizza1234 pizza1234 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Beiträge
    177
    Das ist doch perfekt!
    Das hab ich auf die Schnelle noch für die Clientseite gefunden ..

    Grüße
    Peter
     

Ähnliche Themen

  1. javax.naming.NameNotFoundException: jdbc not bound
    Von Oliver Gierke im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 03.04.09, 13:45
  2. Antworten: 13
    Letzter Beitrag: 03.12.08, 15:00
  3. javax.naming.NoInitialContextException
    Von dodi2 im Forum Java
    Antworten: 1
    Letzter Beitrag: 19.02.08, 15:06
  4. ERROR: javax.naming.CommunicationException
    Von turbowiesel im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 14.11.06, 14:52
  5. javax.naming.NoInitialContextException
    Von lernen.2007 im Forum Java
    Antworten: 11
    Letzter Beitrag: 01.06.06, 13:56

Stichworte