![](/img/trans.png)
[英]How do I get hold of HTTP request headers in a CDI bean that's injected into a JAX-RS webservice?
[英]How do I @Inject a CDI @ApplicationScoped bean into a @RequestScoped JAX-RS bean?
我已將@ApplicationScoped
CDI注釋添加到一個簡單的bean:
@ApplicationScoped
public class History {
然后嘗試將@Inject
轉換為JAX-RS(resteasy)bean:
@RequestScoped
@Path("/history")
public class HistoryAPI {
@Inject
private History history;
但歷史仍然無效。 我在WEB-INF中有一個beans.xml
文件。 我已經嘗試了很多關於這個主題的變化,但是雖然app服務器(Wildfly)承認它是從CDI開始我無法讓注入工作。 我缺少什么想法?謝謝。
ETA:我嘗試過一個空的beans.xml
和幾個變種,最新的是:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:weld="http://jboss.org/schema/weld/beans"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd
http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd">
</beans>
奇怪......我覺得你的代碼應該有用......
我在GitHub上創建了這個問題的一個例子(使用Wildly 8.2.0.Final和Glassfish 4.1測試): https : //github.com/StefanHeimberg/stackoverflow-20150993
我沒有web.xml和沒有beans.xml完成所有這些
測試用:
瀏覽器中3次F5到網址http:// localhost:8080 / mavenproject1-1.0-SNAPSHOT / webresources / history
輸出:
20:32:12,955 SEVERE [com.mycompany.mavenproject1.HistoryAPI] (default task-2) HistoryAPI.init() called
20:32:12,956 SEVERE [com.mycompany.mavenproject1.HistoryAPI] (default task-2) HistoryAPI.doSomething() called
20:32:12,956 SEVERE [com.mycompany.mavenproject1.History] (default task-2) ===> History.init() called
20:32:12,956 SEVERE [com.mycompany.mavenproject1.History] (default task-2) ===> History.doSomething() called
20:36:09,830 SEVERE [com.mycompany.mavenproject1.HistoryAPI] (default task-3) HistoryAPI.init() called
20:36:09,831 SEVERE [com.mycompany.mavenproject1.HistoryAPI] (default task-3) HistoryAPI.doSomething() called
20:36:09,831 SEVERE [com.mycompany.mavenproject1.History] (default task-3) ===> History.doSomething() called
20:36:10,549 SEVERE [com.mycompany.mavenproject1.HistoryAPI] (default task-4) HistoryAPI.init() called
20:36:10,549 SEVERE [com.mycompany.mavenproject1.HistoryAPI] (default task-4) HistoryAPI.doSomething() called
20:36:10,549 SEVERE [com.mycompany.mavenproject1.History] (default task-4) ===> History.doSomething() called
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.