Все мои другие инъекции работают, но не работают с gson. У меня такое ощущение, что это внешний пакет, но я не могу решить проблему. Вот мои соответствующие файлы:
Режиссер:
public class GsonFactory {
@Produces
public Gson createGson(){return new GsonBuilder().createGson();}
}
точка впрыска:
@ApplicationScoped
public class SoundcloudAPIWrapper implements Serializable{
@Inject
private Gson gson;
public SoundcloudAPIWrapper() {}
...
}
Beans.xml:
<?xml version = "1.0" encoding = "UTF-8"?>
<beans
xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd"
bean-discovery-mode = "all" version = "2.0">
</beans>
Так это работает, если заменить Gson на String?
спасибо это было предприятие @javax.enterprise.inject.Produces
. теперь он работает. Но почему не работает @javax.ws.rs.Produces
? Все остальные мои фабрики используют ws.rs
. Я новичок в javaee, поэтому объяснение было бы отличным :)
как @maress указал в комментарии, мне нужно было заменить @javax.ws.rs.Produces
на @javax.enterprise.inject.Produces
. Теперь работает
Можете ли вы подтвердить, что
@Produces
- это не@javax.ws.rs.Produces
, а скорее@javax.enterprise.inject.Produces
?