Einfach starten der standalone-JNDI-server (und registrieren einige Ressourcen)

Für Testzwecke, ich bin auf der Suche nach eine einfache Möglichkeit zum starten einer standalone JNDI-server ein, und bind mein javax.sql.DataSource "java:/comp/env/jdbc/mydatasource" programmgesteuert.

Sollte der server an sich binden, um einige URL, zum Beispiel: "java.die Benennung.Anbieter.url=none://localhost:1099" (nicht NONE), so dass ich nachsehen kann, meine datasource aus einem anderen Prozess. I don ' T care über die JNDI-server-Implementierung, die ich verwenden müssen (aber ich will nicht zum starten eines ausgewachsenen Java ee server).

Diese sollte so einfach sein, aber zu meiner überraschung, konnte ich nicht finden, jede (Arbeits -) tutorial.

  • Ich bin mir nicht sicher, dass diese Frage durchaus Sinn macht. JNDI ist eine API, kein Protokoll. Die API bietet Zugriff auf verschiedene naming-Protokolle. So sind Sie wirklich gefragt für einen Weg zu starten Sie einen server für einige willkürliche Namensgebung Protokoll, das Sie verwenden können, JNDI gegen? Dann sind Sie gehen zu binden eine DataSource es. Aber das DataSource existiert in dem server-Prozess, richtig? Also, was passiert, wenn ein client in einem anderen Prozess darum bittet? Das ganze java: - namespace ist in der Regel sehr viel ein in-process-Sache.
  • Ich wollte nicht gehen in die Details, aber ich bin wirklich versucht zu binden eine c3p0 ComboPooledDataSource - und die Dokumentation behauptet, dass "c3p0 DataSources sind beide Referenzierbaren und Serializable, und eignen sich somit für die Bindung an eine Breite Vielfalt von JNDI-based naming services".
  • Okay, das scheint vernünftig dann. Ich Frage mich, wie Sie das tun? Was clever chaps müssen Sie sein.
  • Es gibt keine solche Sache wie eine JNDI-server ein. Sie haben zu entscheiden, welche Art von server Sie wollen, zu sprechen, LDAP, COSnaming, RMI-registry, DNS, ... und JNDI verwenden als client-side-Technologie, zu sprechen. Die Frage macht keinen Sinn.
  • Der name "JNDI-server" ist nicht sehr präzise, in der Tat. Was ich aber meinte damals (vor mehr als 3 Jahren...), war ein server, auf die zugegriffen werden kann durch einen JNDI-client (mir egal welche, solange es mir erlaubt, binden Sie das Objekt in einer Weise, dass der client Sie Lesen kann. Die Vorstellung von einem "JNDI-server" wurde hauptsächlich von c3p0 ' s Erwähnung von "JNDI-based naming services".)
Schreibe einen Kommentar