# Fehler wegen Rest-Schnittstelle



## DaBe1812 (6. Dez 2022)

Hi,
ich habe da mal ein Problem in meinem Projekt. Wir haben eine Klasse:

```
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:

```
<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

```
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?


----------



## Oneixee5 (6. Dez 2022)

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.


----------



## DaBe1812 (6. Dez 2022)

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.


----------



## Oneixee5 (6. Dez 2022)

DaBe1812 hat gesagt.:


> 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.


----------



## osion (20. Dez 2022)

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.


----------

