2016-05-05 3 views
2

Ich habe eine Unternehmensanwendung, die ich in Netbeans entwickelt habe, und ich versuche nun, dem WAR-Modul einige REST-konforme Webdienste hinzuzufügen. Das Problem, das ich habe, ist, dass wenn ich die Netbeans-Funktion zum Erstellen der Webdienste verwende, keine ApplicationConfig.java-Klasse erstellt wird.Netbeans erstellt ApplicationConfig.java nicht, wenn ich einen neuen RESTful-Webdienst erstelle

Alle Beispiele und Tutorials, die ich im Internet gefunden habe, erklären, dass Netbeans automatisch eine ApplicationConfig.java-Klasse generiert, die Application erweitert, und durch Bearbeiten der @ApplicationPath-Annotation für diese Klasse kann ich den URI konfigurieren, unter dem Webdienste werden erreichbar sein. Und in der Tat, wenn ich eine neue Java EE-Anwendung von Grund auf neu erstellen und dann New -> RESTful Web Services von Patterns aufrufen, funktioniert das genau so. Aber wenn ich das mit dem Netbeans-Projekt versuche, das ich entwickle, wird keine ApplicationConfig.java erstellt. Meine Fragen

:

1) Jede Idee, warum dies geschieht? Netbeans-Fehler? Gibt es bekannte Umstände, unter denen Netbeans keine ApplicationConfig erstellt?

2) Kann ich einfach eine ApplicationConfig.java selbst manuell erstellen? Ich habe Beispiele (nicht mit Netbeans) gesehen, die eine leere ApplicationConfig-Klasse verwenden, die nichts anderes tut als eine Stelle bereitzustellen, an der die Annotation @ApplicationPath so platziert werden kann, dass dieser Teil des URIs konfiguriert werden kann. Wenn ich das tue, werden die Netbeans verwirrt?

3) Ich sehe, dass wenn Netbeans diese Klasse erstellt, Code enthält, der die Application.getClasses-Methode überschreibt. Es sieht einfach genug aus, um meinen eigenen Code manuell zu erstellen, der genau das tut, was der automatisch generierte Code tut. Brauche ich es?

Details von meiner Umgebung sind:

  • Produktversion: NetBeans IDE 8.1 (Build 201.510.222.201)
  • Updates: NetBeans IDE Version NetBeans aktualisiert 8.1 Patch 1
  • Java: 1.8.0_92; Java HotSpot (TM) 64-Bit Server VM 25.92-b14
  • Laufzeit: Java (TM) SE Laufzeitumgebung 1.8.0_92-b14
  • System: Windows 7 Version 6.1 läuft auf amd64; Cp1252; en_US (nb)
  • Projekttyp: Java EE 7 Anwendung
  • Server: Wildfly 9.0.2

Dank!

Duncan

Antwort

1

Ja, können Sie es manuell erstellen, aber Sie haben es in dem gleichen Paket zu erstellen, mit Ihrem WebServicesClasses, Beispiel:

import java.util.Set; 
import javax.ws.rs.core.Application; 

@javax.ws.rs.ApplicationPath("webresources") 
public class ApplicationConfig extends Application { 

    @Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> resources = new java.util.HashSet<>(); 
     addRestResourceClasses(resources); 
     return resources; 
    } 
    private void addRestResourceClasses(Set<Class<?>> resources) { 
     //add all resources classes 
     resources.add(jaca.server.webservice.PersonWebService.class); 
    } 
} 

reinigen und Ihr Projekt erstellen, oder starten Sie Ihren Netbeans weil Das erste Mal funktioniert nicht.

+0

Ja, es ist eine Weile her, aber ich denke, genau das habe ich getan. Aber ich muss sagen, eine Antwort, die "Neustart Ihrer Netbeans, weil das erste Mal nicht funktioniert" enthält, lässt mich fragen, ob Microsoft die Entwicklung übernommen hat. Das müssen die Entwickler sehen. – Duncan

0

NetBeans fügt nach dem Hinzufügen der Annotationen einen Hinweis im Namen der Klasse hinzu. Dort müssen Sie die Option zum Hinzufügen der ApplicationConfig.java-Klasse und weiterer Optionen für Jersey angeben.

0

NetBeans erstellt ApplicationConfig.java für mich entweder nicht.Die Sache war, dass ich ein Web Application Project erstellte, dann meine Ressourcen hinzugefügt (REST-Operationen).

Wenn ich das Webanwendungsprojekt jedoch erstelle und 'Neue RESTful Web Services von Patterns' hinzufüge, bevor ich meine eigenen Ressourcen hinzufüge, dann erstellt es automatisch die ApplicationConfig für mich.