<method-param>java.lang.Object[]</method-param>

Regards,
Adrian

On Tue, 2003-11-04 at 09:56, [EMAIL PROTECTED] wrote:
> Hi All,
> 
> I have a subscription to the yearly documentation. In the documentation I 
> found an example on how to use Dynamic QL. 
> 
> Because my code uses XDoclet for code generation I had to modify the 
> example somewhat. This is what I came up with:
> 
> In my EntityBean:
> 
>         /**
>          * @param jbossQl
>          * @param args
>          * @return
>          * @throws FinderException
>          */
>         public abstract Collection ejbSelectGeneric(java.lang.String 
> jbossQl, Object[] args) throws FinderException;
>  
>         /**
>          * @ejb.home-method view-type = "local"
>          * @param edition
>          * @param week
>          * @param status
>          * @param relno
>          * @param brand
>          * @return
>          */
>         public Collection ejbHomeSelectBySearchCriteria(
>                 String edition,
>                 String week,
>                 String status,
>                 String relno,
>                 String brand) throws FinderException {
> 
>                 StringBuffer jbossQl = new StringBuffer();
>                 jbossQl.append("SELECT OBJECT(a) ");
>                 jbossQl.append("FROM Advertisement ");
>                 jbossQl.append("WHERE ");
>                 Collection arguments = new Vector();
>                 int count = 0;
> 
>                 if (!edition.equals("%")) {
>                         count++;
>                         jbossQl.append("a.edition = ?" + count);
> 
>                         arguments.add(edition);
>                 }
> 
>                 if (!week.equals("-1")) {
>                         count++;
>                         jbossQl.append("AND a.weekNo = ?" + count);
>                         arguments.add(week);
>                 }
> 
>                 if (!status.equals("-1")) {
>                         count++;
>                         jbossQl.append(" AND a.status = ?" + count);
>                         arguments.add(status);
>                 }
> 
>                 if (!relno.equals("%")) {
>                         count++;
>                         jbossQl.append(" AND a.relation.relationId = ?" + 
> count);
>                         arguments.add(relno);
>                 }
> 
>                 count++;
>                 if (count == 1) {
>                         jbossQl.append("a.brand = ?" + count + " ORDER BY 
> a.status");
>                 } else {
>                         jbossQl.append(" AND a.brand = ?" + count + " 
> ORDER BY a.status");
>                 }
>                 arguments.add(brand);
> 
>                 System.out.println(jbossQl.toString());
>                 System.out.println("Arguments:");
>                 Iterator it = arguments.iterator();
>                 count = 0;
>                 while (it.hasNext()) {
>                         count++;
>                         System.out.println("" + count + " : " + (String) 
> it.next());
>                 }
> 
>                 // pack arguments in Object[]
>                 Object[] args = arguments.toArray();
>  
>                 return ejbSelectGeneric(jbossQl.toString(), args);
> 
>         }
> 
> In my Session Facade:
> 
>         /**
>          * @ejb.interface-method
>          * @param edition
>          * @param week
>          * @param status
>          * @param relno
>          * @return
>          */
>         public Collection getAdvertisementBySearchCriteria(
>                 String edition,
>                 String week,
>                 String status,
>                 String relno,
>                 String brand) {
>                 AdvertisementLocalHome home = getAdvertisementLocalHome();
>                 Collection col = home.selectBySearchCriteria(edition, 
> week, status, relno, brand);
>                 return null;
>         }
> 
> When I run XDoclet I get the following jboss-cmp-jdbc.xml (part):
> 
>         <query>
>             <query-method>
>                <method-name>ejbSelectGeneric</method-name>
>                <method-params>
>                   <method-param>java.lang.String</method-param>
>                   <method-param>Object[]</method-param>
>                </method-params>
>             </query-method>
>                 <dynamic-ql/>
>         </query>
> 
> This look good to me... Then I package my EAR and try to deploy, I get the 
> following error:
> 
> 10:41:51,617 INFO  [EARDeployer] Init J2EE application: 
> file:/usr/java/jboss-3.2.2RC4/server/om/deploy/ordermanager-ejb.ear
> 10:42:00,808 WARN  [verifier] EJB spec violation:
> Bean   : Advertisement
> Method : public abstract Collection ejbSelectGeneric(String, Object;) 
> throws FinderException
> Section: 12.2.11
> Warning: Each local home method must match a method defined in the entity 
> bean class.
> 
> 10:42:01,207 ERROR [MainDeployer] could not create deployment: 
> file:/usr/java/jboss-3.2.2RC4/server/om/tmp/deploy/tmp9917ordermanager-ejb.ear-contents/ordermanager-ejb.jar
> org.jboss.deployment.DeploymentException: Verification of Enterprise Beans 
> failed, see above for error messages.
>         at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:490)
>         at org.jboss.deployment.MainDeployer.create(MainDeployer.java:776)
>         at org.jboss.deployment.MainDeployer.create(MainDeployer.java:768)
>         at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:631)
>         at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605)
>         at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at 
> org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
>         at 
> org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
>         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
>         at $Proxy6.deploy(Unknown Source)
> 
> What am I doing wrong here? I can't find any more examples neither in the 
> 'pay' documentation or on the net...
> 
> Thanks a lot,
> 
> Harm de Laat
> Informatiefabriek
> The Netherlands
> 
> 
> 
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: SF.net Giveback Program.
> Does SourceForge.net help you be more productive?  Does it
> help you create better code?   SHARE THE LOVE, and help us help
> YOU!  Click Here: http://sourceforge.net/donate/
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
-- 
xxxxxxxxxxxxxxxxxxxxxxxx 
Adrian Brock
Director of Support
Back Office
JBoss Group, LLC 
xxxxxxxxxxxxxxxxxxxxxxxx 



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to