Hi Chris,

_Probably_ the problem is that the EJB Control need a "container context" to 
run. Is it possible to add a "container context" to a simple a Java class to 
use an EJB Control?

Thanks in advance,
Max

> -----Original Message-----
> From: Chris Hogue [mailto:[EMAIL PROTECTED] 
> Sent: 27 July 2006 21:20
> To: Beehive Users
> Subject: Re: EJB Control doesn't work on java class
> 
> This actually looks more problematic than it first appears. 
> The EJB control (and others) rely on some of the lifecycle 
> methods like onAcquire and onRelease to get and release their 
> resources.
> 
> So unfortunately I don't know of a quick answer to that 
> problem outside of a control container, it will take some 
> digging. If others have tips on how to accomplish this or 
> where to look that would be helpful.
> 
> -Chris
> 
> On 7/27/06, Ricci, Massimiliano (HPS C&I, HP-Italy) 
> <[EMAIL PROTECTED]> wrote:
> > Hi Chris,
> >
> > I'm retyped the code using programmatic and declarative 
> mechanism to instance the control.
> >
> > Unfortunately calling the two method (welcomeDeclarative, 
> welcomeProgrammatic) I'm getting in both case the same exception:
> >
> > org.apache.beehive.controls.api.ControlException: Control 
> > initialization failure[Contextual service 
> > org.apache.beehive.controls.api.context.ResourceContext is not 
> > available]
> >
> > Do you have any advice to solve this (two) problems 
> (declarative (if is possible) and programmatic)?
> >
> > This is my client class:
> >
> > package controls;
> >
> > import org.apache.beehive.controls.api.bean.Control;
> > import org.apache.beehive.controls.api.bean.Controls;
> > import org.apache.beehive.controls.api.context.ControlThreadContext;
> >
> > public class Prova {
> >
> >         @Control
> >         private ProvaSessioBeanCtrl provaSessioBeanCtrl;
> >
> >         public Prova() throws ClassNotFoundException {
> >
> >                 try {
> >                         Controls.initializeClient(null, this, null);
> >                 } catch (ClassNotFoundException e) {
> >
> >                         e.printStackTrace();
> >                 }
> >         }
> >
> >         public String welcomeProgrammatic(String name) {
> >                 String ritorno = "bubububu";
> >                 try {
> >
> >                         ProvaSessioBeanCtrlBean 
> provaSessioBeanCtrl = (ProvaSessioBeanCtrlBean) Controls
> >                                         
> .instantiate(ProvaSessioBeanCtrlBean.class, null,
> >                                                         
> ControlThreadContext.getContext(),
> >                                                         
> "provaSessioBeanCtrl");
> >                         ritorno = 
> > provaSessioBeanCtrl.welcomeName(name);
> >
> >                 } catch (Exception ex) {
> >                         //cnfe.printStackTrace();
> >                         ritorno = "Exception by 
> Programmatic: " + ex.toString();
> >                 }
> >                 return ritorno;
> >         }
> >
> >         public String welcomeDeclarative(String name) {
> >                 String ritorno = "bububub";
> >                 try {
> >
> >                         ritorno = 
> provaSessioBeanCtrl.welcomeName(name);
> >                 } catch (Exception cnfe) {
> >                         //cnfe.printStackTrace();
> >                         ritorno = "Exception by 
> Declarative: " + cnfe.toString();
> >                 }
> >                 return ritorno;
> >         }
> >
> > }
> >
> > > -----Original Message-----
> > > From: Chris Hogue [mailto:[EMAIL PROTECTED]
> > > Sent: mercoledì 26 luglio 2006 16.23
> > > To: Beehive Users
> > > Subject: Re: EJB Control doesn't work on java class
> > >
> > > 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
> > > >
> > >
> >
> 

Reply via email to