javax.ejb.CreateException: Could not create entity:java.sql.
wangjun188 Jun 5, 2003 1:15 AMI developed a entity ejb,it deployed right,but when I access it,I get a CreateException,How can I solve it?
Anyone can Help me?
my jsp like that:
<%@ page import="javax.ejb.*,javax.naming.InitialContext,java.util.Collection,java.util.Iterator,com.custom.*" %>
my first database ejb program
<%
try
{
InitialContext ctx=new InitialContext();
Object objRef=ctx.lookup("custom/Cmp1Custom");
Cmp1CustomHome home=(Cmp1CustomHome)javax.rmi.PortableRemoteObject.narrow(objRef,Cmp1CustomHome.class);
Cmp1Custom bean;
bean=home.create("BK009","majun","shanghai");
%>
CustomID:<%=bean.getPrimaryKey()%>
CompanyName:<%=bean.getCompanyName()%>
ContactName:<td<%=bean.getContactName()%>
<%
}
catch(javax.naming.NamingException ne)
{
%>
Naming exception Caught:<%=ne%>
<%
}
catch(javax.ejb.CreateException ce)
{
%>
Create Exception Caught:<%=ce%>
<%
}
catch(java.rmi.RemoteException re)
{
%>
Remote Exception caught:"+<%=re%>;
<%
}
%>
my ejb-jar.xml like:
?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
entityBean
<display-name>Customer</display-name>
<enterprise-beans>
<display-name>Cmp1Custom</display-name>
<ejb-name>Cmp1Custom</ejb-name>
com.custom.Cmp1CustomHome
com.custom.Cmp1Custom
<ejb-class>com.custom.Cmp1CustomEJB</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
False
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Cmp1Custom</abstract-schema-name>
<table-name>Customers</table-name>
<create-table>false</create-table>
<cmp-field>
<field-name>CustomerID</field-name>
<column-name>CustomerID</column-name>
</cmp-field>
<cmp-field>
<field-name>CompanyName</field-name>
<column-name>CompanyName</column-name>
</cmp-field>
<cmp-field>
<field-name>ContactName</field-name>
<column-name>ContactName</column-name>
</cmp-field>
<primkey-field>CustomerID</primkey-field>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<ejb-name>Cmp1Custom</ejb-name>
<method-name>*</method-name>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
my Cmp1CustomEJB.java like:
package com.custom;
import java.util.*;
import javax.ejb.*;
public abstract class Cmp1CustomEJB implements EntityBean
{
public String CustomerID;
public String CompanyName;
public String ContactName;
public abstract void setCustomerID();
public abstract String getCustomerID();
public abstract void setCompanyName();
public abstract void setContactName();
public abstract String getCompanyName();
public abstract String getContactName();
public String ejbCreate(String CustomerID,String CompanyName,String ContactName) throws CreateException
{
if(CustomerID==null)
throw new CreateException("The customerid is required");
this.CustomerID="bk001";
this.CompanyName="xjairlines";
this.ContactName="urumqi";
System.out.println("ejb create call!");
return null;
}
public void ejbPostCreate(String CustomerID,String CompanyName,String ContactName){}
public void ejbLoad(){}
public void ejbStore(){}
public void ejbRemove(){}
public void unsetEntityContext(){}
public void setEntityContext(EntityContext context){}
public void ejbActivate(){}
public void ejbPassivate(){}
}
I get the Exception:
javax.ejb.CreateException: Could not create entity:java.sql.SQLException: Try to insert null into a non-nullable column in statement [INSERT INTO CMP1CUSTOM (CustomerID, CompanyName, ContactName) VALUES (NULL, NULL, NULL)]
please help me,Thank you very meuch!
wangjun188