Howdy,
I'm new to both EJB and JBoss and boy, do I have a
problem. I've been over the documentation on the
JBoss web site for days and through the mailing list
archive from top to bottom but didn't find anyone else
having this specific problem.
I can't get certain custom finders to work.
This is the error message I get in the JBoss log when
starting the server:
[Container factory] Finder:idandname
[JAWS] Could not create the finder findByIdAndName,
because no matching CMP field was found.
================================================
Here is the snippet from the included jaws.xml:
<entity>
<ejb-name>ArticleBean</ejb-name>
<pk-constraint>true</pk-constraint>
<cmp-field>
<field-name>id</field-name>
<column-name>ID</column-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
<column-name>NAME</column-name>
</cmp-field>
<finder>
<name>findById</name>
<query>ID = {0}</query>
<order>ID DESC</order>
</finder>
<finder>
<name>findByIdAndName</name>
<query><![CDATA[id ={0} AND
name={1}]]></query>
<order>id DESC</order>
</finder>
</entity>
===================================================
Here is the Home interface of the EJB:
package com.nathanfrund.xwl;
import java.rmi.RemoteException;
import javax.ejb.*;
import java.util.Collection;
/**
This interface defines the home interface for the
'Article' EJB.
*/
public interface ArticleHome extends EJBHome
{
/**
Create a new XWL instance.
*/
public Article create(Integer id) throws
RemoteException, CreateException;
/**
Find the Article with the specified ID. This
method is not implemented by
the Bean, but by the container.
*/
public Article findByPrimaryKey(Integer id) throws
RemoteException, FinderException;
/**
Finds the Article whose 'name' attribute matches
that specified. This
method is implemented byt he container
*/
public Collection findByName(String name) throws
RemoteException, FinderException;
/**
Get all Article instances. This method is
implemented by the container
*/
public Collection findAll() throws
RemoteException, FinderException;
public Collection findByIdAndName(Integer id,
String name) throws RemoteException, FinderException;
}
=====================================================
The overridden "findById" works perfectly and of
course the "findByIdAndName" returns an empty
Collection when called by a client. Any help would be
*GREATLY* appreciated.
For completeness sake here's the CMP bean:
=======================================================
package com.nathanfrund.xwl;
import java.rmi.RemoteException;
import javax.ejb.*;
import org.jboss.util.AutoNumberFactory;
/**
This class contains the implementation for the methods
specified in the home
and remote interfaces for the 'XWL' EJB.
*/
public class ArticleBean implements EntityBean
{
transient private EntityContext ctx;
static java.util.Date now = new java.util.Date();
public Integer id;
public boolean reviewed;
public java.sql.Date date;
public java.sql.Time time;
public String topic;
public String title;
public String department;
public String summary;
public String body;
public String name;
public String email;
/**
Create an instance of a CD. Note that this
method returns null because
the real creation is managed by the EJB
container.
*/
public Integer ejbCreate (Integer _id)
{
id =
AutoNumberFactory.getNextInteger("ArticleBean");
date = new java.sql.Date(now.getTime());
time = new java.sql.Time(now.getTime());
return null;
}
/**
Called when the object has been instantiated;
does nothing here.
*/
public void ejbPostCreate(Integer id){}
public Integer getId(){ return id; }
public boolean getReviewed(){ return reviewed; }
public void setReviewed(boolean _reviewed){
reviewed = _reviewed; }
public java.sql.Date getDate(){ return date; }
public java.sql.Time getTime(){ return time; }
public String getTopic() { return topic; }
public void setTopic(String _topic){ topic =
_topic; }
public String getTitle(){ return title; }
public void setTitle(String _title){ title =
_title; }
public String getDepartment(){ return department;
}
public void setDepartment(String _department){
department = _department; }
public String getSummary(){ return summary; }
public void setSummary(String _summary){ summary =
_summary; }
public String getBody(){ return body; }
public void setBody(String _body){ body = _body; }
public String getName(){ return name; }
public void setName(String _name){ name = _name; }
public String getEmail(){ return email; }
public void setEmail(String _email){ email =
_email; }
public void setEntityContext(EntityContext ctx){
this.ctx = ctx; }
public void unsetEntityContext() { ctx = null; }
public void ejbActivate() {}
public void ejbPassivate() {}
public void ejbLoad() {}
public void ejbStore() {}
public void ejbRemove() {}
}
__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user