NPE when releasing application module instance

HI,
I am hitting a NPE when I am trying to release my application module.
My code goes like this.
public void releaseAppModule() {
     try {
          super.releaseRootAppModule(false);
     } catch (Exception e) {
          e.printStackTrace();
}...and the exception
java.lang.NullPointerException
at oracle.jbo.client.Configuration.releaseRootApplicationModule(Configuration.java:1435)Use Case:
I am getting my data from DB.
1. On first load, I will hit this NPE
2. When I do refresh on the browser, I no longer am experiencing this.
Any reason why?
How do I troubleshoot such case?
JDEV 11G PS3

i think this will helps you.
JBO-30006 / BEA-000000 in ADF BC when running production

Similar Messages

  • Application pool unable to check out application module instance in TOMCAT!

    Hi,
    I am able to run my bc4j application (WITH jsp CLIENTS) in JDEVELOPER just fine. But when I deploy it to TOMCAT, it gives me an error :
    "oracle.jbo.common.ampool.ApplicationPoolException: JBO-3003: The application pool WoopsBC4J.WoopsBC4JModule, failed to check out an application module instance"
    Can anyone tell me why this is happening?
    I have successfully deployed the sample ONLINEORDERS application to TOMCAT without any problem but this application somehow refuses to work.
    Is there anyone who encountered similar problems?
    Regards
    Ifti

    Chris, Here's the complete error message that I am receiving when I attempt to call the JSP page. I infact re-installed tomcat just to make sure that I don't have any old files that my application is referring to. So right now , I have only one application.
    Any help would be appreciated!
    Internal Servlet Error:
    javax.servlet.ServletException: oracle.jbo.common.ampool.ApplicationPoolException: JBO-30003: The application pool, WoopsModule, failed to checkout an application module instance.
    oracle.jbo.ApplicationModule oracle.jbo.html.jsp.JSPApplicationRegistry.getAppModuleInstance(java.lang.String, javax.servlet.jsp.PageContext)
    int oracle.jbo.html.jsp.datatags.ApplicationModuleTag.doEndTag()
    void _0002fiss_0005fListPerson_0002ejspiss_0005fListPerson_jsp_0._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void org.apache.jasper.runtime.HttpJspBase.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean)
    void org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, boolean)
    void org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.tomcat.core.ServletWrapper.doService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.Handler.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ServletWrapper.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.internalService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(org.apache.tomcat.service.TcpConnection, java.lang.Object[])
    void org.apache.tomcat.service.TcpWorkerThread.runIt(java.lang.Object[])
    void org.apache.tomcat.util.ThreadPool$ControlRunnable.run()
    void java.lang.Thread.run()
    ## Detail 0 ##
    oracle.jbo.NoDefException: JBO-25002: Definition WoopsBC4J.WoopsBC4JModule of type ApplicationModule not found
    oracle.jbo.ApplicationModule oracle.jbo.html.jsp.JSPApplicationRegistry.getAppModuleInstance(java.lang.String, javax.servlet.jsp.PageContext)
    int oracle.jbo.html.jsp.datatags.ApplicationModuleTag.doEndTag()
    void _0002fiss_0005fListPerson_0002ejspiss_0005fListPerson_jsp_0._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void org.apache.jasper.runtime.HttpJspBase.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean)
    void org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, boolean)
    void org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.tomcat.core.ServletWrapper.doService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.Handler.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ServletWrapper.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.internalService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(org.apache.tomcat.service.TcpConnection, java.lang.Object[])
    void org.apache.tomcat.service.TcpWorkerThread.runIt(java.lang.Object[])
    void org.apache.tomcat.util.ThreadPool$ControlRunnable.run()
    void java.lang.Thread.run()
    void org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.tomcat.core.ServletWrapper.doService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.Handler.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ServletWrapper.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.internalService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(org.apache.tomcat.service.TcpConnection, java.lang.Object[])
    void org.apache.tomcat.service.TcpWorkerThread.runIt(java.lang.Object[])
    void org.apache.tomcat.util.ThreadPool$ControlRunnable.run()
    void java.lang.Thread.run()
    Root cause:
    javax.servlet.jsp.JspException: oracle.jbo.common.ampool.ApplicationPoolException: JBO-30003: The application pool, WoopsModule, failed to checkout an application module instance.
    oracle.jbo.ApplicationModule oracle.jbo.html.jsp.JSPApplicationRegistry.getAppModuleInstance(java.lang.String, javax.servlet.jsp.PageContext)
    int oracle.jbo.html.jsp.datatags.ApplicationModuleTag.doEndTag()
    void _0002fiss_0005fListPerson_0002ejspiss_0005fListPerson_jsp_0._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void org.apache.jasper.runtime.HttpJspBase.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean)
    void org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, boolean)
    void org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.tomcat.core.ServletWrapper.doService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.Handler.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ServletWrapper.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.internalService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(org.apache.tomcat.service.TcpConnection, java.lang.Object[])
    void org.apache.tomcat.service.TcpWorkerThread.runIt(java.lang.Object[])
    void org.apache.tomcat.util.ThreadPool$ControlRunnable.run()
    void java.lang.Thread.run()
    ## Detail 0 ##
    oracle.jbo.NoDefException: JBO-25002: Definition WoopsBC4J.WoopsBC4JModule of type ApplicationModule not found
    oracle.jbo.ApplicationModule oracle.jbo.html.jsp.JSPApplicationRegistry.getAppModuleInstance(java.lang.String, javax.servlet.jsp.PageContext)
    int oracle.jbo.html.jsp.datatags.ApplicationModuleTag.doEndTag()
    void _0002fiss_0005fListPerson_0002ejspiss_0005fListPerson_jsp_0._jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void org.apache.jasper.runtime.HttpJspBase.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean)
    void org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, boolean)
    void org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.tomcat.core.ServletWrapper.doService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.Handler.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ServletWrapper.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.internalService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(org.apache.tomcat.service.TcpConnection, java.lang.Object[])
    void org.apache.tomcat.service.TcpWorkerThread.runIt(java.lang.Object[])
    void org.apache.tomcat.util.ThreadPool$ControlRunnable.run()
    void java.lang.Thread.run()
    void org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
    void org.apache.tomcat.core.ServletWrapper.doService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.Handler.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ServletWrapper.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.internalService(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.core.ContextManager.service(org.apache.tomcat.core.Request, org.apache.tomcat.core.Response)
    void org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(org.apache.tomcat.service.TcpConnection, java.lang.Object[])
    void org.apache.tomcat.service.TcpWorkerThread.runIt(java.lang.Object[])
    void org.apache.tomcat.util.ThreadPool$ControlRunnable.run()
    void java.lang.Thread.run()

  • Accessing application module instances directly from the AMPool

    Hi!
    I´m want to create an Application Module Pool Monitor, actually I need to know how many fetched rows an Application Module instance has.
    I made a jsp, that do the following:
    ApplicationPool pool = (ApplicationPool)poolMgr.getResourcePool(poolname);
    int instanceCount = pool.getInstanceCount();
    for (int i = 0; i < instanceCount; i++){       
    ApplicationModule am = pool.getInstance(i);
    and then works with the am instances, calculating the rows that each VO has fetched.
    Now, It is not yet clear to me if, when I use "pool.getInstance(i)",
    I'm locking the instance that is being use by another session (an user session), or trying to get a lock,
    and possibly creating a deadlock. Or the AMPool administrates the lock and I don´t need to worry about it.
    Thank in advance, and sorry for my bad english!
    (i forgot to mention, I´m using adf - bc 10.1.2 )
    Message was edited by:
    user506477

    Sure, we are having RAM problems, sometimes, and for reasons that are still unclear, a process begins to consume memory.
    What we need rigth now, is a tool that tell us how many rows in memory has each user, and which ViewObject is creating them. The idea is to make some kind of monitor that shows that, the AM that each user has, an the state of their VOs.
    I used the JSP in this page as a reference:
    http://radio.weblogs.com/0118231/stories/2004/05/10/gettingApplicationModulePoolStatisticsToAidWithSizeTuning.html
    I´m not trying to create a new AM management mechanism, simply a tool that shows the status of the application (and perhaps allows me, for instance, to clear the cache of a VO that has to many rows fetched).
    In my JSP I obtain an instance of the AMs using "pool.getInstance(i)", and access then the associated VOs. But I don´t know if accesing the AMs this way could create problems with users that have an AM assigned to them, for example, a deadlock.
    Thanks!

  • Jdev 11.1.2.0.0 AdfJarLibrary AModule as Application Module Instance

    Hi all,
    My Adf library "MainAdfLib" are added with other sub-libraries as "Application Module Instance" modality.
    In "MainAdfLib" project i see all datacontrol details , here are all ok,
    but when i added the project "MainAdfLib" in one of my view-controller projects i don't see the datacontrols details (view object ecc.).
    Why...
    Regards
    gio

    ok john, so it work, but i have many sub-adfJArlibrary linked to MainAdfJarLibrary
    i have performed the same operation, but i don't see the datacontrols details ,
    i'll try to remove all the sub-adfJarLibrary and recompile and then connect all to the main.
    p.s. i have migrated from 11.1.1.5.
    thanks
    gio

  • One Application Module Instance Per User

    Hi, I am using JDeveloper 11.1.1.2 with ADF BC.
    I have an application with a single root application module. I have my JDBC data source set up to enable identity based connection pooling so that a database connection is created with the current user's credentials.
    Basically, I would like an application module pool such that a single application module instance exists for each user in the system. If a user logs into the system, a new app module should be instantiated for him (tied to his db credentials). If the user makes a new request and his app module has been removed from the pool for inactivity, a new app module should be instantiated even if others already exist in the pool for other users. If the user is already logged into the system and tries to login again in another browser window, I would like to check if an app module already exists in the pool for the user and re-use that one instead of instantiating a new one.
    I don't want to set jbo.doconnectionpooling=true because I want the app module instance to keep its cached data.
    Is this possible? If so, how could I configure the application module to make this work?

    Hi Frank. Thank you for the reply.
    I tried using two browsers. The behavior of each page is very much different when being opened individually. Its like the two pages is sharing the same iterator / data and / or entity object. These two pages were opened to see if one is dependent upon the other. But when I test the same scenario on a different computer, everything works out fine.
    Is there a way for me to verify if the sessions are different? and if they are different, is there a way to verify if the application module created a new instance for the other session?

  • Failed to checkout an application module instance

    Hi,
    I am using JDev 3.2 to develop my JSPs and BC4J. When I tried to run my JSP from my web server I got the error "JBO-30003:The application pool, TsrsJSP20_TsrsBCPack_TsrsBCPackModule, failed to checkout an application module instance. JBO-26061:Error while opening JDBC connection." How can I fix this error? Please help!!!!
    Lisa
    null

    This is a deployment problem. You either do not have all the JARS/JSPs/properties files deployed onto the webserver or they are not found in the classpath (wrapper classpath for apache).
    Since this is very webserver specific it is difficult to be more specific.

  • Find application module instance using groovy script

    Hi,
    Can any one help me to find the instance of a specific application module using a groovy script.
    I know the below is going to give me the current application module instance
    adf.object.applicationModule.findViewObject("ViewObject").first().getAttribute("name")But I should be able to find a specific application module and then proceed with finding the viewObject in it.....
    Edited by: vijai on Mar 6, 2012 7:21 AM

    Hi john,
    This is the summary of my issue.....
    I have few Appmodules among which one is used for administration purpose. I have a particular ViewObject say V1 that is used in all the AppModules as instances from which values are used as bind variable values in viewObject query (So when these instances gets executed first time the bind variable are set). In one operation the user changes the value in the administration app module ViewObject V1 and commits it. So we face two issues here.....
    1. I need to refresh all the ViewObjects in the other appmodules
    2. and I need to refresh the Bind Variables values in the ViewObject query (or) Give the refreshed values in the page bindings Execute With Params.
    In order to do this stuffs I thought I would make a groovy script and use the viewObject in the Administration ViewObject for values in Bind variables,ExecuteWithParams value etc......
    Pls give me a better approach or a better groovy script to do this...........

  • Databse connection when an application module is checked out

    Hi,
    I have an application module pool and database connection pool,
    Documentations suggest that, when an application module is released in stateless mode irrespective of the jbo.doconnectionpooling property the connection aquired by the app module will be released.But this is not happening.What could be the reason.Is this a BUG in BC4J!!!!!!!!.
    Also whenever i check out an app module, 2 database connections are getting opened instead of one. What is the strange problem!!!!!!!.
    Can anybody guide me.
    Thanks,
    Dutt..

    BD - I have a hunch that it has more to do with cvs in a multi-user environment ... but cannot test that out right now since the multi-user component of this problem happens to be out of the office until Monday ;-) I'm thinking it's possible that, since we have slightly different paths to the residents in our workspace, we're fighting over configurations upon committing and updating.
    I'll be sure to post steps in recreating this problem very early next week.
    -Brian

  • How to separate application module instance per user session?

    Hi.
    How do you separate application module instances per session or per user? I am creating a web application and has created a simple filter that implements Filter.
    Thanks in advance.

    Hi Frank. Thank you for the reply.
    I tried using two browsers. The behavior of each page is very much different when being opened individually. Its like the two pages is sharing the same iterator / data and / or entity object. These two pages were opened to see if one is dependent upon the other. But when I test the same scenario on a different computer, everything works out fine.
    Is there a way for me to verify if the sessions are different? and if they are different, is there a way to verify if the application module created a new instance for the other session?

  • Application Module instance not found in task flow

    Hi,
    i am working on Oracle Jdeveloper 11g Release 1
    I have created a bounded task flow for with following properties:
    <transaction id="__14">
          <new-transaction/>
        </transaction>
        <data-control-scope id="__15">
          <shared/>
        </data-control-scope>
        <task-flow-reentry id="__13">
          <reentry-not-allowed/>
        </task-flow-reentry>I have declared a page flow scope bean in the task flow as:
    <managed-bean id="__5">
          <managed-bean-name id="__6">trainBean</managed-bean-name>
          <managed-bean-class id="__8">oracle.sysman.core.gccompliance.view.library.rule.patchRule.PatchRuleTrainBean</managed-bean-class>
          <managed-bean-scope id="__7">pageFlow</managed-bean-scope>
        </managed-bean>but when i am trying to access the AM Impl instance from bean methos as below:
    public static final String DATA_CONTROLLER = "ComplianceLibraryAMDataControl";
        public ComplianceLibraryAMImpl getDataControl() {
            DCBindingContainer bc =
                (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
            ApplicationModule am = bc.findDataControl(DATA_CONTROLLER).getApplicationModule();
            return (ComplianceLibraryAMImpl)am;
        }I am getting null pointer exception in ApplicationModule am = bc.findDataControl(DATA_CONTROLLER).getApplicationModule();
    I am using the same way to get bean in other task flows as well , so i think the code to get bean is working correctly.
    What am i missing in this?

    thanks Puthanampatti ,
    This is working and i am able to get AM instance from this , But i am not sure what is the difference between:
    public ComplianceLibraryAMImpl getComplianceLibraryAM() {
    ComplianceLibraryAMImpl am = (ComplianceLibraryAMImpl)ADFUtils.getApplicationModuleForDataControl("ComplianceLibraryAMDataControl");
    return am;
    Referred methods:
         * Get application module for an application module data control by name.
         * @param name application module data control name
         * @return ApplicationModule
        public static ApplicationModule getApplicationModuleForDataControl(String name)
            return (ApplicationModule) JSFUtils.resolveExpression("#{data." +  name +  ".dataProvider}");
         * Method for taking a reference to a JSF binding expression and returning
         * the matching object (or creating it).
         * @param expression EL expression
         * @return Managed object
        public static Object resolveExpression(String expression) {
            FacesContext facesContext = getFacesContext();
            Application app = facesContext.getApplication();
            ExpressionFactory elFactory = app.getExpressionFactory();
            ELContext elContext = facesContext.getELContext();
            ValueExpression valueExp =
                elFactory.createValueExpression(elContext, expression,
                                                Object.class);
            return valueExp.getValue(elContext);
        }And my previous approach:
        public ComplianceLibraryAMImpl getDataControl() {
                     DCBindingContainer bc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
                     ApplicationModule am = bc.findDataControl(DATA_CONTROLLER).getApplicationModule();
                     return (ComplianceLibraryAMImpl)am;
        }Why am i not able to find my data control AM from Binding Container????

  • Release Application Module

    Guys,
    I couldn't understand the exact difference between
    Configuration.releaseRootApplicationModule(am, true);
    and
    Configuration.releaseRootApplicationModule(am, false);
    1. True -> AM instance will be deleted???
    2. False -> AM intance will not be deleted and when i do am = Configuration.createRootApplicationModule(amDef, config) , i will get the same am instance?
    Can you guys help?

    Straight from the docs:
    releaseRootApplicationModulepublic static void releaseRootApplicationModule(ApplicationModule appModule,
    boolean remove)
    Release the specified application module.
    Parameters:
    appModule - an application module which was created with createRootApplicationModule(String, String, EnvInfoProvider)
    remove - indicates whether the application module should be removed true: remove the application module false: retain the application module for future use
    >
    BUT read this http://radio-weblogs.com/0118231/2009/08/20.html#a959 and ask yourself why using createRootApplicationModule in the first place.
    Timo

  • How to get application module instance from java bundle?

    Hi!
    I would like to build an application that would get all translations from a database table.
    So I created application module for translations that contains a view object which is selecting translations for specific language from a database table. I exposed a method in application module as client interface which returns HashMap<String, String> for all translations for specific language. When I test my view and client interface method call they work fine.
    Then I created java bundle classes to get translations for specific language. Then I tried to override public Object[][] getContents() method.
    I tried to get my translations application module like this:
    SharedTranslationsAppModuleImpl am = new SharedTranslationsAppModuleImpl();
    Map<String, String> translationsMap = am.getTranslations(this.getLocaleCode); // Client interface method call
    In getTranslations(String LocaleCode) I try to get that view (which would select translations from database) but it returns NULL and I get NPE error message.
    So what is the right way to get application module from java bundle file? Now everytime application wants to get translations, application stops and displays NPE message.
    Regards, Marko
    I use JDeveloper 11.1.2.1.0

    Marko,
    you can't just instantiate an application module. An application module has to be set up, db connections and memory pools have to be initialized and ....
    Can you describe why and when you try to read the resource bundle from the db and where the resource bundle is used?
    This blog may be what you are looking for http://technology.amis.nl/2012/08/10/implement-resource-bundles-for-adf-applications-in-a-database-table/
    Timo

  • How to get the application module instance in backing bean.

    This is Ramesh, I am new to JDeveloper world.
    In my current application I have change password screen which allows user to change there password.
    Here this is a pop-up page. Here I don't have the view object and pagadef for this changepassword.jspx file.
    My aim is to call the Application Module method which takes the user name, old password and new password.
    In backing bean I am trying to call this method by using
    MyProjAM obj = _binding.getDataControl().getApplicationModule();  //throw null pointer exception.
    _binding is the object of DCBindingContainer. 
    ( I have created the parameter called "binding" as my managed bean property and values as #{binding})
    But the above line is throwing the NullPointerException.
    Could you please help me to come out of this problem.
    Thanks and Regards,
    Ramesh Biradar.

    If your page has no page definition, then #{bindings} will be null during the request for that page.
    If you need your page to invoke a data control method when you press a button, the simplest (and declarative) way is publish your AM method on the AM's client interface, then drop the method as a button from the data control palette onto your page. You don't even need a backing bean to accomplish this.
    That said, you can refer to a data control in a backing bean using the expression #{data.[i]YourAppModuleNameDataControl.dataProvider}
    So, assuming you have a helper method like this:
      public static Object EL(String expression) {
        FacesContext ctx = getFacesContext();
        Application app = ctx.getApplication();
        ValueBinding bind = app.createValueBinding(expression);
        return bind.getValue(ctx);
      }and assuming that your application module is named SRService
    and assuming that you have correctly nominated any Application Module custom methods as being available to clients by selecting them on the "Client Interface" panel of the application module editor, then in a backing bean you can acquire an instance.
    Then, the ADF design time will have automatically generated you a custom AM client interface named SRService and you can reference that service interface in your backing bean by using code like this:
            SRService svc = (SRService)EL("#{data.SRService.dataProvider}");
            svc.yourCustomMethod(your,args);

  • When the application module starts the trans?

    Hi,
    For ADF application module, when does it start a trans?Is it the case the AM method(even read only method) exposed to view layer, then the trans starts automatically when the page is loaded? Or when getDBTransaction() is called? or even latter when actual update or some specific method is called from the trans? Just wondering whether a commit/rollback is expected when even an exposed method is called by view layer even it is readonly.
    Hui

    Thx, Tim.
    We are use optimistic in the AMs. We have some AMs just do data query. But there is VPD on one of the table, query on the table will trigger the VPD table updates from database, and if db side detects the parent query sql has transaction associated, the vpd related update will not be committed and expects the parent trans will be commit/rollback But if the AM is cached, and no explicit commit/rolback was issued. Will the underlying VPD updates stay there not commit/rollback
    Hui

  • Application Module instance...

    Hi ,
    I face a very strange/interesting issue as follows,
    I have a class which extends the ApplicationModuleImp to overrides the prepareSession and beforeDisconnect methods say class X . And I have made all the app modules to extend this class. The thing is I find too many times the prepareSession methos is called.
    When I used the SOP to print the class names, I found that when other appmodules get instantiated, this Class X is also made to instantiate and call prepareSession method even though it is not an app module by itself.
    Can anyone explain the reason for this behavior or is it a issue........... ?

    Vijai,
    You must be doing something different then - here is my test case:
    public class X
      extends ApplicationModuleImpl
      public X()
        super();
      @Override
      protected void prepareSession(Session session)
        System.out.println("*******name********* (in superclass)" + this.getClass().getName());
        System.out.println("****obj*****" + this);
        super.prepareSession(session);
    public class AppModuleImpl
      extends X
       * This is the default constructor (do not remove).
      public AppModuleImpl()
       * Container's getter for CountriesView1.
       * @return CountriesView1
      public ViewObjectImpl getCountriesView1()
        return (ViewObjectImpl) findViewObject("CountriesView1");
      @Override
      protected void prepareSession(Session session)
        System.out.println("*******name*********" + this.getClass().getName());
        System.out.println("****obj*****" + this);
        super.prepareSession(session);
    }And the result:
    *******name*********model.AppModuleImpl
    ****obj*****model.AppModuleImpl@3253be7c
    *******name********* (in superclass)model.AppModuleImpl
    ****obj*****model.AppModuleImpl@3253be7c
    John

Maybe you are looking for