Rickard,

I am using JBoss 2.0.  Here is my ejb-jar.xml:
-------
<?xml version="1.0" encoding="Cp1252"?>

<ejb-jar>
     <description>jBoss test application </description>
     <display-name>Test</display-name>
     <enterprise-beans>
       <entity>
         <description>Models a User</description>
         <ejb-name>UserBean</ejb-name>
         <home>ca.deadman.User.UserHome</home>
         <remote>ca.deadman.User.User</remote>
         <ejb-class>ca.deadman.User.UserEJB</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>ca.deadman.User.UserPK</prim-key-class>
         <reentrant>False</reentrant>
         <cmp-field><field-name>id</field-name></cmp-field>
         <cmp-field><field-name>firstName</field-name></cmp-field>
         <cmp-field><field-name>lastName</field-name></cmp-field>
         <cmp-field><field-name>address</field-name></cmp-field>
         <cmp-field><field-name>city</field-name></cmp-field>
         <cmp-field><field-name>region</field-name></cmp-field>
         <cmp-field><field-name>country</field-name></cmp-field>
         <cmp-field><field-name>postalCode</field-name></cmp-field>
         <cmp-field><field-name>telephone</field-name></cmp-field>
         <cmp-field><field-name>email</field-name></cmp-field>
         <primkey-field>id</primkey-field>
       </entity>
     </enterprise-beans>
   </ejb-jar>
----

My UserPK class identifies one public variable:
    public String id;

My UserEJB class identifies the same variable:
    public String id;

My UserHome defines:
    public User findByPrimaryKey(UserPK key)
        throws FinderException, RemoteException;

When I run a test program to findByPrimaryKey with a parameter of type
UserPK, the EJB container throws:
--------
[UserBean] java.rmi.ServerException: Load failed; nested exception is:
[UserBean]      java.lang.ClassCastException: ca.deadman.User.UserPK at
org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.setParameter(JAWSPersistenceManager.java:1306)[UserBean]
java.lang.ClassCastException: ca.deadman.User.UserPK
at
org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.loadEntity(JAWSPersistenceManager.java:629)[UserBean]
at
org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.setParameter(JAWSPersistenceManager.java:1306)


[UserBean]      at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke
(EntitySynchronizationInterceptor.java:240)     at
org.jboss.ejb.plugins.EntityS
ynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:240)
        at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.
java:82)
[UserBean]      at
org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.loadEntity(
JAWSPersistenceManager.java:629)

        at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstance
Interceptor.java:88)[UserBean]  at
org.jboss.ejb.plugins.SecurityInterceptor.inv
oke(SecurityInterceptor.java:82)

        at org.jboss.ejb.plugins.TxInterceptor.invoke(TxInterceptor.java:179)

        at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:140)[
UserBean]       at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(Entity
InstanceInterceptor.java:88)

[UserBean]      at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.ja
va:140) at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:212)
        at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPCon
tainerInvoker.java:129)

        at java.lang.reflect.Method.invoke(Native Method)[UserBean]     at
org.j
boss.ejb.EntityContainer.invoke(EntityContainer.java:212)

[UserBean]      at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke
(JRMPContainerInvoker.java:129)
        at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)[UserBean]

at java.lang.reflect.Method.invoke(Native Method)

[UserBean]      at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)

        at java.security.AccessController.doPrivileged(Native
Method)[UserBean]
        at sun.rmi.transport.Transport$1.run(Unknown Source)

[UserBean]      at java.security.AccessController.doPrivileged(Native Method)

        at sun.rmi.transport.Transport.serviceCall(Unknown Source)[UserBean]
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)

[UserBean]      at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
Sou
rce)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
Sour
ce)[UserBean]   at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unkn
own Source)

        at java.lang.Thread.run(Unknown Source)
[UserBean]      at java.lang.Thread.run(Unknown Source)
[Default] java.rmi.ServerException: Load failed; nested exception is:
        java.lang.ClassCastException: ca.deadman.User.UserPK
[Default] java.lang.ClassCastException: ca.deadman.User.UserPK
[UserBean]      at
org.jboss.ejb.plugins.TxInterceptor.invoke(TxInterceptor.java
:179)

Any ideas?  Thanks


Richard
--

Rickard �berg wrote:

> Richard Deadman wrote:
> > I'm trying to move an CMP entity bean with a PrimaryKey defined in its
> > own class (i.e. UserPK) into JBoss.  This class has one field (id) that
> > is a String and that maps to one of the bean's attributes that I have
> > mapped through JAWS to a VARCHAR field.
> >
> > The problem is that when I call "UserHome.findByPrimaryKey(key)", JBoss
> > gets upset because it is expecting key to be a String not a UserPK
> > object.  ClassCastException and all that.
> >
> > I'm moving an EJB built using VisualCafe wizards and this is how the
> > wizards construct the bean.  Is VisualCafe wrong?  Do I need to do some
> > mapping to tell JAWS to extract the real key somehow from the object?
> > Is this just a limitation of JBoss for now?
>
> There is no such limitation. I'm guessing that your ejb-jar.xml is
> weird. Can you please provide it?
>
> /Rickard
>
> --
> Rickard �berg
>
> Email: [EMAIL PROTECTED]
> http://www.telkel.com
> http://www.jboss.org
> http://www.dreambean.com
>
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> Problems?:           [EMAIL PROTECTED]



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Problems?:           [EMAIL PROTECTED]

Reply via email to