EJB, JPA E MANAGED BEAN WITHOUT DATA CONTROL

How do I build a simple crud with no EJB without data controls. Exposing the methods of my bean class.
Who can help me thanks.
Edited by: 941064 on 15/06/2012 14:48

You'll write managed beans that access your EJB service facade.
You can use @EJB injection to get this working.
http://biemond.blogspot.co.uk/2010/04/ejb-injection-in-jsf-managed-bean.html

Similar Messages

  • How am I able to use an injected EJB in a Managed Bean Constructor?

    JSF 1.2
    EJB 3.0
    Glassfish v1
    Summary:
    Managed bean injected EJB is null when referencing EJB var in constructor.
    Details:
    In my managed bean, I have a constructor that tries to reference an injected EJB, such as:
    public class CustomerBean implements Serializable {
    @EJB private CustomerSessionRemote customerSessionRemote;
    public CustomerBean() {
    List<CustomerRow> results = customerSessionRemote.getCustomerList();
    }The call within the constructor to customerSessionRemote is null - I've double checked this in Netbeans 5.5.
    How am I able to use an injected EJB in a Managed Bean Constructor?
    Thanks,
    --Todd                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    OK, I was reading the article Web Tier to Go With Java EE 5: A Look at Resource Injection and I understand your statement too.
    Is there any way possible to Inject the EJB prior to the bean instance creation at all?
    Maybe, I need to approach it with the old fashion Java EE 1.4 route and using JNDI in the PostConstruct annotated method to reference the EJB in the managed bean.
    This had to been thought out before, I don't understand why a manged bean's life cycle places any injections at the end of the bean creation.
    Also, now that I understand that the @PostConstruct annotated method will be called by the container after the bean has been constructed and before any business methods of the bean are executed.
    I am trying to reference my EJB as part of the creation of the managed bean.
    What happens: the JSF page loads the managed bean and I need to populate a listbox component with data from an EJB.
    When I try to make the call to the EJB in the listbox setter method, the EJB reference is null.
    Now, I'm not for sure if the @PostConstruct annotation is going to work... hmmmm.
    ** Figured it out. ** I just needed to move the EJB logic that was still in the setter of the component I wanted to populate into the annotated PostConstruct method.

  • Managed Beans and Data Access Object

    I have a question / need help understanding how to configure backing bean and model objects so that memory and object creation/deletion is done as efficiently as possible.
    1. I have a .jsf page with a form and a commandbutton that submits the form inputs to a backing bean (enrollispbean is backing bean)
    <h:commandButton value="Enter" action="#{enrollispbean.insert}"/>
    2. The backing bean is used for form handling - the insert() method is used to read the data fields from the form and create a SQL string that will be submitted to a model object, DbInsert, that is used as a generic data access object that connects to the database and insert the SQL string:
    public class EnrollIspBean {
    private String beanvar1="";
    private String beanvar2= "";
    // DbInsert is data access object
    private DbInsert dbinsert = new DbInsert();
    public String insert (){
    String sqlstmt;
    sqlstmt = "INSERT INTO ispmain VALUES(beanvar1, beanvar2,..)"
    dbinsert.insert(sqlstmt);
    return "success"; }
    3. DbInsert is the data access object that contains a method, insert(), that accepts a sql string to insert into the database. This method contains the code to obtain a connection from the database connection pool and then execute the sql statement (note: error checking code not shown):
    public class DbInsert {
    public void insert(String sqlstmt) throws SQLException {
    Connection conn = null;
    GetDBConnection getdbconnection = new GetDBConnection();
    PreparedStatement stmt = null;
    conn = getdbconnection.getdbconn();
    stmt = conn.prepareStatement(sqlstmt);
    stmt.executeUpdate();
    stmt.close();
    conn.close();
    return;
    Where I need help understanding is how to set up the scope for the managed beans and data access object. Currently, I have the backing bean within the session scope (using the facesconfig.xml file). My main question is how to set up the scope for the Data Access Object - currently I do not have it as a managed bean within facesconfig.xml. Instead I am creating a new instance within the backing bean:
    private DbInsert dbinsert = new DbInsert();
    Is this the best way to do this? Will the DBInsert object now be tied to the session scope of the backing bean (i.e., when backing bean is deleted, the DbInsert object will be deleted from session scope as well.)
    Ideally I would like the data access object to be available as a shared object throughout the life of the application. When I was programming using a servlet approach, I would have created a servlet to load on startup. Now that I'm using java server faces, I'm confused about the scope / how to efficiently set up a data access object that I want to be available to all backing beans in the application.
    tnanks for any help understanding this.
    Tom

    I was thinking about setting the data access object as application scope so that it can be used by an backing bean to execute sql statements.
    If I do set it as application scope, however, if I do this, do I still need to declare a new instance of the object from within each bean that uses the object?
    For example do I need to declare a new instance of the data access object from within the bean? or, should I assume that there is always an instance of the bean available in the application scope, and if so, how do I reference it from within the bean?
    Bean Code:
    public class EnrollIspBean {
    // DbInsert is data access object
    private DbInsert dbinsert = new DbInsert();
    Finally, I understand performance may be an issue if I have one instance of the data access object available in the application scope - is there a way to make multiple instances available in the application scope?
    thanks

  • Deploying EJB 3.0 entity beans without a Datasource

    [Cross-posted from the TopLink list]
    My question: Is there any way to configure the container or persistence provider to defer trying to connect to the Datasource until I make some call that involves persistence? Or any other way to deploy an app containing entity beans without having a database configured?
    Background: I am working on a component that can be configured to run in either persistent or in-memory mode. For the persistent mode we would like to use EJB 3.0 entity beans; for the in-memory mode we would like the component to be deployable without having to have a database available.
    However in my prototype of the application, when I try to deploy to OC4J 10.1.3, as soon as the entity beans are detected the TopLink persistence provider tries to establish a connection to the db via either the configured or default DataSource. So if the db is unavailable, deployment fails. Since this is occuring at deployment, it happens regardless of whether I am actually using any persistence features or not.

    Hi,
    I'm experiencing same problems, is this a bug or an feature?

  • EJB/JPA Session/Entity Bean: Back Reference Id not set

    Hello All,
    I m using JPA as a persist tool. I have an entity Account and in Account there is a collection of entity AccountDetail. In Account entity relation for AccountDetail is One-To-Many and in AccountDetail the relation for Account is Many-To-One. When i save the Account, object of Account and AccountDetail are saved correctly. But the problem is that in AccountDetail the Id of Account is not saved in Database table. I have AccountId in AccountDetail table. plz help me??
    Second thing is that how to generate automatically primary keys when entity saved in database ???

    define the column you want to auto increment as an Integer with Identity attribute set to True (using the sql server management tool for example) and then put
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    in front of the ID declaration in the mapping file, it should generate the IDs automatically.

  • @EJB annotation in JSF managed beans not working

    Hi all,
    I've been trying to get the @EJB annotation to work in a JSF manged bean without success.
    The EJB interface is extremely simple:
    package model;
    import javax.ejb.Local;
    @Local
    public interface myEJBLocal {
    String getHelloWorld();
    void setHelloWorld(String helloWorld);
    and the bean code is simply:
    package model;
    import javax.ejb.Stateless;
    @Stateless
    public class myEJBBean implements myEJBLocal {
    public String helloWorld;
    public myEJBBean() {
    setHelloWorld("Hello World from myEJBBean!");
    public String getHelloWorld() {
    return helloWorld;
    public void setHelloWorld(String helloWorld) {
    this.helloWorld = helloWorld;
    When I try to use the above EJB in a managed bean, I only get a NullPointerException when oc4j tries to instantiate my managed bean. The managed bean looks like:
    package view.backing;
    import javax.ejb.EJB;
    import model.myEJBLocal;
    import model.myEJBBean;
    public class Hello {
    @EJB
    private static myEJBLocal myBean;
    private String helloWorld;
    private String helloWorldFromBean;
    public Hello() {
    helloWorld = "Hello from view.backing.Hello!";
    helloWorldFromBean = myBean.getHelloWorld();
    public String getHelloWorld() {
    return helloWorld;
    public void setHelloWorld(String helloWorld) {
    this.helloWorld = helloWorld;
    public String getHelloWorldFromBean() {
    return helloWorldFromBean;
    Am I missing something fundamentally here? Aren't you supposed to be able to use an EJB from a JSF managed bean?
    Thanks,
    Erik

    Well, the more I research this issue, the more confused I get. There have been a couple of threads discussing this already, and in this one Debu Panda states that:
    "Support of injection in JSF managed bean is part of JSF 1.1 and OC4J 10.1.3.1 does not support JSF 1.1"
    10.1.3.1 Looking up a session EJB with DI from the Web tier
    But if you look in the release notes for Oracle Application Server 10g R3, it is explicitly stated that JSF 1.1. is supported. So I'm not sure what to believe.
    I've also tried changing the version in web.xml as described here:
    http://forums.java.net/jive/thread.jspa?threadID=2117
    but that didn't help either.
    I've filed a SR on Metalink for this, but haven't got any response yet.
    Regards,
    Erik

  • How to make a jsf parameter form with a selectOneChoice and data control

    I want to make a parameter form with a selectOneChoice and store this value in a backing bean, so I can use as a bind variable in query. I already made it happen without data control
    Can someone show how to do it in adf data control. With the wizard it tries put the value
    in a viewobject but I don't have base or destination viewobject. I can change the pagedef
    so it works to fill the selectOneChoice but then I want to store the selected value in a session beab
    here is solution with the application module and request / session bean, I don't
    think it is the right solution
    thanks edwin
    jsf page
    <af:selectOneChoice label="Desk" value="#{selectDesk.desk}"
    id="DeskID"
    binding="#{selectDesk.deskBinding}"
    autoSubmit="true"
    valueChangeListener="#{selectDesk.deskChangeListener}">
    <f:selectItems value="#{selectDesk.deskSelectItems}"/>
    </af:selectOneChoice>
    Selektdesk backing bean
    public SelectDesk(){
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ValueBinding valueBinding = facesContext.getApplication().createValueBinding("#{userInfo}");
    userInfo = (UserInfo) valueBinding.getValue(facesContext);
    public List<SelectItem> getDeskSelectItems() {
    if ( userInfo.getSelectItems() != null ) {
    selectItems = userInfo.getSelectItems();
    return selectItems;
    if ( getBindings() != null ) {
    userInfo.setBindings( getBindings());
    else {
    setBindings(userInfo.getBindings()) ;
    if ( selectItems == null ) {
    selectItems = new ArrayList<SelectItem>();
    DCBindingContainer bc = getBindings();
    SicmaService sicma = (SicmaService)bc.findDataControl("SicmaServiceDataControl").getDataProvider();
    ViewObject desk = sicma.findViewObject("DeskSelectView1");
    desk.executeQuery();
    RowSet rows = desk.getRowSet();
    while (rows.hasNext()) {
    Row a = rows.next();
    String DskId = a.getAttribute(0).toString();
    String DskOms = a.getAttribute(1).toString();
    selectItems.add( new SelectItem(DskId ,DskOms ));
    rows.closeRowSet();
    userInfo.setSelectItems(selectItems);
    return selectItems;
    faces-config.xml
    <managed-bean>
    <managed-bean-name>selectDesk</managed-bean-name>
    <managed-bean-class>org.tennet.sicma.view.backing.SelectDesk</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
    <property-name>bindings</property-name>
    <property-class>oracle.adf.model.binding.DCBindingContainer</property-class>
    <value>#{bindings}</value>
    </managed-property>
    </managed-bean>

    The SRDemo has an example of a selectOneRadio bound to a parameter being used to pass to an ExecuteWithParams action (to automatically feed a view object's named bind variable. This is in the SRStaffSearch.jspx page.
    Also, if you check out example # 72 from my blog:
    http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html#72
    There is another example of using a selectOneListbox to do the same type of thing.
    The steps involved in creating something like this are to:
    (1) Define your named bind variables on your view object
    (2) Drop the "ExecuteWithParams" action in the operations folder of that view object from the Data Control Palette to your page as a "Parameter Form"
    (3) Drop the specific attribute (nested child of the "ExecuteWithParams" action from step (2) as whatever kind of selectOneXXXX control you want
    (4) Delete the extra field on the form you don't want.

  • JDev 10.1.3 and data control

    I didn't find the data control palette in JDev 10.1.3. Does it mean data control are not yet implemented in this preview or do i something wrong ?
    Is it possible to obtain a version with data control implemented. We only use this portion of adf with ejb.

    thanks
    i'm a little bit confused by the fact that jsf in 10.1.3 preview use managed bean (instead of data control) to get/put data from the model layer.
    we are using entity bean and session facade. In 9.0.5.2 we are using dto and data control to generate our jsp.
    we are currently testing/discovering jsf and search the best way to efficiently generate our ui's
    what is right way for jsf
    a) managed bean (if it is possible with session bean)
    b) data control when/if available
    and why ?

  • Create Data Control does not work?!

    I created an application with JSF,EJB,TopLink JPA technology template.
    Two projects were generated, EJBModel and View Controller. So far so good.
    In EJBModel project I generated 6 entities from 6 db tables. I also created a native query in orm.xml and created a result class entity to take the result of this native query.
    I generated session EJB facade and added a method to invoke above native query.
    I also generated EJB client from this facade to test it.
    I run both to ensure query works as expected and it did.
    I then right clicked on session EJB facade and selected option Create Data Control.
    JDev pop-ed up two windows: one window to Choose EJB Interface dialog and on top of this one another window with title "Create Data Control" and with message "Creating data Control..." stuck forever. I could not remove nor stop this window executing, I had to kill JDev in Task Manager.
    Is this a known thing and is there a workaround? This is kind of urgent, any help is appreciated

    I returned to 10.1.3.2. and created the same application, but got bunch of exceptions which forced me a couple of weeks ago to switch to 11g Preview environment:
    SEVERE: [current-workspace-app] An error occured deploying EJB module: com.evermind.server.ejb.exception.DeploymentException: [current-workspace-app:OyaisPrototypeJSFEJB_EJBModel_0] - Exception creating EntityManagerFactory using PersistenceProvider class oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider for persistence unit Prototype.
    com.evermind.server.ejb.exception.DeploymentException: [current-workspace-app:OyaisPrototypeJSFEJB_EJBModel_0] - Exception creating EntityManagerFactory using PersistenceProvider class oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider for persistence unit Prototype.
         at com.evermind.server.ejb.exception.DeploymentException.exceptionCreatingEntityManagerFactory(DeploymentException.java:130)
         at com.evermind.server.ejb.persistence.PersistenceUnitManagerImpl.createContainerEntityManagerFactory(PersistenceUnitManagerImpl.java:197)
         at com.evermind.server.ejb.persistence.PersistenceUnitManagerImpl.initializePersistenceUnit(PersistenceUnitManagerImpl.java:159)
         at com.evermind.server.ejb.persistence.PersistenceUnitManagerImpl.initialize(PersistenceUnitManagerImpl.java:86)
         at com.evermind.server.ejb.EJBPackageDeployment.initializePersistenceUnitManager(EJBPackageDeployment.java:1022)
         at com.evermind.server.ejb.EJBContainer.postInit(EJBContainer.java:845)
         at com.evermind.server.ApplicationStateRunning.initializeApplication(ApplicationStateRunning.java:217)
         at com.evermind.server.Application.setConfig(Application.java:439)
         at com.evermind.server.Application.setConfig(Application.java:340)
         at com.evermind.server.ApplicationServer.addApplication(ApplicationServer.java:1853)
         at com.evermind.server.ApplicationServer.initializeDeployedApplications(ApplicationServer.java:1608)
         at com.evermind.server.ApplicationServer.setConfig(ApplicationServer.java:990)
         at com.evermind.server.ApplicationServerLauncher.run(ApplicationServerLauncher.java:131)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: javax.persistence.PersistenceException: Exception [TOPLINK-28018] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
    Exception Description: predeploy for PersistenceUnit [Prototype] failed.
    Internal Exception: Exception [TOPLINK-7156] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.ValidationException
    Exception Description: Unable to find the class named []. Ensure the class name/path is correct and available to the classloader.
    Internal Exception: java.lang.ClassNotFoundException:
         at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:615)
         at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createContainerEntityManagerFactory(EntityManagerFactoryProvider.java:178)
         at com.evermind.server.ejb.persistence.PersistenceUnitManagerImpl.createContainerEntityManagerFactory(PersistenceUnitManagerImpl.java:192)
         ... 12 more
    Caused by: Exception [TOPLINK-28018] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
    Exception Description: predeploy for PersistenceUnit [Prototype] failed.
    Internal Exception: Exception [TOPLINK-7156] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.ValidationException
    Exception Description: Unable to find the class named []. Ensure the class name/path is correct and available to the classloader.
    Internal Exception: java.lang.ClassNotFoundException:
         at oracle.toplink.essentials.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:212)
         ... 15 more
    Caused by: Exception [TOPLINK-7156] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.ValidationException
    Exception Description: Unable to find the class named []. Ensure the class name/path is correct and available to the classloader.
    Internal Exception: java.lang.ClassNotFoundException:
         at oracle.toplink.essentials.exceptions.ValidationException.unableToLoadClass(ValidationException.java:1751)
         at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataHelper.getClassForName(MetadataHelper.java:283)
         at oracle.toplink.essentials.internal.ejb.cmp3.xml.XMLHelper.getClassForName(XMLHelper.java:109)
         at oracle.toplink.essentials.internal.ejb.cmp3.xml.XMLHelper.getValue(XMLHelper.java:431)
         at oracle.toplink.essentials.internal.ejb.cmp3.xml.XMLHelper.getNodeValue(XMLHelper.java:347)
         at oracle.toplink.essentials.internal.ejb.cmp3.xml.XMLHelper.getNodeValue(XMLHelper.java:298)
         at oracle.toplink.essentials.internal.ejb.cmp3.xml.queries.XMLNamedNativeQuery.<init>(XMLNamedNativeQuery.java:67)
         at oracle.toplink.essentials.internal.ejb.cmp3.xml.accessors.XMLClassAccessor.processNamedNativeQueries(XMLClassAccessor.java:584)
         at oracle.toplink.essentials.internal.ejb.cmp3.xml.accessors.XMLClassAccessor.processEntityMappings(XMLClassAccessor.java:496)
         at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataProcessor.processMappingFile(MetadataProcessor.java:534)
         at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataProcessor.processMappingFiles(MetadataProcessor.java:518)
         at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:352)
         at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:584)
         ... 14 more
    Caused by: java.lang.ClassNotFoundException:
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:242)
         at oracle.toplink.essentials.internal.security.PrivilegedAccessHelper.getClassForName(PrivilegedAccessHelper.java:97)
         at oracle.toplink.essentials.internal.ejb.cmp3.metadata.MetadataHelper.getClassForName(MetadataHelper.java:280)
         ... 25 more

  • Initialise Managed Bean

    Normally Managed Beans are Initialised on demand, but how can I initialise a Managed Bean without Value or Component Binding?
    Thanks for help!

    Hi, something like
    PersonBean person = new  PersonBean();
    FacesContext.getCurrentInstance().getApplication().createValueBinding("#{person}").setValue(FacesContext.getCurrentInstance(),person);should work.
    Frederic

  • Selected node in a tree table (via Data Controls and not managed bean)

    I am facing some problems in getting the selected row in a tree table.I have used data controls for creating the tree on the page.
    I have 3 POJO's,ex; Class AB which has a list of Class CD.And Class CD has a list of class EF. (Used for the tree table)
    Now i have a java class, called MyDelegate.java which has a list of AB.I generated data controls off this MyDelegate class and have dropped the ABlist as a tree table (also displaying CD and EF in the tree table).
    It displays fine with nodes of AB,CD (child of AB)and EF(child of CD)
    The tree table is not bound to any managed bean.
    For performing actions on the tree, i create a method - "doSomething() in the delegate class",generate data controls and drop it as a button.
    Inside doSomething(), i need acess to the selected node in the tree (it can be a node of type AB or CD or EF).
    The problem: I always get access to the node of type AB, and not the child nodes no matter what i click in the tree table.
    doSomething(){
    DCBindingContainer dcBindingContainer = (DCBindingContainer)ADFUtil.evaluateEL("#{bindings}");
    DCIteratorBinding dcTreeIteratorBinding = dcBindingContainer.findIteratorBinding("lstABIterator");
    RowSetIterator rowTreeSetIterator = dcTreeIteratorBinding.getRowSetIterator();
    DCDataRow rowTree = (DCDataRow)rowTreeSetIterator.getCurrentRow();
    if (rowTree.getDataProvider() instanceof AB) {
              //do something
              AB selectedAB = (AB)row.getDataProvider();
    } else if (rowTree.getDataProvider() instanceof CD){
              //do something
    } else if (rowTree.getDataProvider() instanceof EF) {
              // do something
    How do i access the "selected child node of the tree table" here in the delegate class method? Pls help.

    Hi Frank,
    Thanks for the response. In my case, i dont have a managed bean, so i am slightly unsure how to do it.
    There is a mention "Note that another way to access the treeTable component at runtime is to search for it in JavaServer Faces UIViewRoot. This latter option allows you to write more generic code and does not require to create a page dependency to a managed bean"
    How do i use this adf view root (without a managed bean) to get hold of the selected row in the tree table. Pls help.
    Thanks.

  • Managed Beans vs. POJO Data Control for sharing data

    Hi,
    I am currently using JAX-WS proxy client and POJO Data Controls to retrieve data from web services. This data needs to be shared across users. Normally I would use application scoped managed beans for this, but since I prefer using data controls and the binding layer, would using static POJO Data Control classes achieve the same thing?

    Hi,
    Data Controls don't exist across user sessions so in your use case use a managed bean in application scope. If you want to make this available from a Data Control
    - create a POJO
    - Use EL in the POJO to access the managed bean
    - Create a DataControl from the POJO
    This way the Data Control exposes the data as an API but itself always reaches out to the managed bean as a data store/cache
    Frank

  • Create Data Control not showing in EJB Session Bean context menu

    Hi All,
    I've been studying the new Oracle Application Development Framework Tutorial for 10g Release 3 (10.1.3). When I get to page 2-16 (page 31 of the PDF doc) it says to create ADF Data Control. Specifically is says " In the Applications Navigator, right-click the SRPublicFacadeBean.java node and choose Create Data Control from the context menu."
    But my context menu doesnt have the Create Data Control option. I double checked that I didn't miss a step in the tutorial. I'm sure it's something simple. Can anyone point me in the right direction? Is there another way to create the Data Control for an EJB Session Bean?
    Thanks,
    Cary

    I downloaded "jdevstudio1013.zip " and I still don't have this context menu?
    What are the steps to correct this?
    Thanks,
    --Todd
    Figured it out. I was having an extension issue and I had to turn off all of my extensions. Thus, turned on the ADF extension (duh!) and all was well.
    Message was edited by:
    jtp51

  • JavaBeans Data Control / Managed beans interaction

    Working in JDev/ADF 11g
    I have an Application Scoped ADF managed bean that initializes some services for my ADF application. (These are non-database backed business services and so they do not integrate as tightly with Jdev as data controls). They require some constructor arguments and other initialization parameters and so they cannot be written as pure beans.
    I wrote Java Beans to use as data controls that wrap these services. What I would like to do is to keep the creation of these services in the application scoped bean, so they can be used programmatically in other areas. When the data controls beans are initialized, I want to grab their underlying services from the application scoped bean via the ADFContext.
    My issue is that at the time the data control beans are instantiated, the ADFContext returns null when accessing the application scoped bean - ie it has not been created yet.
    What is the proper way to pass initialization data to JavaBean data controls? Ideally I could simply pass the data control a reference to its underlying service.
    If Im going about this all the wrong way, with the application scoped bean holding the application wide business services, please feel free to advise me otherwise.
    Thanks!

    Okay - so I figured out one way to do this (detailed below), but my question still stands as to if there is a proper way to get information to a JavaBean data control when it is instantiated.
    What I just learned is that although my application scoped bean does not exist when the data control is created, it can exist when the the data control is called by the .jspx. I say 'can' because it will only exist if the .jspx backing bean references the application scoped bean as a managed property. i.e. ADF will create the data control, create the page bean, create the application bean (b/c the page needs it), and then call the data control, at which point the data control will find the application scoped bean. This is sort of a hack, since it requires an unintuitive setting for it work. so I think my question still stands, how to pass data from the application scoped bean to the data control.

  • EJB 3.0 / Data control binding / ADF Faces

    We have a great and very useful tool to generate rich client web application. Generate web component from a data structure is easy but manage the full life cycle is a little bit more complex. This complexity is dramatically increased when tool/platform are offering many models to solve the problem.
    In JDev we have three major choices:
    1) adf business components
    2) top link pojo
    3) ejb3.0
    From the client side and in my point of view (at my current understanding) the first and second choice are the easiest way to manage the persistence because they are what i say "bidirectional", that mean i will use the same data structure to persist and synchronize the database. I may only calll a method from the object to put my changes from the midle-tier into the database.
    EJB 3.0 seem to be more cormplex due essentially to the presence of the session bean that acts like conversational api. I like this architecture because it is the most flexible but from my client i have to manage these api's instead of one data structure. This mean for me to catch/detect every updates, new insert or deletes in my business object and to write the corresponding code to apply to correct entity bean methods from my session bean.
    Why not manage this logic in the data control framework by declaring which methods are to use as finder to get the data and which methods are to used to manage the persistence (persist, merge, remove) at object level.

    Exactly what i mean
    Actually Data Control architecture seem to be business object oriented with native method called from the same object to retrieve (the most part done)/synchronize the data with the database.
    This is fine than your architectue don't provide a service layer like session facade.
    With session facade you will access different business method to retrieve data and synchronize you data with the database not different method from the same object like application module do in adf bc.
    I see two solution, the best is that you extend the data control framework to offer standard crud operation and a tools to map these with one or many methods in the same (has to be the same?this is a question of architecture, i think it has to be the same but the framework may have to permit to use an another one for flexibility) session bean. This may be the same from adf bc or top link but the method may be selected automatically by the tool (wizard).
    The second solution is to build specialized sesssion bean with mandatory standardized methods and map this directly in the framework. The advantage i see is that the updates may be collected only once by the session bean by passing a specialized object manipulated by a specialized method.
    In fact the best solution is something that combines mapping in the data control and a specialized set of methods in the session bean to execute a transaction in a whole at the server level.
    What is to be decided if the framework (data control part) has to maintain a status for attribute (or set of attribute that correspond to a data control node) that are new inserted, updated or deleted and to synchronize only the changes.
    I'm very surprising that something like that it is not already in the framework ?
    How do I have to take care of changes made in a data control node object when i have used it to generate an adf faces by example in master / detail pages with an edit form like in otn examples. I see that the detail list in the detail table is updated so the data control is updated correctly by the edit form when i submit the changes but how to finally get this changes and synchronize with the database ?
    ps i reply previously by mistake by email sorry ... not that the email is not exactly the same as the post here
    Michel

Maybe you are looking for

  • I can not get to verified my Apple ID account, and I don't know what to do now.  Please help..

    I am trying to get a game from the APP store, but every time I try to down load it; it keep telling me to verified my account. But I don't know how to do it, because I didn't get anything in my email address to do so.

  • Kik messenger not available. why? and why can't we...

    I've been using my Nokia Lumia 620 since like July'13. I faced quite alot of problems. But after the update, there arent so many problems now. i searched for kik messenger in the store. No results were shown. Whereas one of my friend, who has Lumia 5

  • What is a "Plus" member and how do I become one?

    I recently opened a project in Premier Elements 10. It is a project I have used and reused over the last three years. When I opened it, I found out that the theme I used, Picture Cube, is now considered only for Plus Members and it will not load. I c

  • QT not playing sound for MPEG1 files on my Intel Mac

    My QT Pro (latest version, automatically updated regularly) on my new Intel iMac will play the video of MPEG1 files, but no longer plays their audio. The same MPEG1 files play fine on my "Wintel" machine at work using QT for Windows 7.0.4 (the non-Pr

  • Strange Behavior in iMovie 08

    I recently purchased a MacPro, installed Leopard and moved all my files, applications, and settings from my MacBook Pro notebook by way of a Time Machine backup. Everything went without a hitch except for iMovie 08. When I open it it appears to start