First, thank you very much for attention. I really need it.
And :
ejb-jart.xml:
<?xml version="1.0" encoding="Cp1251"?>
<ejb-jar>
<description>Calculation test</description>
<display-name>Calculation</display-name>
<enterprise-beans>
<entity>
<description>Models calculation</description>
<ejb-name>CalculationBean</ejb-name>
<home>Calc.CalcHome</home>
<remote>Calc.Calc</remote>
<ejb-class>Calc.CalcBean</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<primkey-field>zaka</primkey-field>
<resource-ref>
<description>A jdbc connection for the BMP
bean</description>
<res-ref-name>jdbc/SC1</res-ref-name>
<resource-name>SCTest</resource-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<env-entry>
<env-entry-name>createCalcSQL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>insert into calc values ( ?,
kf(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?))</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>deleteCalcSQL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>delete from calc where
zaka=?</env-entry-value>
</env-entry>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>CalculationBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
CalcBean.java:
package Calc;
import javax.ejb.*;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
import java.math.*;
import java.util.*;
//EJBException- no specific sys level exception
public class CalcBean implements EntityBean{
private EntityContext ctx;
private InitialContext context;
private final static double[] kf_0= new double[15];
static{
Arrays.fill( kf_0, 0);
}
private String creation, deletion;
//persistance fields
public String zaka;
double[] kf_a= new double[kf_0.length];
//primary key zaka is upsent- unmodifable
public double[] getKf_a(){
return kf_a;
}
public void setKf_a( double[] kf_a){
this.kf_a= kf_a;
}
Connection getConnection() throws NamingException,SQLException{
DataSource ds= (DataSource)context.lookup( "java:comp/env/jdbc/SC1");
return ds.getConnection();
}
//life cycle map
public void setEntityContext( EntityContext ctx){
this.ctx= ctx;
try{
context= new InitialContext();
Properties env= (Properties)context.lookup( "java:comp/env");
creation= env.getProperty( "createCalcSQL");
deletion= env.getProperty( "deleteCalcSQL");
}catch( NamingException ne){ throw new EJBException( ne.getMessage());}
}
public void unsetEntityContext(){ ctx= null;}
public String ejbCreate( String zaka) throws CreateException{
try{
Connection conn= getConnection();
//"insert into calc values(?, kf(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?))"
PreparedStatement pstmt= conn.prepareStatement( creation);
pstmt.setString( 1, zaka);
for( int i= 0; i<= kf_0.length; i++) pstmt.setDouble( i+2, kf_0[i]);
pstmt.executeUpdate();
conn.close();
}catch( Exception e){ throw new CreateException( e.getMessage());}
this.zaka= zaka;
kf_a= (double[])kf_0.clone();
return zaka;
}
public void ejbPostCreate( String zaka){}
public void ejbRemove() throws RemoveException{
try{
Connection conn= getConnection();
PreparedStatement pstmt= conn.prepareStatement( deletion);
pstmt.setString( 1, zaka);
pstmt.executeUpdate();
conn.close();
}catch( Exception e){ throw new RemoveException( e.getMessage());}
}
public String ejbFindByPrimaryKey( String zaka) throws
FinderException{//a'la create
try{
Connection conn= getConnection();
PreparedStatement pstmt= conn.prepareStatement( "select kf_a from calc
where zaka=?");
pstmt.setString( 1, zaka);
ResultSet rs= pstmt.executeQuery();
if( !rs.next()) throw new ObjectNotFoundException( "Calculation not found
"+ zaka);
this.zaka= zaka;
Array kfs= rs.getArray( 1);
BigDecimal[] val= (BigDecimal[])kfs.getArray();
for( int i= 0; i< val.length; i++) kf_a[i]= val[i].doubleValue();
conn.close();
}catch( SQLException e){ throw new EJBException( e.getMessage());
}catch( NamingException e){ throw new EJBException( e.getMessage());}
return zaka;
}
//in transactions
public void ejbLoad(){
try{
Connection conn= getConnection();
PreparedStatement pstmt= conn.prepareStatement( "select kf_a from calc
where zaka=?");
pstmt.setString( 1, zaka);
ResultSet rs= pstmt.executeQuery();
if( !rs.next()) throw new NoSuchEntityException( "No rows found");
Array kfs= rs.getArray( 1);
BigDecimal[] val= (BigDecimal[])kfs.getArray();
for( int i= 0; i< val.length; i++) kf_a[i]= val[i].doubleValue();
conn.close();
}catch( SQLException e){ throw new EJBException( "ejbLoad:
"+e.getMessage());
}catch( NamingException e){ throw new EJBException( "ejbLoad:
"+e.getMessage());}
}
public void ejbStore(){
try{
Connection conn= getConnection();
PreparedStatement pstmt= conn.prepareStatement( "update calc (kf_a)
et( kf(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) where zaka=?");
int i= 0;
for(; i< kf_a.length; i++) pstmt.setDouble( i+1, kf_a[i]);
pstmt.setString( i+1, zaka);
}catch( Exception e){ throw new EJBException( "ejbStore:
"+e.getMessage());}
}
//vmemory management-release connections etc. internal resource management
public void ejbActivate(){}
public void ejbPassivate(){}
}
CalcHome.java:
package Calc;
import javax.ejb.*;
import java.rmi.*;
public interface CalcHome extends EJBHome{
Calc create( String zaka) throws RemoteException, CreateException;//public
abstract by default
Calc findByPrimaryKey( String zaka) throws RemoteException,
FinderException;//RemoteException not declared in bean...
}
----------------------------------------------------------------------------
----------------------------
Not only find method has this effect but create too.And
CalcHome
lc=(CalcHome)PortableRemoteObject.narrow( context.lookup( "CalculationBean")
works fine but calc.create/find throws exception.
----- Original Message -----
From: "Aaron Mulder" <[EMAIL PROTECTED]>
To: "jBoss" <[EMAIL PROTECTED]>
Sent: Thursday, September 21, 2000 7:57 PM
Subject: Re: [jBoss-User] JNP/ClassNotFound source
> Can you send your ejb-jar.xml, and the contents of your bean
> implementation's ejbFindByPrimaryKey method?
>
> Aaron
>
> On Thu, 21 Sep 2000, Andrew wrote:
> > import Calc.*;
> > import javax.rmi.*;
> > import javax.naming.*;
> > import java.util.*;
> >
> > class a{
> > public static void main( String[] arg) throws Exception{
> > Hashtable prop= new Hashtable();
> > prop.put( InitialContext.PROVIDER_URL, "localhost");
> > prop.put( InitialContext.INITIAL_CONTEXT_FACTORY,
> > "org.jnp.interfaces.NamingContextFactory");
> >
> > InitialContext context= new InitialContext( prop);
> > CalcHome calc=
> > alcHome)PortableRemoteObject.narrow( context.lookup( "CalculationBean"),
> > CalcHome.class);
> > calc.findByPrimaryKey( "test1");//Error
> >
> >
> >
> >
> >
> > }
> > }
> >
> > In jboss.xml
> > <enterprise-beans>
> > <entity>
> > <ejb-name>CalculationBean</ejb-name>
> > <jndi-name>CalculationBean</jndi-name>
> > <configuration-name>Default BMP EntityBean</configuration-name>
> > </entity>
> > </enterprise-beans>
> >
> > ----- Original Message -----
> > From: "Aaron Mulder" <[EMAIL PROTECTED]>
> > To: "jBoss" <[EMAIL PROTECTED]>
> > Sent: Tuesday, September 19, 2000 9:05 PM
> > Subject: Re: [jBoss-User] JNP/ClassNotFound
> >
> >
> > > As Ole indicated in a parallel message, the ClassNotFoundException
> > > is cosmetic and does not cause problems.
> > > The JNP exception you see looks like a problem in your EJB
> > > implementation class - a typo in a JNDI name or something. Can you
> > > double-check all statements where you look up something in JNDI? You
can
> > > post the bean implementation code here, if you like. But it looks
like
> > > you're trying to do something like:
> > >
> > > Foo foo = (Foo)context.lookup("java:comp/env");
> > >
> > > Where you don't actually get the type of object you're expecting
> > > (because java:comp/env is a sub-context not a Foo).
> > >
> > > Aaron
> > >
> > > On Tue, 19 Sep 2000, Andrew wrote:
> > > > Hello, win2000+jdk1.3+(jboss 2.0 beta prod 01) config has the
following
> > > > problems:
> > > > 1)After deploying BMP bean in \deploy dir and running the server I
find
> > out
> > > > this error message on console:
> > > > [Container factory] java.lang.ClassNotFoundException: class
> > > > org.jboss.security.EJBSecurityManagerDefaultImpl
> > > > -class located in jboss.jar.
> > > > but bean was deployed:
> > > > [Container factory] Deployed application: file:/C:/jboss/deploy/
> > > > After that I wrote some tiny client calling
indByPrimaryKey( String) on
> > > > home iface .All is ok while no
> > > > home.findByPrimaryKey() or other method invocation- result is
> > > >
> > > > java.rmi.ServerException: RemoteException occurred in server thread;
> > nested
> > > > exception is:
> > > > java.rmi.ServerException: Exception occurred; nested exception is:
> > > > java.lang.ClassCastException: org.jnp.interfaces.NamingContext
> > > > java.rmi.ServerException: Exception occurred; nested exception is:
> > > > java.lang.ClassCastException: org.jnp.interfaces.NamingContext
> > > > java.lang.ClassCastException: org.jnp.interfaces.NamingContext
> > > > at
> > > >
> >
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteC
> > > > all.java:245)- strange... this class is in jdk jar file
> > > > at
> >
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
> > > > at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
> > > > at
> > > >
> >
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.invokeHome(Unkno
> > > > wn Source)
> > > > at
> > > >
> >
org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:221)
> > > > at $Proxy0.findByPrimaryKey(Unknown Source)
> > > > at a.main(a.java:14)
> > > > Exception in thread "main"
> > > >
> > > > What's the problem?
> > > > Thank you.
> > > >
> > > >
> > > >
> > > > --
> > > > --------------------------------------------------------------
> > > > To subscribe: [EMAIL PROTECTED]
> > > > To unsubscribe: [EMAIL PROTECTED]
> > > > Problems?: [EMAIL PROTECTED]
> > > >
> > >
> > >
> > >
> > >
> > >
> > > --
> > > --------------------------------------------------------------
> > > To subscribe: [EMAIL PROTECTED]
> > > To unsubscribe: [EMAIL PROTECTED]
> > > Problems?: [EMAIL PROTECTED]
> > >
> > >
> >
> >
> >
> >
> > --
> > --------------------------------------------------------------
> > To subscribe: [EMAIL PROTECTED]
> > To unsubscribe: [EMAIL PROTECTED]
> > Problems?: [EMAIL PROTECTED]
> >
>
>
>
> --
> --------------------------------------------------------------
> To subscribe: [EMAIL PROTECTED]
> To unsubscribe: [EMAIL PROTECTED]
> Problems?: [EMAIL PROTECTED]
>
>
--
--------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Problems?: [EMAIL PROTECTED]