Podczas uruchamiania klienta wywala sie nastepujacy wyjatek:
java.lang.IllegalStateException: createBeanClassInstanceCommand == null
at
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.createBeanClassInstance(JDBC
StoreManager.java:560)...
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////
Mam EncjaEJB (CMPEntityBean ) i SesjaEJB, przy czym w SesjaEJB nic nie
robie.
Kawalki EncjaEJB:
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////
EncjaRemote:
Integer getId() throws RemoteException;
String getNazwa() throws RemoteException;
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////
EncjaHome:
pakiet.Encja findByPrimaryKey(Integer key) throws RemoteException,
FinderException;
pakiet.Encja create(Integer id, String nazwa) throws
RemoteException, CreateException;
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////
EncjaBean:
public abstract class EncjaBean implements EntityBean {
EntityContext context;
public Integer id;
public String nazwa;
public EncjaBean() {
}
public void setEntityContext(EntityContext entityContext) throws
EJBException {
this.context = entityContext;
}
public void unsetEntityContext() throws EJBException {
this.context = null;
}
// tutaj ejbRemove itp...
public abstract Integer getId();
public abstract String getNazwa();
public Integer ejbCreate(Integer id, String nazwa) throws
CreateException {
this.id = id;
this.nazwa = nazwa;
return id;
}
public void ejbPostCreate(Integer id, String nazwa) throws
CreateException {
}
}
//////////////////////////////////////////////////////////
no i kawalek servletu:
try {
Encja en;
Context c = new InitialContext();
Object tmp = c.lookup("java:comp/env/encja");
EncjaHome h = (EncjaHome)PortableRemoteObject.narrow(tmp,
EncjaHome.class);
if (h != null)
en = h.create(new Integer(45), "test");
} catch (Exception e) {
e.printStackTrace();
}
////////////////////////////////////////////////////////////
.... i to wszystko. Bede bardzo wdzieczny za wskazanie mi bledu.
Pozdrawiam
Nick
no to nie wszystko
jest jeszcze ejb-jar.xml i Twoim przypadku
jboss.xml, jboss-cmp.xml
pewnie gdzies tam jest blad i JDBC nie moze tego przetrawic,
uzywasz jakiegos wlasnego zrodla danych?
stworzyles odpowiednie tabele?
<entity>
<ejb-name>EncjaEJB</ejb-name>
<home>pakiet.EncjaHome</home>
<remote>pakiet.Encja</remote>
<ejb-class>pakiet.EncjaBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>EncjaEJB</abstract-schema-name>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>nazwa</field-name>
</cmp-field>
<primkey-field>id</primkey-field>
</entity>
////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////
jboss.xml
<entity>
<ejb-name>EncjaEJB</ejb-name>
<jndi-name>DefaultDS</jndi-name>
</entity>
////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////
jbosscmp-jdbc.xml
<entity>
<ejb-name>EncjaEJB</ejb-name>
<datasource>DefaultDS</datasource>
<datasource-mapping>mySQL</datasource-mapping>
<table-name>miasto</table-name>
<cmp-field>
<field-name>id</field-name>
<column-name>id</column-name>
<jdbc-type>INTEGER</jdbc-type>
<sql-type>INTEGER</sql-type>
</cmp-field>
<cmp-field>
<field-name>nazwa</field-name>
<column-name>nazwa</column-name>
<jdbc-type>VARCHAR</jdbc-type>
<sql-type>VARCHAR</sql-type>
</cmp-field>
</entity>
////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////
Używam MySQL,
Napisz jak możesz, które tabele są odpowiednie
Dzieki i pozdrawiam,
Nick
Mozesz pokazac caly kod bena ?
az
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl