Hi, there,
when I deploy ejb with single field as PK, it get through. but if I have a
combined PK, then the deployment failed. this failure happens both on RC4 and
RC5.
The problem will show up when you use a class as primary key.
here is my PK class:
| package org.jboss.tutorial.entity.bean;
|
| public class LocaleMessagePK
| implements java.io.Serializable
| {
|
| public java.lang.Integer tableType;
| public java.lang.Integer referenceId;
| public java.lang.Integer catergory;
| public java.lang.String theLanguage;
|
| public LocaleMessagePK()
| {
| }
|
| public java.lang.Integer getTableType()
| {
| return tableType;
| }
| public java.lang.Integer getReferenceId()
| {
| return referenceId;
| }
| public java.lang.Integer getCatergory()
| {
| return catergory;
| }
| public java.lang.String getTheLanguage()
| {
| return theLanguage;
| }
|
| public void setTableType(java.lang.Integer tableType)
| {
| this.tableType = tableType;
| }
| public void setReferenceId(java.lang.Integer referenceId)
| {
| this.referenceId = referenceId;
| }
| public void setCatergory(java.lang.Integer catergory)
| {
| this.catergory = catergory;
| }
| public void setTheLanguage(java.lang.String language)
| {
| this.theLanguage = language;
| }
|
|
| public boolean equals(Object obj)
| {
| if( !(obj instanceof LocaleMessagePK) )
| return false;
|
| LocaleMessagePK pk = (LocaleMessagePK)obj;
| boolean eq = true;
|
| if( obj == null )
| {
| eq = false;
| }
| else
| {
| if( this.tableType != null )
| {
| eq = eq && this.tableType.equals( pk.getTableType() );
| }
| else // this.tableType == null
| {
| eq = eq && ( pk.getTableType() == null );
| }
| if( this.referenceId != null )
| {
| eq = eq && this.referenceId.equals( pk.getReferenceId() );
| }
| else // this.referenceId == null
| {
| eq = eq && ( pk.getReferenceId() == null );
| }
| if( this.catergory != null )
| {
| eq = eq && this.catergory.equals( pk.getCatergory() );
| }
| else // this.catergory == null
| {
| eq = eq && ( pk.getCatergory() == null );
| }
| if( this.theLanguage != null )
| {
| eq = eq && this.theLanguage.equals( pk.getTheLanguage() );
| }
| else // this.language == null
| {
| eq = eq && ( pk.getTheLanguage() == null );
| }
| }
|
| return eq;
| }
|
| public String toString()
| {
| StringBuffer toStringValue = new StringBuffer("[.");
| toStringValue.append(this.tableType).append('.');
| toStringValue.append(this.referenceId).append('.');
| toStringValue.append(this.catergory).append('.');
| toStringValue.append(this.theLanguage).append('.');
| toStringValue.append(']');
| return toStringValue.toString();
| }
|
| }
|
Here is the Bean:
| package org.jboss.tutorial.entity.bean;
|
| import java.util.Collection;
| import javax.persistence.Entity;
| import javax.persistence.IdClass;
| import javax.persistence.Table;
| import javax.persistence.Transient;
|
| @IdClass(LocaleMessagePK.class)
| @Entity
| @Table(name = "LocaleMessage")
| public class LocaleMessage
| implements java.io.Serializable{
|
| private Integer tableType;
| private Integer referenceId;
| private Integer catergory;
| private String theLanguage;
| private String message;
|
| public LocaleMessage() {
| }
|
| @Transient
| public LocaleMessagePK getPK(){
| return new LocaleMessagePK(tableType,
referenceId,catergory,theLanguage);
| }
| public Integer getTableType() {
| return this.tableType;
| }
|
| public void setTableType(Integer tableType) {
| this.tableType = tableType;
| }
|
| public Integer getReferenceId() {
| return this.referenceId;
| }
|
| public void setReferenceId(Integer referenceId) {
| this.referenceId = referenceId;
| }
|
| public Integer getCatergory() {
| return this.catergory;
| }
|
| public void setCatergory(Integer catergory) {
| this.catergory = catergory;
| }
|
| public String getTheLanguage() {
| return this.theLanguage;
| }
|
| public void setTheLanguage(String aTheLanguage) {
| this.theLanguage = aTheLanguage;
| }
|
|
| public String getMessage() {
| return this.message;
| }
|
| public void setMessage(String message) {
| this.message = message;
| }
|
| }
|
before I put the code into
C:\JavaApp\jboss-EJB-3.0_RC5-PFD\docs\tutorial\entity\src\org\jboss\tutorial\entity\bean,
the tutorial bean can be deployed without any problem, but if I add my two
classes into this directory, then error happens:
Here is all the console information:
| 23:22:32,843 INFO [Ejb3AnnotationHandler] found EJB3:
ejbName=ShoppingCartBean, class=org.jboss.tutorial.entity.bean.Sh
| oppingCartBean, type=STATEFUL
| 23:22:32,859 FATAL [PersistenceXmlLoader] tempdb JTA
| 23:22:32,859 INFO [Ejb3Deployment] EJB3 deployment time took: 31
| 23:22:32,859 INFO [JmxKernelAbstraction] installing MBean:
persistence.units:jar=tutorial.jar.jar,unitName=tempdb with
| dependencies:
| 23:22:32,859 INFO [JmxKernelAbstraction]
jboss.jca:name=DefaultDS,service=ManagedConnectionFactory
| 23:22:32,859 INFO [Ejb3Configuration] found EJB3 Entity bean:
org.jboss.tutorial.entity.bean.LineItem
| 23:22:32,859 INFO [Ejb3Configuration] found EJB3 Entity bean:
org.jboss.tutorial.entity.bean.LocaleMessage
| 23:22:32,875 INFO [Ejb3Configuration] found EJB3 Entity bean:
org.jboss.tutorial.entity.bean.Order
| 23:22:32,875 INFO [AnnotationBinder] Binding entity from annotated class:
org.jboss.tutorial.entity.bean.LineItem
| 23:22:32,875 INFO [EntityBinder] Bind entity
org.jboss.tutorial.entity.bean.LineItem on table LineItem
| 23:22:32,875 INFO [AnnotationBinder] Binding entity from annotated class:
org.jboss.tutorial.entity.bean.LocaleMessage
| 23:22:32,875 INFO [EntityBinder] Bind entity
org.jboss.tutorial.entity.bean.LocaleMessage on table LocaleMessage
| 23:22:32,890 WARN [ServiceController] Problem starting service
persistence.units:jar=tutorial.jar.jar,unitName=tempdb
| java.lang.reflect.InvocationTargetException
| 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:585)
| at
org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:97)
| at
org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:274)
| at
org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:230)
| 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:585)
| at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
| at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
| at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
| at
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:943)
| at $Proxy0.start(Unknown Source)
| at
org.jboss.system.ServiceController.start(ServiceController.java:428)
| at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
| at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
| at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
| at $Proxy93.start(Unknown Source)
| at
org.jboss.ejb3.JmxKernelAbstraction.install(JmxKernelAbstraction.java:76)
| at
org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:599)
| at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:452)
| at org.jboss.ejb3.Ejb3Module.startService(Ejb3Module.java:139)
| at
org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:274)
| at
org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:230)
| 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:585)
| at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
| at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
| at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
| at
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:943)
| at $Proxy0.start(Unknown Source)
| at
org.jboss.system.ServiceController.start(ServiceController.java:428)
| at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
| at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
| at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
| at $Proxy27.start(Unknown Source)
| at org.jboss.ejb3.EJB3Deployer.start(EJB3Deployer.java:365)
| at org.jboss.deployment.MainDeployer.start(MainDeployer.java:989)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:790)
| at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:753)
| at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
| at
org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
| at
org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
| at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
| at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
| at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
| at $Proxy9.deploy(Unknown Source)
| at
org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:319)
| at
org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:507)
| at
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:19
| 2)
| at
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:203)
|
| at
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:182)
| Caused by: org.hibernate.AnnotationException: No identifier specified for
entity: org.jboss.tutorial.entity.bean.LocaleM
| essage
| at
org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:550)
| at
org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:276)
| at
org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:210)
| at
org.hibernate.cfg.Configuration.buildMappings(Configuration.java:997)
| at
org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:722)
| at
org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:161)
| at
org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:567)
| at
org.hibernate.ejb.Ejb3Configuration.createContainerEntityManagerFactory(Ejb3Configuration.java:245)
| at
org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:108)
| at
org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:260)
| ... 79 more
| 23:22:32,890 INFO [JmxKernelAbstraction] installing MBean:
jboss.j2ee:service=EJB3,jar=tutorial.jar,name=ShoppingCartBe
| an with dependencies:
| 23:22:32,890 INFO [JmxKernelAbstraction]
persistence.units:jar=tutorial.jar.jar,unitName=tempdb
| 23:22:32,890 INFO [EJB3Deployer] Deployed:
file:/C:/JavaApp/jboss-4.0.3SP1/server/all/deploy/tutorial.jar
| 23:22:32,890 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
|
| --- MBeans waiting for other MBeans ---
| ObjectName: persistence.units:jar=tutorial.jar.jar,unitName=tempdb
| State: FAILED
| Reason: java.lang.reflect.InvocationTargetException
| I Depend On:
| jboss.jca:service=ManagedConnectionFactory,name=DefaultDS
| Depends On Me:
| jboss.j2ee:service=EJB3,jar=tutorial.jar,name=ShoppingCartBean
|
| ObjectName: jboss.j2ee:service=EJB3,jar=tutorial.jar,name=ShoppingCartBean
| State: NOTYETINSTALLED
| I Depend On:
| persistence.units:jar=tutorial.jar.jar,unitName=tempdb
|
| --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
| ObjectName: persistence.units:jar=tutorial.jar.jar,unitName=tempdb
| State: FAILED
| Reason: java.lang.reflect.InvocationTargetException
| I Depend On:
| jboss.jca:service=ManagedConnectionFactory,name=DefaultDS
| Depends On Me:
| jboss.j2ee:service=EJB3,jar=tutorial.jar,name=ShoppingCartBean
|
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3921375#3921375
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3921375
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user