Hi Max, As Chris said the reason you are getting the npe is because the control is not being instantiated.
You can use a Beehive control directly from a JSP, it sounds like that might work for you in this case. I've attached a sample JSP file from the Beehive controls-spring sample which demonstrates how to use a control from a JSP. You don't need Spring to do this -- this was just the first sample I came across. - Chad On 7/26/06, Chris Hogue <[EMAIL PROTECTED]> wrote:
Hi Max, I'm not sure you can use @Control instantiation in a regular Java class. I don't believe there's anything that triggers the instantiation. When you run in a page flow or another control those have a "control container" that handles this. Have you tried programmatic instantiation as described here? http://beehive.apache.org/docs/1.0.1/controls/programming.html#Programmatic+Instantiation -Chris On 7/26/06, Ricci, Massimiliano (HPS C&I, HP-Italy) <[EMAIL PROTECTED]> wrote: > Hi folks, > > I'm trying to use Beehive EJB control in my project. > I've done two tests. > In the first one I've created a Session EJB ("ProvaSessionBean") using > IBM Application Server Toolkit (AST), with just one method (String > welcomeName (String name)), and imported (the jar file) it on BEA > Workshop 9.2.0 for Weblogic Platform. I've created a new "Dynamic Web > Project" using Beehive facets (Controls & NetUI). By the wizard I've > created an EJB Control (filling the field "JNDI Name" with the value in > META-INF\ibm-ejb-jar-bnd.xmi ("ejb/ejbs/ProvaSessionBeanHome") and from > META-INF\ejb-jar.xml for Home/Business Interface > ("ejbs.ProvaSessionBean" and "ejbs.ProvaSessionBeanHome")). > > In Controller class I've instanced the EJB Control by annotation > (@Control) and call the EJB method in the Controller method. I've > exported the ear file and deployed it on IBM WebSphere Application > Server 6.1 > In this case all work correctly. > > Then I've tried to use the EJB Control in a normal Java class. > I've imported the EJB (jar) in my project, and created a "Dynamic Web > Project" not using Beehive technology (in particular Beehive NetUI). > I've imported jar to use EJB Control (beehive-controls.jar, > beehive-ejb-control.jar) and created EJB Control > (ProvaSessioBeanCtrl.java) following the same step described above. Then > I've created a (simple) Java class (Prova.java) to instance the control > (using annotation @Control) and use EJB method, and a jsp page where I > called this java class. > I've exported the ear file and deployed it on IBM WebSphere Application > Server 6.1. > When I've tested the application a "java.lang.NullPointerException" was > generated because the EJB Control in java class not was instanced! > I've checked that every class by APT was created (Prova.class, > Prova.controls.properties, ProvaClientInitializer.class, > ProvaSessioBeanCtrl.class, ProvaSessioBeanCtrlBean.class, > ProvaSessioBeanCtrlBean.class.manifest, > ProvaSessioBeanCtrlBeanBeanInfo.class) and all seems correct. > > Have anybody some idea because EJB Control doesn't work on java class? > Is it possibile use Beehive EJB Control (or Beehive Control in general) > in a Java class instead in a PageFlow? > > Thanks in advance, > Max >
