2012-04-09 2 views
1

Ich muss eine Web2py-Anwendung implementieren, die auf Java-Code zugreifen muss (der Code zum Herstellen einer Verbindung mit der Remote-Maschine hat), aber nicht sicher, ob wir es in Web2py tun können oder nicht.Mein PC hat Java 1.6, Python2.7, Web2py , Eclipse installiert.können wir Java Code in web2py Anwendungscode verwenden?

Use Case ist:

ich eine Schaltfläche in web2py Anwendung erstellt haben und auf die Schaltfläche klicken, sollte es das Java-Objekt instanziiert und bestimmte Methode des Java-Objekt aufrufen, die weiter auf dem Remote-Computer verbinden.

Unsicher sind:

  1. Können wir, dass bestimmte Java-Klasse bereitstellen Server so web2py Anwendung web2py kann es leicht zugreifen?

  2. Ist es möglich, diese Klasse aus Python-Code zu importieren?

  3. Wie instanziieren Sie Java-Objekt aus Python-Code?

  4. Und wie Java-Methode aus Python-Code aufrufen?

Grüße, Piks

Antwort

2

halte ich würde in einen Web Service suchen. Wenn Sie URL von Java verfügbar machen könnten, wird das zu einer Methode/Funktion von Java weitergeleitet, wo Logik ausgeführt wird, und es gibt JSON-Objekt zurück. Während in web2py urllib2 können Sie eine Anfrage stellen und diese JSON in natives Python-Wörterbuch decodieren. Der Schlüssel ist, dass Sie alle Methoden von Objekten verfügbar machen und das Objekt als json hin und her übergeben müssen. Haben Sie keine Angst in den meisten Programmiersprachen Objekte sind nur Hash_arrays/Wörterbücher mit einigen besonderen Eigenschaften. Also, wenn Sie das Objekt serialisieren und deserialisieren können und die entsprechenden URLs verfügbar machen, wird es Ihnen gut gehen.

Auch es gibt die Implementierung von web2py in jython. Aber dann wird der gesamte Stack in JVM sein und ich kann komplizierter arbeiten.

+0

Okay, ich habe verstanden, was Sie sagen, es scheint, als ob ich so viel zusätzliche Arbeit zu tun, um es zu erreichen, also wenn ich für Web-Service-Implementierung gehen und NO JAVA-Code ist dann erforderlich, wie es zu erreichen? Ich setze meinen Anwendungsfall erneut auf andere Art und Weise: 1. Unsere web2py-App sitzt auf einer Maschine, auf der auch der Web-Client läuft und die DB auch da sein wird. – piks

+0

Wenn ich für Web-Service-Implementierung und NO JAVA-Code erforderlich ist, dann wie man es erreicht? Ich setze meinen Anwendungsfall erneut auf andere Art und Weise: 1. Unsere web2py-App sitzt auf einer Maschine, auf der auch der Web-Client läuft und die DB auch da sein wird. 2. Der Benutzer kann auf die web2py-App zugreifen, indem er die URL von der Remote-Maschine verwendet und auf den in der Datenbank gespeicherten Inhalt zugreift und ihn dem Benutzer anzeigt. 3. Der Server kann mit dem einen Remote-System kommunizieren, auf dem der Web-Service-Server installiert ist, und die erforderlichen Daten von dort abrufen und in der Datenbank speichern. Da ich neue Biene im Web-Service bin Könnten Sie mir bitte einige grundlegende Ebene der Idee, wie man es erreichen. – piks

+0

Es gibt ein Kapitel im Buch, das hauptsächlich erklärt, wie man Webservice aus dem web2py herausstellt. Ich bin nicht so vertraut mit Java, aber ich wette, es gibt einige microframeworks, die nur bestimmte Funktionen als URL-Adressen und bieten grundlegende post & get. Was Sie tun müssten, ist, dass diese Funktionen jsons zurückgeben und dann können Sie über urllib eine Anfrage stellen. Ich würde mir selbst antworten, ob es sich lohnt ... wenn es für einige einfache Klassen ist, wette ich, dass du es schneller umschreiben würdest, als mit dem Java-Stack zu kämpfen. –

0

Wenn das ganze Java mit einer entfernten Maschine verbindet, dann empfehle ich dringend, dass Sie es in Python neu implementieren.

Wenn es etwas materiell tut, dann erwägen, einen Web-Schnittstelle vor ihm setzen (Ich mag die spark microframework für diesen), und Sie können mit dem requests Modul (get es über pip), um es zu sprechen.

Verwandte Themen