雖然目前已經有相當長的一段StackOverflow的問題,博客文章等在網絡上,我仍然無法找出解決的辦法,以低於規定的問題。注入JAX-RS資源中的EJB到JBoss 5
這個問題(Injecting EJB within JAX-RS resource on JBoss7)我想注入一個EJB實例爲JAX-RS類相似。我與JBoss 5時,JBoss 7和8 WildFly嘗試我要麼得不到注入在所有(字段爲空),或服務器不部署(當我嘗試各種組合的註釋)。 添加@Stateless
到JAX-RS使應用服務器知道,這兩個類爲豆類。但是,不發生注射。
是否有辦法注入的EJB爲REST應用程序?我可以提供什麼樣的信息(除了上面提到的問題中包含的信息)以幫助?
編輯:我創建了一個Github項目,顯示的代碼工作(與Glassfish 4.0)和不工作(與JBoss 5)。
https://github.com/C-Otto/beantest
- 提交使用Glassfish的 4.0 4bf2f3d23f49d106a435f068ed9b30701bbedc9d工作。
- 提交50d137674e55e1ceb512fe0029b9555ff7c2ec21使用澤西島1.8,這不起作用。
- 提交86004b7fb6263d66bda7dd302f2d2a714ff3b939 使用澤西島2.6,這也不起作用。
EDIT2: 運行,我在JBoss 5試圖在Glassfish 4.0的代碼給出:
Exception while loading the app : CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [Ref<ContainerRequest>] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject org.glassfish.jersey.server.internal.routing.UriRoutingContext(Ref<ContainerRequest>, ProcessingProviders)]
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Ref<ContainerRequest>] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject org.glassfish.jersey.server.internal.routing.UriRoutingContext(Ref<ContainerRequest>, ProcessingProviders)]
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:403)
EDIT3:關鍵信息可能是我想的是在JBoss 5
有效的解決方案
請張貼相關碼。 – Camilo
我認爲這傢伙解釋得很好http://stackoverflow.com/questions/3027834/inject-a-ejb-into-jax-rs-restfull-service – ZeusSelerim
實際上有一種方法,基本上你不必做任何特殊的事情來實現它。你的JAX-RS資源應該是一個EJB本身,這就足夠了。問題必須在代碼中的某處。所以我在這裏同意卡米洛。看到你的代碼可能有助於理解問題 – jjd