[EJB 3.0] - can a entity be related to a superclass of a joined-inherita
by goldfrog
my enivironment:
jboss 4.04 GA, jboss-EJB-3.0_RC9-FD
i use the ejb3 tutorial of joininheritance as the template . i did not chanage any code of Pet.java Cat.java Dog.java.i just add some functions to PetDao and PetDAOBean
i write a entity, Decorate, referring to Pet. i can insert a entity of Decorate into the database but when i try to get out of the entities of Decorate from the database, some exception happens:
Decorate.java
package org.jboss.tutorial.joininheritance.bean;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class Decorate implements java.io.Serializable{
private int id;
private String name;
private Pet pet;
public Decorate() {
super();
}
@Id @GeneratedValue(strategy=GenerationType.AUTO)
public int getId() {
return id;
}
public String getName() {
return name;
}
@OneToOne(fetch = FetchType.LAZY)
public Pet getPet() {
return pet;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setPet(Pet pet) {
this.pet = pet;
}
}
PetDAO.java
package org.jboss.tutorial.joininheritance.bean;
import java.util.Collection;
import java.util.List;
public interface PetDAO
{
Dog createDog(String name, double weight, int bones);
Cat createCat(String name, double weight, int lives);
List findByWeight(double weight);
Decorate createDecorate(String name,Pet pet);
Collection getDecorate();
}
PetDAOBean.java
package org.jboss.tutorial.joininheritance.bean;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
@Stateless
@Remote(PetDAO.class)
public class PetDAOBean implements PetDAO {
@PersistenceContext
private EntityManager manager;
public Dog createDog(String name, double weight, int bones) {
Dog dog = new Dog();
dog.setName(name);
dog.setWeight(weight);
dog.setNumBones(bones);
manager.persist(dog);
return dog;
}
public Cat createCat(String name, double weight, int lives) {
Cat cat = new Cat();
cat.setName(name);
cat.setWeight(weight);
cat.setLives(lives);
manager.persist(cat);
return cat;
}
public List findByWeight(double weight) {
return manager.createQuery(
"select p from Pet p where p.weight < :weight").setParameter(
"weight", weight).getResultList();
}
public Decorate createDecorate(String name, Pet pet) {
Decorate dec = new Decorate();
dec.setName(name);
dec.setPet(pet);
manager.persist(dec);
return dec;
}
public Collection getDecorate() {
Collection founds = new ArrayList();
Query query = manager.createQuery("SELECT o FROM Decorate o");
List list = query.getResultList();
for (Object obj : list) {
if (obj instanceof Decorate) {
founds.add((Decorate) obj);
}
}
return founds;
}
}
Client.java
public class Client {
public static void main(String[] args) throws Exception {
InitialContext ctx = new InitialContext();
PetDAO dao = (PetDAO) ctx.lookup("PetDAOBean/remote");
Pet p1 = dao.createCat("Toonses", 15.0, 9);
Pet p2 = dao.createCat("Sox", 10.0, 5);
Pet p3 = dao.createDog("Winnie", 70.0, 5);
Pet p4 = dao.createDog("Junior", 11.0, 1);
Decorate d1 = dao.createDecorate("Test", p1);
Decorate d2 = dao.createDecorate("Test2", p1);
List l = dao.findByWeight(14.0);
for (Object o : l) {
System.out.println(((Pet) o).getName());
}
Collection founds = dao.getDecorate(); //exception throws here
for (Decorate value : founds) {
System.out.println(value.getName());
}
}
}
Cat.java
package org.jboss.tutorial.joininheritance.bean;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Cat extends Pet
{
int lives;
public int getLives()
{
return lives;
}
public void setLives(int lives)
{
this.lives = lives;
}
}
Dog.java
package org.jboss.tutorial.joininheritance.bean;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Entity;
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Dog extends Pet
{
private int numBones;
public int getNumBones()
{
return numBones;
}
public void setNumBones(int numBones)
{
this.numBones = numBones;
}
}
run:
[java] Sox
[java] Junior
[java] Exception in thread "main" java.lang.RuntimeException: org.jboss.tm.
JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=25
7, GlobalId=xhh/21, BranchQual=, localId=21] status=STATUS_NO_TRANSACTION; - nes
ted throwable: (javax.persistence.PersistenceException: org.hibernate.HibernateE
xception: instance not of expected entity type: org.jboss.tutorial.joininheritan
ce.bean.Pet_$$_javassist_10 is not a: org.jboss.tutorial.joininheritance.bean.Pe
t)
[java] at org.jboss.aspects.tx.TxPolicy.handleEndTransactionException(T
xPolicy.java:198)
[java] at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:18
0)
[java] at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
[java] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxIntercep
tor.java:197)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropag
ationInterceptor.java:76)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(
StatelessInstanceInterceptor.java:62)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.aspects.security.AuthenticationInterceptor.invoke(A
uthenticationInterceptor.java:78)
[java] at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(
Ejb3AuthenticationInterceptor.java:131)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagatio
nInterceptor.java:47)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(As
ynchronousInterceptor.java:106)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(Sta
telessContainer.java:263)
[java] at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
[java] at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invok
e(AOPRemotingInvocationHandler.java:82)
[java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:82
8)
[java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:68
1)
[java] at org.jboss.remoting.transport.socket.ServerThread.processInvoc
ation(ServerThread.java:358)
[java] at org.jboss.remoting.transport.socket.ServerThread.dorun(Server
Thread.java:412)
[java] at org.jboss.remoting.transport.socket.ServerThread.run(ServerTh
read.java:239)
[java] Caused by: org.jboss.tm.JBossRollbackException: Unable to commit, tx
=TransactionImpl:XidImpl[FormatId=257, GlobalId=xhh/21, BranchQual=, localId=21]
status=STATUS_NO_TRANSACTION; - nested throwable: (javax.persistence.Persistenc
eException: org.hibernate.HibernateException: instance not of expected entity ty
pe: org.jboss.tutorial.joininheritance.bean.Pet_$$_javassist_10 is not a: org.jb
oss.tutorial.joininheritance.bean.Pet)
[java] at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:372)
[java] at org.jboss.tm.TxManager.commit(TxManager.java:240)
[java] at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:17
5)
[java] at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
[java] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxIntercep
tor.java:197)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropag
ationInterceptor.java:76)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(
StatelessInstanceInterceptor.java:62)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.aspects.security.AuthenticationInterceptor.invoke(A
uthenticationInterceptor.java:78)
[java] at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(
Ejb3AuthenticationInterceptor.java:131)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagatio
nInterceptor.java:47)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(As
ynchronousInterceptor.java:106)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(Sta
telessContainer.java:263)
[java] at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
[java] at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invok
e(AOPRemotingInvocationHandler.java:82)
[java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:82
8)
[java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:68
1)
[java] at org.jboss.remoting.transport.socket.ServerThread.processInvoc
ation(ServerThread.java:358)
[java] at org.jboss.remoting.transport.socket.ServerThread.dorun(Server
Thread.java:412)
[java] at org.jboss.remoting.transport.socket.ServerThread.run(ServerTh
read.java:239)
[java] at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInv
oker.java:190)
[java] at org.jboss.remoting.Client.invoke(Client.java:525)
[java] at org.jboss.remoting.Client.invoke(Client.java:488)
[java] at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(Inv
okeRemoteInterceptor.java:55)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(Cl
ientTxPropagationInterceptor.java:61)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.aspects.security.SecurityClientInterceptor.invoke(S
ecurityClientInterceptor.java:55)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInte
rceptor.java:77)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(Stateles
sRemoteProxy.java:102)
[java] at $Proxy0.getDecorate(Unknown Source)
[java] at org.jboss.tutorial.joininheritance.Client.Client.main(Client.
java:56)
[java] Caused by: javax.persistence.PersistenceException: org.hibernate.Hib
ernateException: instance not of expected entity type: org.jboss.tutorial.joinin
heritance.bean.Pet_$$_javassist_10 is not a: org.jboss.tutorial.joininheritance.
bean.Pet
[java] at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceE
xception(AbstractEntityManagerImpl.java:641)
[java] at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletio
n(AbstractEntityManagerImpl.java:524)
[java] at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionIm
pl.java:1491)
[java] at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.ja
va:1110)
[java] at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:324)
[java] at org.jboss.tm.TxManager.commit(TxManager.java:240)
[java] at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:17
5)
[java] at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
[java] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxIntercep
tor.java:197)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropag
ationInterceptor.java:76)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(
StatelessInstanceInterceptor.java:62)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.aspects.security.AuthenticationInterceptor.invoke(A
uthenticationInterceptor.java:78)
[java] at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(
Ejb3AuthenticationInterceptor.java:131)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagatio
nInterceptor.java:47)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(As
ynchronousInterceptor.java:106)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInv
ocation.java:101)
[java] at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(Sta
telessContainer.java:263)
[java] at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
[java] at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invok
e(AOPRemotingInvocationHandler.java:82)
[java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:82
8)
[java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:68
1)
[java] at org.jboss.remoting.transport.socket.ServerThread.processInvoc
ation(ServerThread.java:358)
[java] at org.jboss.remoting.transport.socket.ServerThread.dorun(Server
Thread.java:412)
[java] at org.jboss.remoting.transport.socket.ServerThread.run(ServerTh
read.java:239)
[java] Caused by: org.hibernate.HibernateException: instance not of expecte
d entity type: org.jboss.tutorial.joininheritance.bean.Pet_$$_javassist_10 is no
t a: org.jboss.tutorial.joininheritance.bean.Pet
[java] at org.hibernate.persister.entity.AbstractEntityPersister.getSub
classEntityPersister(AbstractEntityPersister.java:3568)
[java] at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl
.java:1347)
[java] at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java
:180)
[java] at org.hibernate.engine.CascadingAction$9.noCascade(CascadingAct
ion.java:347)
[java] at org.hibernate.engine.Cascade.cascade(Cascade.java:139)
[java] at org.hibernate.event.def.AbstractFlushingEventListener.cascade
OnFlush(AbstractFlushingEventListener.java:130)
[java] at org.hibernate.event.def.AbstractFlushingEventListener.prepare
EntityFlushes(AbstractFlushingEventListener.java:121)
[java] at org.hibernate.event.def.AbstractFlushingEventListener.flushEv
erythingToExecutions(AbstractFlushingEventListener.java:65)
[java] at org.hibernate.event.def.DefaultFlushEventListener.onFlush(Def
aultFlushEventListener.java:26)
[java] at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
[java] at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:
338)
[java] at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletio
n(AbstractEntityManagerImpl.java:515)
[java] ... 27 more
[java] Java Result: 1
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3975673#3975673
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3975673
19 years, 1 month
[JBoss Portal] - Unable to deploy ajax4jsf portlet
by jacote
Hi,
i'm writing a portlet that use ajax4jsf library, but i have some problems during deployment phase. First i've tried to add the following to web.xml of my portlet :
| <filter>
| <display-name>Ajax4jsf Filter</display-name>
| <filter-name>ajax4jsf</filter-name>
| <filter-class>org.ajax4jsf.Filter</filter-class>
| </filter>
|
| <filter-mapping>
| <filter-name>ajax4jsf</filter-name>
| <servlet-name>Faces Servlet</servlet-name>
| <dispatcher>REQUEST</dispatcher>
| <dispatcher>FORWARD</dispatcher>
| <dispatcher>INCLUDE</dispatcher>
| </filter-mapping>
|
but i've go an exception :
| ava.lang.IllegalStateException: No Factories configured for this Application - typically this is because a context listener is not setup in your web.xml.
| A typical config looks like this;
| <listener>
| <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
| </listener>
|
| at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:84)
| at org.ajax4jsf.framework.resource.InternetResourceService.init(InternetResourceService.java:58)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.init(BaseFilter.java:121)
| at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
| at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
| at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:77)
| at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3600)
| ...
| ...
|
|
Then i've tried to specify full configuration of myfaces in my web.xml but i've got the same exception.
I've tried to use the portlet as a standalone web application and when i have deployed in jboss it works!
Next i make the same but in the web.xml of portal-core.war but return to have the same exception.
There is a way to have this working on a portlet ?
Thanks to all
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3975668#3975668
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3975668
19 years, 1 month
[JBoss jBPM] - Regarding swimlane
by jagadeeshrao
Hi,
I am working with Swimlanes.
But, I am assigning actors as static values. Please refer below code. I want to send users at runtime.
**** ProcessDefinition.xml ****
swimlane name="Clerk" ---- I am assigning Actors like this
swimlane name="Manager"
assignment expression="user(xxx)"
swimlane
swimlane name="CheckPending"
assignment expression="user(yyy)"
swimlane
*******************
My requirement is,
I have different Groups. In those Groups, I have two categoies of users. For example Manager and Clerk.
Clerk should complete a taks and sends to Manager for approval.Manager should approve that task.
In this case , I may have number of Clerks and Managers. Depends on their login, My processdefinition should consider their loginID as ActorID. Please guide me. How to send ActorID dynamically.
Thanks in advance for your help.
Jagadeesh
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3975666#3975666
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3975666
19 years, 1 month