我想在运行在tomcat5上的jythonservlet中调用一个Java方法。看起来像这样:
@SuppressWarnings("unchecked")
public School loadByName(String name) {
List<School> school;
school = getHibernateTemplate().find("from " + getPersistentClass().getName() + " where name = ?", name);
return uniqueResult(school);
}
我在Jython中用以下方法调用它:
^{pr2}$它抛出一个错误,它说loadByName()需要2个参数;得到1个。 它还能找什么别的理由呢?在
如果我尝试先创建一个实例,例如:
foo = com.dc.sports.dao.hibernate.SchoolDaoHibernate()
foo.loadByName('University')
第一个调用抛出一个异常:
No visible constructors for class (com.dc.sports.dao.hibernate.SchoolDaoHibernate)
我想这是因为这是一个私人包裹:
package com.dc.sports.dao.hibernate;
...
@SuppressWarnings("unchecked")
class SchoolDaoHibernate extends AbstractDaoHibernate<School> implements SchoolDao {
那么我怎么才能找到方法呢?在
因为
loadByName
方法不是静态的,Jython可能希望第一个参数是SchoolDAOHibernate
的实例。如果它对您的设计有意义,请将该方法设为静态的。在loadByName不是静态的。 你需要一个实例来调用它。在
更清楚?在
相关问题 更多 >
编程相关推荐