Bei Verwendung von Enums als QueryParam
Werden ENUMs als @QueryParams verwendet, müssen die Parameter exakt so heißen, wie die ENUM-Werte. Es gibt keine
Unterscheidung in Groß-, Kleinbuchstaben und auch Bindestriche sind nicht zulässig. Um diese Werte dennoch als Parameter
zu ermöglichen, kann man einen ParamConverter verwenden.
import javax.ws.rs.ext.ParamConverter;
public class EnumwertConverter implements ParamConverter<Enumwert> {
	@Override
	public Enumwert fromString(final String value) {
		// Hier der abweichende Code
		return Enumwert.valueOf(value);
	}
	
	@Override
	public String toString(final Enumwert value) {
		return value.toString();
	}
}
Um den Konverter zu verwenden, muss er publiziert werden. Dies geschieht mit einem ParamConverterProvider.
import javax.ws.rs.ext.ParamConverter;
import javax.ws.rs.ext.ParamConverterProvider;
import javax.ws.rs.ext.Provider;
@Provider
public class EnumwertConverterProvider implements ParamConverterProvider {
	@Override
	public <T> ParamConverter<T> getConverter(final Class<T> rawType, final Type genericType, final Annotation[] annotations) {
		if (rawType.equals(Enumwert.class)) {
			return (ParamConverter<T>)new EnumwertConverter();
		}
		ereturn null;
	}
}
Das ist schon die ganze Magic und die Parameter, die mit @QueryParam annotiert sind, werden konvertiert.