【发布时间】:2018-12-19 10:28:01
【问题描述】:
我所有的其他注入都在工作,但它不适用于 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>
【问题讨论】:
-
你能确认
@Produces不是@javax.ws.rs.Produces,而是@javax.enterprise.inject.Produces -
那么用String替换Gson就可以了?
-
谢谢你是企业
@javax.enterprise.inject.Produces。现在它正在工作。但是为什么@javax.ws.rs.Produces不起作用?我所有的其他工厂都使用ws.rs。我对javaee很陌生,所以解释会很好:)