Fehler wegen Rest-Schnittstelle

  • Themenstarter Themenstarter Gelöschtes Mitglied 68249
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 68249

Gast
Hi,
ich habe da mal ein Problem in meinem Projekt. Wir haben eine Klasse:
Java:
import org.glassfish.jersey.server.ResourceConfig;

public class KvPkiApplication extends ResourceConfig {
     public KvPkiApplication()
      {
        packages("main.java.kv.proxy");
    
        //Register Auth Filter here
        register(KvPkiAuthenticationFilter.class);
      }
}

Diese ist in der web.xml so eingebunden:
XML:
    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>main.java.kv.proxy</param-value>
        </init-param>
        <init-param>
            <param-name>jersey.config.server.provider.classnames</param-name>
            <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
        </init-param>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>main.java.kv.proxy.KvPkiApplication</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

Ich erhalte den Fehler
Code:
JSR-311, 2.3.2:  The param-value should be a class that extends javax.ws.rs.core.Application    web.xml    /AssetToConnector/WebContent/WEB-INF    line 0    Validation Message

Die Anwendung läuft ohne Probleme. Die RestSST funktioniert auch problemlos. ResourceConfig extended Application. Ich hätte aber gerne die Fehlermeldung weg. Sonst entgeht mir früher oder später mal ein Fehler im Buildpath o.ä.

Kennt jemand das Problem, oder kann mir sagen, wie man das Projekt wieder JSR-311 Konform bekommt?
 
Es steht genau dort, was das Problem ist. Die Klasse KvPkiApplication soll von javax.ws.rs.core.Application erben anstatt von ResourceConfig.
ResourceConfig erbt zwar von Application aber ist eben nicht JSR-311 konform.
Solche Fragen sind eigentlich völlig überflüssig, man muss einfach mal die Fehlermeldungen lesen.
 
Ja, das ist vollkommen richtig, hilft aber genauso, wie bei einem tropfenden Tank zu erklären, dass das Auto nicht fährt, weil kein Sprit im Tank ist. Wenn ich die KvPkiApplication Application extenden lasse, dann bekomme ich den Fehler, dass Application die Funktion register nicht kennt.
 
Ja, das ist vollkommen richtig, hilft aber genauso, wie bei einem tropfenden Tank zu erklären, dass das Auto nicht fährt, weil kein Sprit im Tank ist. Wenn ich die KvPkiApplication Application extenden lasse, dann bekomme ich den Fehler, dass Application die Funktion register nicht kennt.
Ja weil man die nicht braucht. Man kann das in die web.xml schreiben oder die Methoden von Applikation überschreiben bzw. Verwenden.
 
Es sieht so aus, als würdest du einen Fehler in deiner web.xml-Datei haben. Du musst sicherstellen, dass der Wert von "javax.ws.rs.Application" eine Klasse ist, die von "javax.ws.rs.core.Application" erbt. Im Moment scheint der Wert "main.java.kv.proxy.KvPkiApplication" zu sein, aber "KvPkiApplication" erbt von "ResourceConfig" anstatt von "Application". Du könntest den Fehler beheben, indem du "KvPkiApplication" so änderst, dass es von "Application" erbt.
 

Neue Themen


Zurück
Oben