error when calling entity bean findall() functions
cuiyu Jan 6, 2009 1:08 AMI wrote a client to insert data to derby database, and then print all the data rows in the console. The code is as below
ublic class MsgSender {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Context ctx= new InitialContext ( );
PersonFacadeRemote dbcon = (PersonFacadeRemote)ctx.lookup("PersonFacade/remote");
Person newperson = new Person();
newperson.setName("terry");
dbcon.save(newperson);
List<Person> results = dbcon.findAll();
for (Person person:results)
{
System.out.println(person.getPersonId()+" "+person.getName());
}
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
}
}
}
when i debug the programe, i found that it can sucsessfully insert the data into the database, but when the programe run at the place
results = dbcon.findAll();
i found that the dbcon.findall() throw an unexpected exception
java.lang.RuntimeException: Specified calling class, [I could not be found for sun.misc.Launcher$AppClassLoader@18d107f
i just didn't know why this error happend, since
dbcon.save(newperson);
works well.
The database related class is actually auto-generated by Myeclipse , and i checked finding nothing wrong to my knowlege. The Person class implents Serializable interface and the findall() funcition is as below
@Remote
public interface PersonFacadeRemote {
public List<Person> findAll(int... rowStartIdxAndCount);
}
@SuppressWarnings("unchecked")
public List<Person> findAll(final int... rowStartIdxAndCount) {
LogUtil.log("finding all Person instances", Level.INFO, null);
try {
final String queryString = "select model from Person model order by model.person_id";
Query query = entityManager.createQuery(queryString);
if (rowStartIdxAndCount != null && rowStartIdxAndCount.length > 0) {
int rowStartIdx = Math.max(0, rowStartIdxAndCount[0]);
if (rowStartIdx > 0) {
query.setFirstResult(rowStartIdx);
}
if (rowStartIdxAndCount.length > 1) {
int rowCount = Math.max(0, rowStartIdxAndCount[1]);
if (rowCount > 0) {
query.setMaxResults(rowCount);
}
}
}
return (List<Person>)query.getResultList();
} catch (RuntimeException re) {
LogUtil.log("find all failed", Level.SEVERE, re);
throw re;
}
}
HOW CAN I FIX THIS PROBLEM?