Hi

I've almost got the CD example working for Sybase; it creates the table
correctly but fails to correctly persist the records.  I believe it has
something to do with the primary key, but am not sure.  Please find attached
the relevant sections from jaws.xml, ejb-jar.xml and the console output.

Thanks for your help.



Jaws.xml

<enterprise-beans>
       <entity>
         <ejb-name>CDBean</ejb-name>
         <table-name>CD</table-name>
         <create-table>true</create-table>
         <remove-table>false</remove-table>
         <tuned-updates>true</tuned-updates>
         <read-only>false</read-only>
         <time-out>300</time-out>
         <cmp-field>
           <field-name>id</field-name>
           <column-name>ID</column-name>
           <sql-type>VARCHAR(255) NULL</sql-type>
           <jdbc-type>VARCHAR</jdbc-type>
         </cmp-field>
         <cmp-field>
           <field-name>title</field-name>
           <column-name>TITLE</column-name>
           <sql-type>VARCHAR(255) NULL</sql-type>
           <jdbc-type>VARCHAR</jdbc-type>
         </cmp-field>
         <cmp-field>
           <field-name>artist</field-name>
           <column-name>ARTIST</column-name>
           <sql-type>VARCHAR(255) NULL</sql-type>
           <jdbc-type>VARCHAR</jdbc-type>
         </cmp-field>
         <cmp-field>
           <field-name>type</field-name>
           <column-name>TYPE</column-name>
           <sql-type>VARCHAR(255) NULL</sql-type>
           <jdbc-type>VARCHAR</jdbc-type>
         </cmp-field>
         <cmp-field>
           <field-name>notes</field-name>
           <column-name>NOTES</column-name>
           <sql-type>VARCHAR(255) NULL</sql-type>
           <jdbc-type>VARCHAR</jdbc-type>
         </cmp-field>
       </entity>
     </enterprise-beans>

ejb-jar.xml

<entity>
         <description>Models a music CD</description>
         <ejb-name>CDBean</ejb-name>
         <home>com.nomura.ecommerce.test.CDHome</home>
         <remote>com.nomura.ecommerce.test.CD</remote>
         <ejb-class>com.nomura.ecommerce.test.CDBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <reentrant>False</reentrant>
         <prim-key-class>java.lang.String</prim-key-class>

         <cmp-field>
           <field-name>id</field-name>
         </cmp-field>
         <cmp-field>
           <field-name>title</field-name>
         </cmp-field>
         <cmp-field>
           <field-name>artist</field-name>
         </cmp-field>
         <cmp-field>
           <field-name>type</field-name>
         </cmp-field>
         <cmp-field>
           <field-name>notes</field-name>
         </cmp-field>

         <primkey-field>id</primkey-field>

         <resource-ref>
           <description>Database</description>
           <res-ref-name>CDDB</res-ref-name>
           <res-type>javax.sql.DataSource</res-type>
           <res-auth>Container</res-auth>
         </resource-ref>
       </entity>


console output

[CDCollectionBean] Added CD with id=1, title=Great Organ Works/Bach JS,
artist=Koopman, type=classical, organ, notes=Incl. Toccata & Fugue in D
minor
[CDCollectionBean] *1*
[Default] org.jboss.tm.TxManager@afb2778a
[CDBean] Calling the next invoker in runInvokeHome
[JAWS] Create, id is 1
[JAWS] SQL:SELECT COUNT(*) AS Total FROM CD WHERE ID=?
[CDBean] Set parameter:1
[JAWS] Object count:0
[JAWS] Insert
[JAWS] SQL:INSERT INTO CD (ARTIST,TITLE,TYPE,ID,NOTES) VALUES (?,?,?,?,?)
[CDBean] Set parameter:1
[CDCollectionBean] *2*
[CDBean] Calling the next invoker in runInvoke
[CDBean] setTitle(Great Organ Works/Bach JS)
[CDBean] CURRENTSTATE Inull
[CDBean] OLDSTATE ARRAY[Ljava.lang.Object;@18a2778b
[CDBean] CURRENTSTATE IGreat Organ Works/Bach JS
[CDBean] OLDSTATE ARRAY[Ljava.lang.Object;@18a2778b
[CDBean] CURRENTSTATE Inull
[CDBean] OLDSTATE ARRAY[Ljava.lang.Object;@18a2778b
[CDBean] CURRENTSTATE I1
[CDBean] OLDSTATE ARRAY[Ljava.lang.Object;@18a2778b
[CDBean] CURRENTSTATE Inull
[CDBean] OLDSTATE ARRAY[Ljava.lang.Object;@18a2778b
[CDBean] Set parameter:Great Organ Works/Bach JS
[CDBean] java.rmi.ServerException: Store failed; nested exception is:
[CDBean]        java.rmi.ServerException: Store failed; nested exception is:
[CDBean]        java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
[CDBean] java.rmi.ServerException: Store failed; nested exception is:
[CDBean]        java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
[CDBean] java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
[CDBean]        at java.util.ArrayList.RangeCheck(ArrayList.java, Compiled
Code)
[CDBean]        at java.util.ArrayList.get(ArrayList.java, Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.getPkFieldValue(JAWSPersis
tenceManager.java, Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.jaws.JAWSPersistenceManager.storeEntity(JAWSPersistenc
eManager.java, Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.CMPPersistenceManager.storeEntity(CMPPersistenceManage
r.java, Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchron
izationInterceptor.java, Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterce
ptor.java, Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.TxInterceptor$RunInvoke.run(TxInterceptor.java,
Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.TxInterceptor.runWithTransactions(TxInterceptor.java,
Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.TxInterceptor.invoke(TxInterceptor.java, Compiled
Code)
[CDBean]        at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java,
Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java, Compiled
Code)
[CDBean]        at
org.jboss.ejb.EntityContainer.invoke(EntityContainer.java, Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java, Compiled Code)
[CDBean]        at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java, Compiled Code)
[CDBean]        at java.lang.reflect.Method.invoke(Native Method)
[CDBean]        at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java, Compiled
Code)
[CDBean]        at sun.rmi.transport.Transport$1.run(Transport.java,
Compiled Code)
[CDBean]        at java.security.AccessController.doPrivileged(Native
Method)
[CDBean]        at sun.rmi.transport.Transport.serviceCall(Transport.java,
Compiled Code)
[CDBean]        at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java,
Compiled Code)
[CDBean]        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java,
Compiled Code)
[CDBean]        at java.lang.Thread.run(Thread.java, Compiled Code)
[CDCollectionBean] java.rmi.RemoteException: java.rmi.ServerException:
RemoteException occurred in server thread; nested exception is:
[CDCollectionBean]      java.rmi.ServerException: Store failed; nested
exception is:
[CDCollectionBean]      java.rmi.ServerException: Store failed; nested
exception is:
[CDCollectionBean]      java.lang.IndexOutOfBoundsException: Index: 0, Size:
0
[CDCollectionBean]      at
com.nomura.ecommerce.test.CDCollectionBean.addCd(CDCollectionBean.java,
Compiled Code)
[CDCollectionBean]      at java.lang.reflect.Method.invoke(Native Method)
[CDCollectionBean]      at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles
sSessionContainer.java, Compiled Code)
[CDCollectionBean]      at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe
ssionInstanceInterceptor.java, Compiled Code)
[CDCollectionBean]      at
org.jboss.ejb.plugins.TxInterceptor$RunInvoke.run(TxInterceptor.java,
Compiled Code)
[CDCollectionBean]      at
org.jboss.ejb.plugins.TxInterceptor.runWithTransactions(TxInterceptor.java,
Compiled Code)
[CDCollectionBean]      at
org.jboss.ejb.plugins.TxInterceptor.invoke(TxInterceptor.java, Compiled
Code)
[CDCollectionBean]      at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java,
Compiled Code)
[CDCollectionBean]      at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java, Compiled
Code)
[CDCollectionBean]      at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
a, Compiled Code)
[CDCollectionBean]      at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java, Compiled Code)
[CDCollectionBean]      at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java, Compiled Code)
[CDCollectionBean]      at java.lang.reflect.Method.invoke(Native Method)
[CDCollectionBean]      at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java, Compiled
Code)
[CDCollectionBean]      at sun.rmi.transport.Transport$1.run(Transport.java,
Compiled Code)
[CDCollectionBean]      at
java.security.AccessController.doPrivileged(Native Method)
[CDCollectionBean]      at
sun.rmi.transport.Transport.serviceCall(Transport.java, Compiled Code)
[CDCollectionBean]      at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java,
Compiled Code)
[CDCollectionBean]      at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java,
Compiled Code)
[CDCollectionBean]      at java.lang.Thread.run(Thread.java, Compiled Code)




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

Reply via email to