KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am currently trying to create an InjectableProvider with Jersey, but I cannot get Jersey to pick it up. I cannot find any real examples of its usage, or even how to get it picked up besides using the @Provider annotation on the implementation. The person that seemingly wrote it within Jersey implied in some posts that this is enough to have it picked up. Do I need to specify some SPI service file, or add it to some factory somewhere? Note: I am running within Glassfish 3.1, and using Spring 3.1. It seems reasonable that Spring may be somehow taking over for the automatic loading of the Provider s. However, I just don't know. I am not using Spring in anyway to manage the suggested InjectableProvider below, nor am I trying to add it in some other way, which may-well be my problem. import com.sun.jersey.core.spi.component.ComponentContext; import com.sun.jersey.spi.inject.Injectable; import com.sun.jersey.spi.inject.PerRequestTypeInjectableProvider; public abstract class AbstractAttributeInjectableProvider<T> extends PerRequestTypeInjectableProvider<AttributeParam, T> { protected final Class<T> type; public AbstractAttributeInjectableProvider(Class<T> type) { super(type); this.type = type; } @Override public Injectable<T> getInjectable(ComponentContext componentContext, AttributeParam attributeParam) { return new AttributeInjectable<T>(type, attributeParam.value()); } } Basic Implementation: import javax.ws.rs.ext.Provider; @Component // <- Spring Annotation @Provider // <- Jersey Annotation public class MyTypeAttributeInjectableProvider extends AbstractAttributeInjectableProvider<MyType> { public MyTypeAttributeInjectableProvider() { super(MyType.class); } }
Tags (comma-separated)
Save Edits
Cancel