2014-03-03 25 views
2

繼續從這個問題TomEE on eclipse, How to call a remote EJB from a JSF Managed bean?
如何解決在啓動TomEE 1.6.0 plus時找不到「限定符錯誤」的Api類型[java.util.Set]?

當我嘗試啓動TomEE 1.6.0 plus服務器時出現以下錯誤。 我該怎麼辦?我在互聯網上搜索,發現這是因爲Google Guava 15.0
雖然我明白他們在說什麼,我不知道如何將解決方案應用於TomEE。鏈接解釋說,這個錯誤應該通過使用open web 1.2.1消失。我可以看到TomEE已經使用了open web 1.2.1,所以
我該如何擺脫這個錯誤?

INFO: Existing thread singleton service in SystemInstance(): [email protected] 
Mar 02, 2014 11:01:24 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication 
INFO: OpenWebBeans Container is starting... 
Mar 02, 2014 11:01:24 PM org.apache.webbeans.plugins.PluginLoader startUp 
INFO: Adding OpenWebBeansPlugin : [CdiPlugin] 
Mar 02, 2014 11:01:24 PM org.apache.webbeans.plugins.PluginLoader startUp 
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin] 
Mar 02, 2014 11:01:26 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication 
SEVERE: CDI Beans module deployment failed 
org.apache.webbeans.exception.inject.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [java.util.Set] is not found with the qualifiers 
Qualifiers: [@javax.enterprise.inject.Default()] 
for injection into Constructor Injection Point, constructor name : com.google.common.util.concurrent.ServiceManager, Bean Owner : [ServiceManager, Name:null, WebBeans Type:MANAGED, API Types:  [java.lang.Object,com.google.common.util.concurrent.ServiceManager], Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]] 
at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:213) 
at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:187) 
at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:162) 
at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:43) 
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:799) 
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:612) 
at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:503) 
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:409) 
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:148) 
at org.apache.openejb.OpenEJB.init(OpenEJB.java:296) 
at org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:246) 
at org.apache.tomee.catalina.TomcatLoader.init(TomcatLoader.java:134) 
at org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:122) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:640) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:665) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 
Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [java.util.Set] is not found with the qualifiers 
Qualifiers: [@javax.enterprise.inject.Default()] 
for injection into Constructor Injection Point, constructor name : com.google.common.util.concurrent.ServiceManager, Bean Owner : [ServiceManager, Name:null, WebBeans Type:MANAGED, API Types: [java.lang.Object,com.google.common.util.concurrent.ServiceManager], Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]] 
at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:60) 
at org.apache.webbeans.container.InjectionResolver.checkInjectionPoint(InjectionResolver.java:195) 
at org.apache.webbeans.container.BeanManagerImpl.validate(BeanManagerImpl.java:954) 
at org.apache.webbeans.config.BeansDeployer.validate(BeansDeployer.java:470) 
at org.apache.webbeans.config.BeansDeployer.validateInjectionPoints(BeansDeployer.java:420) 
at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:200) 
... 24 more 

Mar 02, 2014 11:01:26 PM org.apache.openejb.assembler.classic.Assembler destroyApplication 
INFO: Undeploying app: /Users/ajayamrite/Downloads/apache-tomee-plus-1.6.0/apps/DakiaCoreEAR 
Mar 02, 2014 11:01:28 PM org.apache.openejb.assembler.classic.Assembler buildContainerSystem 
SEVERE: Application could not be deployed: /Users/ajayamrite/Downloads/apache-tomee-plus-1.6.0/apps/DakiaCoreEAR 
org.apache.openejb.OpenEJBException: Creating application failed: /Users/ajayamrite/Downloads/apache-tomee-plus-1.6.0/apps/DakiaCoreEAR: couldn't start owb context 
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:897) 
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:612) 
at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:503) 
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:409) 
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:148) 
at org.apache.openejb.OpenEJB.init(OpenEJB.java:296) 
at org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:246) 
at org.apache.tomee.catalina.TomcatLoader.init(TomcatLoader.java:134) 
at org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:122) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:640) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:665) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 
Caused by: org.apache.openejb.OpenEJBRuntimeException: couldn't start owb context 
at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:164) 
at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:43) 
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:799) 
... 20 more 
Caused by: org.apache.openejb.OpenEJBRuntimeException: org.apache.webbeans.exception.inject.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [java.util.Set] is not  found with the qualifiers 
Qualifiers: [@javax.enterprise.inject.Default()] 
for injection into Constructor Injection Point, constructor name : com.google.common.util.concurrent.ServiceManager, Bean Owner : [ServiceManager, Name:null, WebBeans Type:MANAGED, API Types:[java.lang.Object,com.google.common.util.concurrent.ServiceManager], Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]] 
at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:190) 
at org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:162) 
... 22 more 
Caused by: org.apache.webbeans.exception.inject.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [java.util.Set] is not found with the qualifiers 
Qualifiers: [@javax.enterprise.inject.Default()] 
for injection into Constructor Injection Point, constructor name : com.google.common.util.concurrent.ServiceManager, Bean Owner : [ServiceManager, Name:null, WebBeans Type:MANAGED, API Types:[java.lang.Object,com.google.common.util.concurrent.ServiceManager], Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]] 
at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:213) 
at org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:187) 
... 23 more 
Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Api type [java.util.Set] is not found with the qualifiers 
Qualifiers: [@javax.enterprise.inject.Default()] 
for injection into Constructor Injection Point, constructor name : com.google.common.util.concurrent.ServiceManager, Bean Owner : [ServiceManager, Name:null, WebBeans Type:MANAGED, API Types:[java.lang.Object,com.google.common.util.concurrent.ServiceManager], Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]] 
at org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:60) 
at org.apache.webbeans.container.InjectionResolver.checkInjectionPoint(InjectionResolver.java:195) 
at org.apache.webbeans.container.BeanManagerImpl.validate(BeanManagerImpl.java:954) 
at org.apache.webbeans.config.BeansDeployer.validate(BeansDeployer.java:470) 
at org.apache.webbeans.config.BeansDeployer.validateInjectionPoints(BeansDeployer.java:420) 
at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:200) 
... 24 more 

Mar 02, 2014 11:01:28 PM org.apache.openejb.assembler.classic.Assembler createApplication 
INFO: Assembling app: openejb 
Mar 02, 2014 11:01:28 PM org.apache.openejb.util.OptionsLog info 
INFO: Using 'openejb.jndiname.format={deploymentId}{interfaceType.openejbLegacyName}' 
Mar 02, 2014 11:01:28 PM org.apache.openejb.assembler.classic.JndiBuilder bind 
INFO: Jndi(name=openejb/UserBusinessRemote) --> Ejb(deployment-id=openejb/User) 
Mar 02, 2014 11:01:28 PM org.apache.openejb.assembler.classic.JndiBuilder bind 
INFO: Jndi(name=global/openejb/openejb/User!org.apache.openejb.assembler.util.User) --> Ejb(deployment-id=openejb/User) 
Mar 02, 2014 11:01:28 PM org.apache.openejb.assembler.classic.JndiBuilder bind 

回答

0

只是限定在WEB-INF的exclusions.list與以下內容:

default-list 
guava- 

每一行是從視圖CDI點忽略前綴,默認列表是用於默認的快捷方式

0

我無法弄清楚爲什麼會發生這個錯誤(我對此有些模糊的想法,但不能完全將細節放在文字中),但我通過簡單地用guava-15.0.jar文件替換掉guava-16.0.1.jar文件。

+0

這是一個重複的答案 - 你已經從@Karl Richter得到了答案 – Dejell

+0

@Dejel,當你說'你已經得到答案'時你說錯了。我之前(2014年3月23日)Karl Richter(2014年3月31日)發佈了答案。他的回答可能會更好(我需要檢查),但是不能簡單地將我的標記標記出來。 – Ajay

+0

我很抱歉 - 你爲什麼接受他的回答?我建議編輯你在@karl之前找到的答案 - 因爲它看起來像重複的答案 – Dejell

相關問題