embedded-jetty

___ tag123guice ___ Guice ist ein einfaches Framework zur Abhängigkeitsinjektion für Java. ___ qstnhdr ___ Resteasy und Google Guice: Wie verwendet man mehrere @ApplicationPath und Ressourcen mit @Injection? ___ tag123resteasy ___ Ein JBoss-Projekt, das verschiedene Frameworks zur Erstellung von RESTful-Webdiensten und Java-Anwendungen bereitstellt ___ tag123embeddedjetzty ___ Jetty ist ein weit verbreiteter Web-Container (Server), der in Java geschrieben ist und von Eclipse erstellt wird. ___ qstntxt ___

Ich habe ein Projekt erstellt , um die Abhängigkeitsinjektion von Google Guice in meinem Blog zu testen Jax-rs Ressourcen, mit Resteasy.

Meine Absichten sind:

  • Verwenden Sie mehrere %code% für die Versionen meiner API. In jeder mit %code% annotierten Klasse lade ich eine Menge von Klassen für die spezifische Version.
  • Jede Ressource hat einen %code% (von Google Guice) in seinem Konstruktor, um einige Dienste zu injizieren.

Ich habe zwei Klassen erstellt, die mit %code% : %code% und %code% kommentiert wurden. In beiden habe ich die gleichen Ressourcen-Klassen ( %code% und %code% ) nur für meinen Test hinzugefügt.

Mein Modul ist wie folgt konfiguriert:

%Vor%

Wenn ich %code% oder %code% aufruft, erhalte ich denselben Fehler:

%Vor%

Nun, wie ich erwartet habe, funktioniert das nicht. Der Google Guice ist nicht "schlau", um die Ressourcenklassen mit dem Konstruktor für mich zu instanziieren.

Aber ich kann keinen Weg zur Arbeit finden. Um wirklich ehrlich zu sein, bin ich wirklich verwirrt darüber, wie Google Guice, Jetty und Resteasy in diesem Szenario miteinander spielen.

Wenn ich die Verwendung von %code% ablehne, arbeiten meine Ressourcen mit Google Guice und konfigurieren meine %code% wie folgt:

%Vor%

Aber in diesem Fall übergebe ich das Steuerelement, um meine Ressourcen ( %code% und %code% ) an Guice zu registrieren. Es ist nicht flexibel für mich, ich kann meine multiple %code% nicht einrichten.

Also, was ich vermisse oder nicht verstehe?

Ich habe ein Projekt mit dem problematischen Code erstellt. Ist sehr einfach einzurichten und zu testen: Ссылка

Danke!

    
___ answer39635961 ___

Wenn Sie die Methode %code% in Ihrer Anwendung verwenden, versucht sie, eine Instanz für alle registrierten Ressourcen zu erstellen, indem sie den Standardkonstruktor verwendet, der in unserer Ressourcenklasse fehlt. Eine Möglichkeit besteht darin, einen Standardkonstruktor zu erstellen und die Abhängigkeiten über Setter Injection zu injizieren. Und anstatt %code% in %code% und %code% zu überschreiben, überschreiben Sie %code% . Da Ressourcen Singleton sein können.

Im Folgenden sind die Änderungen aufgeführt, die ich vorgenommen habe, damit es so funktioniert, wie Sie es möchten.

  

AnwendungV1RS.java

%Vor%
  

AnwendungV2RS.java

%Vor%
  

HalloResource.java

%Vor%
  

UserResource.java

%Vor%

Fügen Sie %code% zu Ihren Serviceklassen hinzu.

Ich hoffe, es hilft.

Ich habe den Code auch auf repo gejagt . schau es dir an

    
___ tag123jaxrs ___ JAX-RS: Java API für RESTful Web Services. Es ist eine API, die Unterstützung beim Erstellen von Web-Services gemäß dem REST-Architekturstil bietet. ___
4
Antworten

Wie legen Sie Port und Thread-Pool mithilfe von Embedded Jetty, v 9.1.0 fest?

Ich verwende Jetty 9.1.0, embedded, und möchte sowohl Port als auch ThreadPool setzen. Ich sehe für jeden einen Konstruktor, aber sehe nicht, wie man einen davon benutzt, und dann kann man den anderen setzen. dies tun %Vor% oder %Vor%...
27.04.2014, 21:19
1
Antwort

Wo lege ich meine jetty.xml-Datei mit Jetty eingebettet?

Ich beginne gerade mit Jetty (Jetty 6 w / Java 6). Unter Verwendung der Beispieldateien mit Jetty 6 platziere ich meine XML-Konfigurationsdatei. im selben Verzeichnis wie meine Java-Datei. Aber wenn ich das Projekt starte, bekomme ich diesen Feh...
21.05.2010, 01:10
2
Antworten

Embedded Jetty mit annotierten Servlet-Mustern?

Der folgende Arbeitscode demonstriert, wie zwei Servlets in eine eingebettete Instanz von jetty eingefügt werden. %Vor% Wie sollte das geändert werden, so dass anstelle der URL "/ iphone" die URL-Muster in der Annotation des Servlets verwend...
19.12.2012, 12:38
1
Antwort

Wie starte ich Lift in Embedded Jetty?

Ich habe einen Server, der einigen Web-Inhalten als Teil seiner Aufgaben dienen soll. Es funktionierte mit Embedded Jetty, und ich möchte etwas Schönheit von Lift hinzufügen (Vorlagen, Schauspieler, etc). Das Problem ist, dass alle Aufzugsbei...
25.12.2011, 06:28
7
Antworten

Ist es möglich, eine Desktop-Anwendung über das Java Backend & Web Technologies UI zu erstellen?

Ich möchte eine Desktop-Anwendung in Java & amp; Webtechnologien. Der Hauptgrund für die Auswahl von Java ist, dass es frei ist, Open Source, und daher unsere Investition minimal wäre und wir viel in Bezug auf Lizenzkosten usw. sparen würden. De...
04.08.2010, 04:38
1
Antwort

Woher kommt GWTs Hosted Mode Jetty?

Ich versuche, einen Web-Service in meinem Backend-Java-Code aufzurufen, wenn es so ist im gehosteten Modus ausgeführt wird. Alles lädt gut, der GWT RPC Call funktioniert und ich kann es auf dem Server sehen, sobald es versucht einen anzurufen ex...
06.10.2009, 00:34
1
Antwort

Resteasy und Google Guice: Wie verwendet man mehrere @ApplicationPath und Ressourcen mit @Injection?

Ich habe ein Projekt erstellt , um die Abhängigkeitsinjektion von Google Guice in meinem Blog zu testen Jax-rs Ressourcen, mit Resteasy. Meine Absichten sind: Verwenden Sie mehrere @ApplicationPath für die Versionen meiner API. In jed...
13.09.2016, 03:08