[jboss-user] [EJB 3.0] - @PersistenceUnit on private javax.persistence.EntityManager.

JGF1 do-not-reply at jboss.com
Thu Mar 6 14:01:22 EST 2008


I've been following along with an example using EJB3/JBOSS from the book 
Beginning Java EE 5 Platform and don't know why JBoss is complaining about an annotated private instance of an Entity Manager.
I was wondering if anyone can let me know where I am going wrong.
Here is the code:


  | package beans;
  | 
  | import javax.persistence.Entity;
  | import java.io.Serializable;
  | import javax.persistence.Id;
  | 
  | @Entity
  | public class Stock implements Serializable {
  |   // The persistent fields
  |   private String tickerSymbol;
  |   private String name;
  | 
  |   // Constructors
  |   public Stock() {}
  |   public Stock(String tickerSymbol, String name) {
  |     this.tickerSymbol = tickerSymbol;
  |     this.name = name;
  |   }
  | 
  |   // The access methods for persistent fields
  |   // tickerSymbol is the id
  |   @Id
  |   public String getTickerSymbol() {
  |     return tickerSymbol;
  |   }
  | 
  |   public void setTickerSymbol(String tickerSymbol) {
  |     this.tickerSymbol = tickerSymbol;
  |   }
  | 
  |   public String getName() {
  |      return name;
  |   }
  | 
  |   public void setName(String name) {
  |     this.name = name;
  |   }
  | }
  |  

  | package beans;
  | 
  | import javax.ejb.Remote;
  | 
  | @Remote
  | public interface StockList {
  |   // The public business methods on the StockList bean
  |   public String getStock(String ticker);
  |   public void addStock(String ticker, String name);
  |   public void updateStock(String ticker, String name);
  |   public void deleteStock(String ticker);
  | }
  | 

  | package beans;
  | 
  | import beans.Stock;
  | import javax.persistence.PersistenceContext;
  | import javax.ejb.Stateless;
  | import javax.persistence.EntityManager;
  | 
  | @Stateless
  | public class StockListBean implements StockList {
  | 
  |   // The reference to the entity manager
  |   @PersistenceContext
  |   private EntityManager _manager;
  | 
  |   // The public business methods. These must be coded in the
  |   // interface also
  | 
  |   public String getStock(String ticker) {
  |      Stock stock = _manager.find(Stock.class, ticker);
  |      return stock.getName();
  |   }
  | 
  |   public void addStock(String ticker, String name) {
  |     _manager.persist(new Stock(ticker, name));
  |   }
  | 
  |   public void updateStock(String ticker, String name) {
  |     Stock stock = _manager.find(Stock.class, ticker);
  |     stock.setName(name);
  |   }
  | 
  |   public void deleteStock(String ticker) {
  |     Stock stock = _manager.find(Stock.class, ticker);
  |     _manager.remove(stock);
  |   }
  | }
  | 
I've deployed a jar called StockListApp.ejb3 with the classes compiled from this code and come up against the following error

------

2008-03-06 18:35:55,671 DEBUG [org.jboss.deployment.MainDeployer] Begin deployment start file:/C:/apps/jboss-4.2.2.GA/server/all/deploy/StockListApp.ejb3
2008-03-06 18:35:55,671 DEBUG [org.jboss.ejb3.EJB3Deployer] start application, deploymentInfo: org.jboss.deployment.DeploymentInfo at fe1c38ab { url=file:/C:/apps/jboss-4.2.2.GA/server/all/deploy/StockListApp.ejb3 }
  deployer: MBeanProxyExt[jboss.ejb3:service=EJB3Deployer]
  status: Starting
  state: START_DEPLOYER
  watch: file:/C:/apps/jboss-4.2.2.GA/server/all/deploy/StockListApp.ejb3
  altDD: null
  lastDeployed: 1204828555656
  lastModified: 1204828555656
  mbeans:
, short name: StockListApp.ejb3, parent short name: null
2008-03-06 18:35:55,671 DEBUG [org.jboss.system.ServiceController] starting service jboss.j2ee:service=EJB3,module=StockListApp.ejb3
2008-03-06 18:35:55,671 DEBUG [org.jboss.ejb3.Ejb3Module] Starting jboss.j2ee:service=EJB3,module=StockListApp.ejb3
2008-03-06 18:35:55,671 DEBUG [org.jboss.system.ServiceController] stopping service: jboss.j2ee:jar=StockListApp.ejb3,name=StockListBean,service=EJB3
2008-03-06 18:35:55,671 WARN  [org.jboss.system.ServiceController] Ignoring request to stop nonexistent service: jboss.j2ee:jar=StockListApp.ejb3,name=StockListBean,service=EJB3
2008-03-06 18:35:55,671 DEBUG [org.jboss.system.ServiceController] destroying service: jboss.j2ee:jar=StockListApp.ejb3,name=StockListBean,service=EJB3
2008-03-06 18:35:55,671 WARN  [org.jboss.system.ServiceController] Ignoring request to destroy nonexistent service: jboss.j2ee:jar=StockListApp.ejb3,name=StockListBean,service=EJB3
2008-03-06 18:35:55,671 WARN  [org.jboss.ejb3.JmxKernelAbstraction] jboss.j2ee:jar=StockListApp.ejb3,name=StockListBean,service=EJB3 is not registered
2008-03-06 18:35:55,671 DEBUG [org.jboss.ejb3.Ejb3Module] Starting failed jboss.j2ee:service=EJB3,module=StockListApp.ejb3
java.lang.RuntimeException: Illegal @PersistenceUnit on private javax.persistence.EntityManager beans.StockListBean._manager :There is no default persistence unit in this deployment.
	at org.jboss.injection.PersistenceContextHandler.handleFieldAnnotations(PersistenceContextHandler.java:182)
	at org.jboss.injection.InjectionUtil.processFieldAnnotations(InjectionUtil.java:137)
	at org.jboss.injection.InjectionUtil.processAnnotations(InjectionUtil.java:174)
	at org.jboss.ejb3.EJBContainer.processMetadata(EJBContainer.java:358)
	at org.jboss.ejb3.SessionContainer.processMetadata(SessionContainer.java:140)
	at org.jboss.ejb3.Ejb3Deployment.processEJBContainerMetadata(Ejb3Deployment.java:292)
	at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:356)
	at org.jboss.ejb3.Ejb3Module.startService(Ejb3Module.java:91)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
	at $Proxy0.start(Unknown Source)
	at org.jboss.system.ServiceController.start(ServiceController.java:417)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy33.start(Unknown Source)
	at org.jboss.ejb3.EJB3Deployer.start(EJB3Deployer.java:512)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
	at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
	at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87)
	at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
	at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy34.start(Unknown Source)
	at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
	at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy9.deploy(Unknown Source)
	at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
	at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
2008-03-06 18:35:55,671 WARN  [org.jboss.system.ServiceController] Problem starting service jboss.j2ee:service=EJB3,module=StockListApp.ejb3
java.lang.RuntimeException: Illegal @PersistenceUnit on private javax.persistence.EntityManager beans.StockListBean._manager :There is no default persistence unit in this deployment.
	at org.jboss.injection.PersistenceContextHandler.handleFieldAnnotations(PersistenceContextHandler.java:182)
	at org.jboss.injection.InjectionUtil.processFieldAnnotations(InjectionUtil.java:137)
	at org.jboss.injection.InjectionUtil.processAnnotations(InjectionUtil.java:174)
	at org.jboss.ejb3.EJBContainer.processMetadata(EJBContainer.java:358)
	at org.jboss.ejb3.SessionContainer.processMetadata(SessionContainer.java:140)
	at org.jboss.ejb3.Ejb3Deployment.processEJBContainerMetadata(Ejb3Deployment.java:292)
	at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:356)
	at org.jboss.ejb3.Ejb3Module.startService(Ejb3Module.java:91)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
	at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
	at $Proxy0.start(Unknown Source)
	at org.jboss.system.ServiceController.start(ServiceController.java:417)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy33.start(Unknown Source)
	at org.jboss.ejb3.EJB3Deployer.start(EJB3Deployer.java:512)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
	at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
	at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87)
	at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
	at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy34.start(Unknown Source)
	at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
	at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
	at $Proxy9.deploy(Unknown Source)
	at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
	at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
2008-03-06 18:35:55,765 INFO  [org.jboss.ejb3.EJB3Deployer] Deployed: file:/C:/apps/jboss-4.2.2.GA/server/all/deploy/StockListApp.ejb3
2008-03-06 18:35:55,765 DEBUG [org.jboss.deployment.MainDeployer] End deployment start on package: StockListApp.ejb3
2008-03-06 18:35:55,765 DEBUG [org.jboss.deployment.MainDeployer] Deployed package: file:/C:/apps/jboss-4.2.2.GA/server/all/deploy/StockListApp.ejb3
2008-03-06 18:35:55,765 DEBUG [org.jboss.deployment.scanner.URLDeploymentScanner] Watch URL for: file:/C:/apps/jboss-4.2.2.GA/server/all/deploy/StockListApp.ejb3 -> file:/C:/apps/jboss-4.2.2.GA/server/all/deploy/StockListApp.ejb3
2008-03-06 18:35:55,765 ERROR [org.jboss.deployment.scanner.URLDeploymentScanner] Incomplete Deployment listing:

--- MBeans waiting for other MBeans ---
ObjectName: jboss.j2ee:service=EJB3,module=StockListApp.ejb3
  State: FAILED
  Reason: java.lang.RuntimeException: Illegal @PersistenceUnit on private javax.persistence.EntityManager beans.StockListBean._manager :There is no default persistence unit in this deployment.

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.j2ee:service=EJB3,module=StockListApp.ejb3
  State: FAILED
  Reason: java.lang.RuntimeException: Illegal @PersistenceUnit on private javax.persistence.EntityManager beans.StockListBean._manager :There is no default persistence unit in this deployment.

-----

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134654#4134654

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134654



More information about the jboss-user mailing list