Hello all of you,
I have a problem:
I want to develop an CMP Entity bean into OpenEjb. The database i'm using is MySql.
After done ( from the steps given on openejb.org and changing postgreSQL to mysql ):
- packaging (jar tool);
- deployment (deploy tool );
- creating the table structure
- changing the openejb.conf together with cmp.mysql_global_database.xml,
cmp.mysql_local_database.xml and mysql.cmp_or_mapping.xml
i want to start openejb as a remote server:
> start openejb start
But openejb fails to run!!! Everything went well in the past but now it's going wrong
in some sort of way :(
The openejb.log file responses:
DEBUG: Instantiating assembler class org.openejb.alt.assembler.classic.Assembler
FATAL: OpenEJB has encountered a fatal error and cannot be started: Assembler failed
to build the container system.
org.openejb.SystemException: Can not set prim-key-field on deployment Stock: id
at
org.openejb.alt.assembler.classic.AssemblerTool.assembleDeploymentInfo(AssemblerTool.java:354)
at
org.openejb.alt.assembler.classic.AssemblerTool.assembleContainer(AssemblerTool.java:202)
at
org.openejb.alt.assembler.classic.AssemblerTool.assembleContainers(AssemblerTool.java:171)
at
org.openejb.alt.assembler.classic.Assembler.buildContainerSystem(Assembler.java:254)
at org.openejb.alt.assembler.classic.Assembler.build(Assembler.java:179)
at org.openejb.OpenEJB.init(OpenEJB.java:239)
at org.openejb.server.EjbDaemon.init(EjbDaemon.java:137)
at org.openejb.server.EjbDaemon.main(EjbDaemon.java:1116)
at org.openejb.server.Main.main(Main.java:61)
Root cause:
java.lang.NoSuchFieldException: id
at java.lang.Class.getField(Class.java:911)
at org.openejb.core.DeploymentInfo.setPrimKeyField(DeploymentInfo.java:991)
at
org.openejb.alt.assembler.classic.AssemblerTool.assembleDeploymentInfo(AssemblerTool.java:352)
at
org.openejb.alt.assembler.classic.AssemblerTool.assembleContainer(AssemblerTool.java:202)
at
org.openejb.alt.assembler.classic.AssemblerTool.assembleContainers(AssemblerTool.java:171)
at
org.openejb.alt.assembler.classic.Assembler.buildContainerSystem(Assembler.java:254)
at org.openejb.alt.assembler.classic.Assembler.build(Assembler.java:179)
at org.openejb.OpenEJB.init(OpenEJB.java:239)
at org.openejb.server.EjbDaemon.init(EjbDaemon.java:137)
at org.openejb.server.EjbDaemon.main(EjbDaemon.java:1116)
at org.openejb.server.Main.main(Main.java:61)
My table structure:
CREATE TABLE stocks(
id integer auto_increment primary key,
tickerSymbol varchar(10) not null,
name varchar(33) not null,
price decimal( 10, 2 ) not null );
In my ejb-jar file:
.....
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
...
<primkey-field>id</primkey-field>
......
In my mysql.cmp_or_mapping.xml:
..........
<class name="stock.StockBean" identity="id" key-generator="IDENTITY">
<map-to table="stocks"/>
<field name="id" type="integer" direct="true">
<sql name="id" type="integer"/>
</field>
........
i DON'T KNOW WHAT TO DO ANYMORE!!!!!!
I will be gratefull for any response,
Willem