2012-04-24 84 views
2

我需要幫助因以下錯誤:EntityManagerFactory的JNDI中的JBoss Seam的沒有發現

java.lang.IllegalArgumentException: EntityManagerFactory not found in JNDI : java:/plugInEntityManagerFactory 
     at org.jboss.seam.persistence.ManagedPersistenceContext.getEntityManagerFactoryFromJndiOrValueBinding(ManagedPersistenceContext.java:247) 
     at org.jboss.seam.persistence.ManagedPersistenceContext.initEntityManager(ManagedPersistenceContext.java:79) 
     at org.jboss.seam.persistence.ManagedPersistenceContext.getEntityManager(ManagedPersistenceContext.java:108) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) 
     at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125) 
     at org.jboss.seam.Component.callComponentMethod(Component.java:2082) 
     at org.jboss.seam.Component.unwrap(Component.java:2108) 
     at org.jboss.seam.Component.getInstance(Component.java:1887) 
     at org.jboss.seam.Component.getInstance(Component.java:1840) 
     at org.jboss.seam.Component.getInstance(Component.java:1834) 
     at com.medorder.mazama.WorkbenchIntegration.processRequests(WorkbenchIntegration.java:465) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) 
     at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56) 
     at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38) 
     at org.jboss.seam.util.Work.workInTransaction(Work.java:40) 
     at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) 
     at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166) 
     at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102) 
     at com.medorder.mazama.WorkbenchIntegration_$$_javassist_2.processRequests(WorkbenchIntegration_$$_javassist_2.java) 
     at service.PlugInHandler.accountRequest(PlugInHandler.java:207) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.jboss.wsf.container.jboss42.DefaultInvocationHandler.invoke(DefaultInvocationHandler.java:102) 
     at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:220) 
     at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:408) 
     at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:272) 
     at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:189) 
     at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:122) 
     at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) 
     at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 
     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
     at java.lang.Thread.run(Unknown Source) 
    Caused by: javax.naming.NameNotFoundException: plugInEntityManagerFactory not bound 
     at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) 
     at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) 
     at org.jnp.server.NamingServer.getObject(NamingServer.java:543) 
     at org.jnp.server.NamingServer.lookup(NamingServer.java:296) 
     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667) 
     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) 
     at javax.naming.InitialContext.lookup(Unknown Source) 
     at org.jboss.seam.persistence.ManagedPersistenceContext.getEntityManagerFactoryFromJndiOrValueBinding(ManagedPersistenceContext.java:243) 
     ... 78 more 
    11:43:53,411 INFO [Contexts] starting up: org.jboss.seam.security.identity 
    11:43:53,412 INFO [Contexts] starting up: org.jboss.seam.web.session 
    11:43:53,413 ERROR [SOAPFaultHelperJAXWS] SOAP request exception 
    java.lang.IllegalArgumentException: EntityManagerFactory not found in JNDI : java:/plugInEntityManagerFactory 
     at org.jboss.seam.persistence.ManagedPersistenceContext.getEntityManagerFactoryFromJndiOrValueBinding(ManagedPersistenceContext.java:247) 
     at org.jboss.seam.persistence.ManagedPersistenceContext.initEntityManager(ManagedPersistenceContext.java:79) 
     at org.jboss.seam.persistence.ManagedPersistenceContext.getEntityManager(ManagedPersistenceContext.java:108) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) 
     at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125) 
     at org.jboss.seam.Component.callComponentMethod(Component.java:2082) 
     at org.jboss.seam.Component.unwrap(Component.java:2108) 
     at org.jboss.seam.Component.getInstance(Component.java:1887) 
     at org.jboss.seam.Component.getInstance(Component.java:1840) 
     at org.jboss.seam.Component.getInstance(Component.java:1834) 
     at com.medorder.mazama.WorkbenchIntegration.processRequests(WorkbenchIntegration.java:465) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) 
     at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56) 
     at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38) 
     at org.jboss.seam.util.Work.workInTransaction(Work.java:40) 
     at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42) 
     at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) 
     at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) 
     at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166) 
     at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102) 
     at com.medorder.mazama.WorkbenchIntegration_$$_javassist_2.processRequests(WorkbenchIntegration_$$_javassist_2.java) 
     at service.PlugInHandler.accountRequest(PlugInHandler.java:207) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     at java.lang.reflect.Method.invoke(Unknown Source) 
     at org.jboss.wsf.container.jboss42.DefaultInvocationHandler.invoke(DefaultInvocationHandler.java:102) 
     at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:220) 
     at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:408) 
     at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:272) 
     at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:189) 
     at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:122) 
     at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) 
     at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) 
     at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
     at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 
     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
     at java.lang.Thread.run(Unknown Source) 
     Caused by: javax.naming.NameNotFoundException: plugInEntityManagerFactory not bound 
     at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) 
     at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) 
     at org.jnp.server.NamingServer.getObject(NamingServer.java:543) 
     at org.jnp.server.NamingServer.lookup(NamingServer.java:296) 
     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667) 
     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) 
     at javax.naming.InitialContext.lookup(Unknown Source) 
     at org.jboss.seam.persistence.ManagedPersistenceContext.getEntityManagerFactoryFromJndiOrValueBinding(ManagedPersistenceContext.java:243) 
     ... 78 more 

To add here is persistence.xml 

    <?xml version="1.0" encoding="UTF-8"?> 
    <persistence xmlns="http://java.sun.com/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
       version="1.0"> 
     <persistence-unit name="CRMPlugin"> 
      <provider>org.hibernate.ejb.HibernatePersistence</provider> 
      <jta-data-source>java:/CRMPluginDatasource</jta-data-source> 
      <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> 
      <property name="hibernate.hbm2ddl.auto" value="validate"/> 
      <property name="hibernate.cache.use_query_cache" value="true"/> 
      <!-- 
      <property name="hibernate.show_sql" value="true"/> 
      <property name="hibernate.use_sql_comments" value="true"/> 
      --> 
      <property name="jboss.entity.manager.factory.jndi.name" value="java:/plugInEntityManagerFactory"/> 
       </properties> 
     </persistence-unit> 
    /persistence> 
+0

你的persistence.xml是怎麼樣的? – Trind 2012-04-24 20:12:41

+0

我已經添加了persistence.xml文件。 – user1000258 2012-04-24 20:37:37

+0

另一方面,我已經在eclipse中使用New-Dynamic Web Project創建了這個項目 – user1000258 2012-04-24 21:33:15

回答

3

也許你產生與2.2.2.Final的項目,這是一個完全兼容JEE5環境量身定製(如JBAS 5.1.0.GA),並部署在不兼容的環境(如JBAS 4.2.x)上。

事實上,在符合JEE5的環境中,由JEE5容器(服務器)搜索persistence.xml文件,如果發現它被初始化並且實體管理器工廠將被放入JNDI中。非兼容容器不會自動部署持久性上下文,因此Seam無法在JNDI中找到它。

對於這種情況,Seam有一個「手動」部署持久化上下文的組件。與更改組件定義:

<persistence:entity-manager-factory name="entityManagerFactory" persistence-unit-name="CRMPlugin" /> 
<persistence:managed-persistence-context name="entityManager" auto-create="true" entity-manager-factory="#{entityManagerFactory}" /> 

這樣,實體管理器工廠被Seam本身產生的(而不是容器)和JNDI沒有擡頭(因此你不使用persistence-unit-jndi-name參數)。

這是由較老版本的Seam(如2.2.0.GA)生成的默認components.xml,它們針對的是不符合JEE5的容器。

+0

你在這裏節省了我的工作時間,我一直在爲此奮鬥在jboss5上進行jboss7應用程序遷移。只是一件事,它是persistence-unit-name =「CRMPlugin」(缺少短劃線)。 – gebuh 2013-12-13 18:48:37

0

我有一個類似的問題,埃米爾給了小費,我想在這裏發佈!我只好把同一個名字上的persistence.xml [1]和components.xml中[2]一個項目名爲platto,所以:

[1]

<property name="jboss.entity.manager.factory.jndi.name" value="java:/plattoEntityManagerFactory"/> 

[2]

<persistence:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name = "java:/plattoEntityManagerFactory"/> 
0

我有同樣的問題,結果我把persistence.xml放在錯誤的目錄中。

所以請確保你的把你的persistence.xml放在META-INF文件夾中! 如果您直接在webapp項目中或在嵌入式jar文件的根目錄下的/ META-INF中(例如您的ejb項目)工作,您可以在您的WEB-INF/classes/META-INF文件夾下!

0

所以,我意識到這是一個兩歲的線程,但我正在對一個「舊」Seam/jBoss/Hibernate應用程序做一些小的修改並碰到這個問題。所以也許這對下一個處於類似情況的人有用。

我有完全相同的錯誤。我的component.xml和persistence.xml完全對齊。 幾天後,我對此持反對態度。然後我意識到,這一切都是在我爲一個Entity bean添加一些新的字段時開始的(我剛剛被一個工作人員在工作中做了一次緊急會議而被打斷,並且失去了我的位置)。堆棧沒有任何幫助,所以我刪除了我對bean和eureka所做的更改。因此,只需回到最後一次對實體bean進行的更改,並檢查它們是否與您的數據庫模型兼容。如果定義中的某些內容關閉,則EntityManager將不會綁定,但堆棧不會告訴您具體的Bean導致問題。也許Hibernate開發人員應該看看如何改進這一點。

乾杯,

相關問題