CXFで作成したJAX-RS機能を使用したいと思います。CXFでjavax.ws.rs.core.Featureを使用するには?
可能であれば、CXF機能(org.apache.cxf.feature.Feature
)ではなくJAX-RS機能(javax.ws.rs.core.Feature
)を使用することをお勧めします。 また、サーバーファクトリを手動で作成するのではなく、SpringComponentScanServer(org.apache.cxf.jaxrs.spring.SpringComponentScanServer
)を使用してCXFを構成することをお勧めします。ここで
は、私はCXFを設定しようとした方法である:ここでは
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.mycustomapp.restexception.providers.RestExceptionFeature;
import org.apache.cxf.jaxrs.spring.SpringComponentScanServer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(SpringComponentScanServer.class)
public class CxfConfiguration
{
@Bean
public RestExceptionFeature restExceptionFeature()
{
return new RestExceptionFeature();
}
@Bean
public JacksonJsonProvider jacksonJsonProvider()
{
return new JacksonJsonProvider();
}
}
は私のカスタム機能である:
import javax.ws.rs.core.Feature;
import javax.ws.rs.core.FeatureContext;
import javax.ws.rs.ext.Provider;
@Provider
public class RestExceptionFeature implements Feature
{
@Override
public boolean configure(FeatureContext context)
{
context.register(RestExceptionBodyReader.class);
context.register(RestExceptionMapper.class);
context.register(RestExceptionCxfClientMapper.class);
return true;
}
}
RestExceptionFeature.configure()
が呼び出されることはありません。