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
> >
>