Using remotable Application Modules
I deployed an Application Module to JServer.
How can i use this remotable AM like an ordinary AM or can anyone tell me where i can
find documentations about oracle.jbo.common.remote.ejb.RemoteApplicationModule ?
thanx Tom
Tom,
The class you mention is one that we use internally, so we do not provide source or documentation for it.
See the online help topic:
User Guides
Developing Business Components
Deploying Business Components
Programming the Client Interface
for assistance with your other question.
Similar Messages
-
Use of application module pool and ADF Busines Components
Hi to all;
Lets suppose an web application with about 10 CRUD forms and 15 to 20 reports or forms just to query and show data;
That's clear to me, all the advantages of using App modules pool.
But for that reports ..... Just an Read only and Forward Only data ?
I was wondering, if it will be more effective and lightweight if we just take an JNDI JDBC connection query data and show it.
This imaginary application will make use of application module pool to provide that 10 CRUD web forms and in other hand, will have for reports,JNDI data sources;
What are your opinion about having this two architectural approach working together in one application ?
Very thanks;
Marcos Ortega
Brazil;Hi Deepak;
BC4J in my opinion is great and i am proud to share this opinion with all of you;
As a meter of fact, i post this thread to help me better understand BC4J architecture.
I think that my doubt main point is ...
Are application modules pool's life cycle an extra work , when the job is just to read and show data ?
Perhaps, an document about statefull and/or stateless application service release, help me;
IMHO;
cached data most of the time must to be discarted for reports, always we want to query database directly, View's object ClearCache() method would be called to reports.
I think that it's different, when we are talking about sequent requests when we need to span the session, views and entities states.
Forwards Thanks; -
Hello,
i try to make an existing application module remotable:
Application Module Editor -> Remote -> EJB Session Bean -> Local Configurations -> Edit -> Application Module -> Middle Tier Server Type
In the Middle Tier Server Type select-box i can't select something else than Local. In Help Content you have also remote types like Oracle9i EJB or WebLogic EJB. How can i choose Oracle9i EJB as Middle Tier Server Type?
JDeveloper Version: 10.1.2.0.0 (Build 1811)
Application: ADF Toy Store, (http://www.oracle.com/technology/products/jdev/collateral/papers/10g/adftoystore.html)
Daniel.Hi,
If you have developed custom methods in your Business Components (on your application module, view object, or view row), and you have specified in the respective wizard that those methods should be exported to your client, then depending on your remoteable deployment platform, JDeveloper will generate the client stubs for those methods when you generate your deployment profiles for the app module.
On the Remoteable page of the App Module wizard, you can specify to have that client stub code generated to a new project, or to an existing client project. By default, they will be generated to a new project named something like deploymentplatformClient.jpr.
Basically, the only thing you need to be aware of for those files is that they get included with your client code when you deploy your client project. They must be available to your client code at runtime in the deployment environment.
So, the easiest thing to do is to add these generated files to your client project. When you create a deployment profile for your client project, just make sure to include them. -
Cluster Remote Application Module
Is it possible to deploy remote application module in clustering environment (for JClient client application)?
I try to deploy in two standalone OC4J, but it always failed while migrating ejb session bean to another instance. I put replication="EndOfCall" in orion-ejb-jar.xml, but "VMTermination" get the same error while OC4J is terminated. The error (in client) as follows:
java.lang.RuntimeException: IOException encountered in end of call migration of StatefulSessionBean
No errors found in server side, although I run OC4J with -Dcluster.debug=true and -verbosity 10.
Please anybody help me....I've promised to my user that our application has no single point of failure. With this unresolved issue in ADF-JClient, I think I need to rewrite my application....and starting from zero :(
thanks://yudiRepost 1
-
Help!! - Unable to use the Application Module Deployed as Corba Object in Oracle 8i
I have been able to successfully deploy an Application Module in Oracle 8i but i am un able to get a reference to the Application Module from the database the code used by me is -
package client;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Hashtable;
import oracle.jbo.*;
import org.omg.CORBA.*;
public class Corba8IClient{
Hashtable env = new Hashtable();
ApplicationModule appMod = null;
String theAMDefName = "test/jd/freshJBO.FreshJBOModule";
public Corba8IClient() {
System.out.println("Started...");
// Load the Application Module
try{
// Component deployed to Oracle8i CORBA Server.
// Set up the 8i environment
System.out.println("Setting up initial Context...");
env.put(Context.INITIAL_CONTEXT_FACTORY, JboContext.JBO_CONTEXT_FACTORY);
env.put(JboContext.DEPLOY_PLATFORM, JboContext.PLATFORM_ORACLE8I);
env.put(Context.SECURITY_PRINCIPAL, "jd");
env.put(Context.SECURITY_CREDENTIALS, "jd");
env.put(JboContext.HOST_NAME, "Dev51");
env.put(JboContext.CONNECTION_PORT, "2481");
env.put(JboContext.ORACLE_SID, "ORA8I");
// env.put(JboContext.APPLICATION_PATH, "test/jd/");
System.out.println("Getting initial Context.");
Context ic = new InitialContext(env);
System.out.println("Doing Lookup...");
ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup(theAMDefName);
System.out.println("Calling create...");
// home
System.out.println("Home Class Name : "+home.getClass().getName());
oracle.jbo.client.remote.corba.aurora.AuroraApplicationModuleHome am = (oracle.jbo.client.remote.corba.aurora.AuroraApplicationModuleHome)home;
System.out.println("DefName "+am.getDefName());
appMod = home.create();
System.out.println("Setting up connetion from AppMod to database...");
appMod.getTransaction().connect("jdbc:oracle:thin:jd/jd@dev51:1521:ORA8I");
}catch(Exception e) {
e.printStackTrace();
System.out.println("AppMod full Name "+ appMod.getFullName());
public ApplicationModule getAppMod(){
return appMod;
public static void main(String args[]){
Corba8IClient c8c = new Corba8IClient();
after running the output is -
Started...
Setting up initial Context...
Getting initial Context.
Doing Lookup...
Diagnostics: Silencing all diagnostic output (use -Djbo.debugoutput=console to see it)
Calling create...
Home Class Name : oracle.jbo.client.remote.corba.aurora.AuroraApplicationModuleHome
DefName null
oracle.jbo.ApplicationModuleCreateException: JBO-25222: Unable to create application module.
at oracle.jbo.client.remote.corba.CORBAApplicationModuleHomeImpl.create(CORBAApplicationModuleHomeImpl.java:63)
at client.Corba8IClient.<init>(Corba8IClient.java:39)
at client.Corba8IClient.main(Corba8IClient.java:53)
java.lang.NullPointerException
at client.Corba8IClient.<init>(Corba8IClient.java:45)
at client.Corba8IClient.main(Corba8IClient.java:53)
Corba Object is deployed as -
ObjectName = /test/jd/freshJBOModule
Server Class = freshJBO.server.o8.FreshJBOModuleServerO8
Helper Class = oracle.jbo.common.remote.corba.RemoteApplicationModuleHomeHelper
The Application Module conatians an entity object and a view object for Dept Table in schema jd(Username -jd, Password -jd).Moneesh,
I believe there is a problem with the way you set the variable theAMDefName. It should be:
String theAMDefName = freshJBO.FreshJBOModule";
Then you need to reinstate the line you commented out, to set the application path (but remove the trailing / from the path, as shown):
env.put(JboContext.APPLICATION_PATH, "test/jd");
If that doesn't work, and for future reference, I suggest testing your deployed application module from the Business Component Browser (aka the tester) before trying your hand-coded client. Start the tester, select Oracle8i as the middle tier server type, make sure the other information in the connect window is correct, then click Connect.
Good luck
Blaise -
How to programmatically call remote application module - JDev 10.1.3.3.0
Hi,
I've an ADF web application (10.1.3.3.0) deployed onto an OAS server. I'd like to be able to access view objects via the application module of this web app from a simple java class on another server.
I've created a simple class to query a local application module (included in the same project as the simple class). This works fine but I'm not sure how to change this to access an application module when it's remote on another server. Can anyone assist?
Here is my sample code for querying a local application module/view object:
public static void main(String[] args) {
ApplicationModule applicationModule =
Configuration.createRootApplicationModule("com.almac.model.common",
"AppModuleLocal");
try {
ViewObject eventList = applicationModule.findViewObject("SipEventsView1");
eventList.executeQuery();
while (eventList.hasNext()) {
Row event = eventList.next();
System.out.println("Event Name: " + event.getAttribute("EveName"));
} catch (JboException e) {
System.out.println(e.getMessage());
} finally {
Configuration.releaseRootApplicationModule(applicationModule, true);
}Thanks,
Paul.You can expose an AM as an EJB or Web service to expose them for remote access:
http://download.oracle.com/docs/cd/B32110_01/web.1013/b25947/web_services.htm#CJAEEICB -
HOW TO: Connect web service (remote application module) to existing model
Hello.
I have J2EE application which displays some data in an applet, which reads them by a web service. I'd like to use persistence and connect with a web service called by applet to my current model set within a session. I tried to pass a session id to web service (to a function of an application module implementation). I wanted to create a new SessionCookie instance with such a session id and application id which are used for web application session (by ApplicationPoolImpl.createSessionCookie() or with custom session cookie factory). But I don't know how to pass a session and application ids to a sessioncookie creation process (ApplicationPool environment). I tried to use custom EnvInfoProvider, which set my properties, but it passes the params after a SessionCookie instance is created.
Samples ... AppModuleServer - file generated to provide ws functionality. I changed code to use EnvInfoProvider:
public class AppModuleServer extends Object{
public AppModuleServer(){}
public SomeObject[] myCustomFunction(String sessionId){
AppModuleImpl _am = null;
String appId="someValue";
CustomEnvInfoProvider envProvider=new CustomEnvInfoProvider(appId, sessionId);
try{
_am=(AppModuleImpl)Configuration.createRootApplicationModule("data.AppModule", "AppModuleLocal", envProvider);
return _am.myCustomFunction(sSessionId);
finally{
if (_am != null)Configuration.releaseRootApplicationModule(_am, false);
}CustomEnvInfoProvider:
public class CustomEnvInfoProvider implements EnvInfoProvider{
private String applicationId;
private String sessionId;
public CustomEnvInfoProvider(String applicationId, String sessionId){
this.applicationId=applicationId;
this.sessionId=aessionId;
public Object getInfo(String info, Object environment){
if(info==null)return null;
return ((Hashtable)environment).get(info);
public void modifyInitialContext(Object environment){
if(applicationId!=null)((Hashtable)environment).put("CookieApplicationId", applicationId);
if(sessionId!=null)((Hashtable)environment).put("SessionId", sessionId);
public int getNumOfRetries(){
return 2;
}Does anybody knows how to pass information from custom EnvInfoProvider just before a SessionCookie is created (e.g. how to run modifyInitialContext() function). Or another way how to pass these information from a web service base function into ApplicationPoolImpl instance. E.g., there is parameter "properties" whithin a createSessionCookie method of ApplicationPoolImpl, which is null during calling. Is it possible to pass there some additional information?
Thanks for any suggestions.Use the Web Service Proxy wizard in JDeveloper to create a class that calls your Web service, and then call this class from code in your AM.
http://docs.oracle.com/cd/E16340_01/web.1111/b31974/web_services.htm#CJAHGIEF -
Using existing Application Modules Entities in web service provider
Hi, I want to implement a web service provider having a WSDL file and using JAXWS.
Is it possible to use in input methods of the service, an Application Module or Entities or View Objects that exist in a separate project.
I want to perform database operations and facilitate transactions using existing ORM mapping of ADF.
Thanks,
Ilias StavrakisYes, it is possible, but you have to checkout and release the ApplicationModules manually. Use the method <tt>Configuration.createRootApplicationModule(...)</tt> of the class <tt>oracle.jbo.client.Configuration</tt> to checkout modules, and use the method <tt>Configuration.releaseRootApplicationModule(...)</tt> to release it back to the AM pool at the end of processing.
See this blog entry http://jobinesh.blogspot.com/2010/04/invoking-applicationmodule-from-servlet.html despite the fact that it is not directly related to Web services. -
How to use an application module custom method in JSP ?
Hi,
"TestAM" is an Application Module in which i added a method "TestClient()".
in a JSP page i have :
<jbo:ApplicationModule id="am" configname="TestAMLocal" releasemode="Stateful" />
<jbo:DataSource id="ds" appid="am" viewobject="TestView" rangesize="3"/>
<%
My question is how to call the method "TestClient()" in my JSP after these 2 Datatags ?
(i have exported this method so Jdev have generated the interface "TestAM.java")
%>
Thanks for helpHere is how I did it in my app:
<jbo:ApplicationModule id="am" configname="TestAMLocal" releasemode="Stateful" />
<jbo:DataSource id="ds" appid="am" viewobject="TestView" rangesize="3"/>
<%
TestAM am2 = (TestAM) TestAM.useApplicationModule();
am2.TestClient();
%>
Hope this helps. -
Using an Application module's customised Function in JSF
Dear All
I wrote a function in the application module with the return type of MAP.
this function has input parameters. when i try to access the return in EL for value element of my page components, i am always face the NULL.
but when i deal with the return value in tho code, there is no problem.
On the other hand, if the function does not have any input parameter, the EL works correctly.
Can anyone help me with this problem.
and one more thing. the function is executes every time the page is loaded but i just want it to be executed after i click a button. this means that the return parameter has already the value i need before i execute the function. it seems to be executed automatically at the start of the page loading. what should i do to prevent the execution?
Thanks for helping meExpose your method. Drag your method from your DataControl onto your page and choose for a 'Form'.
That way, you will get a form with some inputfields (for the parameter(s)) and a submit button. -
Determine all entity associations used in application module?
Hi,
ADF 11.1.1.2.0, ADFBC.
I want to create a JUNIT testcase to loop through all entity associations and compare them with the relations in the Oracle database.
to get all view objects of the AM I use following method:
am.getViewObjectNames(true,true);
How to get all entity associations used in an AM?
regards
PeterHi,
did you try
View Object --> Entity --> EntityDefImpl --> getAssociationDefImpls() ?
Frank -
DataBindings and Application Module Bean
Hallo everybody,
I am working on JDev 10.1.3.4 and Oracle Application Server 10.1.3.4.
I developed an 'application module' and I maked it as remotable using 'EJB Session Bean' option;
then I deployed it on the AS.
I know how to call remote application module by code in a JClient application ([thanks to a metalink note|https://metalink2.oracle.com/metalink/plsql/f?p=130:14:6076423513290714654::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,309753.1,1,1,1,helvetica|thanks to a metailk note]):
bq. JUApplication app = new JUApplication(TestClient.getAppModule()); \\ app.setClientApp(DCDataControl.JCLIENT); \\ + app.getApplicationModule(+)
I would like to use remote application module function by DataBindings and %PageDef.
is it possible? how can I do this?
best regards
Edited by: user567554 on Dec 17, 2008 5:44 PMHi Frank,
thank you for reply.
Could you make an example how to configure my datacontrol for a remote Application Module Connection?
I'm able to connect to a remote AM deployed to Local Embedded OC4J, but I'm not able to connect to to a remote AM deployed in a remote AS
I think need change DataControl Configuration Attribute with the appropiate AM Configuration. Probably my AM Configuration is wrong:
<AppModuleConfig name="AppModuleEmbeddedASTest2">
<DeployPlatform>EjbIas</DeployPlatform>
<java.naming.security.principal>oc4jadmin</java.naming.security.principal>
<java.naming.security.credentials>*ASpwd*</java.naming.security.credentials>
<jbo.internal.embedded>true</jbo.internal.embedded>
<JDBCDataSource>jdbc/+myConnDS+</JDBCDataSource>
<AppModuleJndiName>AppModuleBean</AppModuleJndiName>
<HostName>*AS-IPAddr*</HostName>
<ApplicationPath>+ejbAM (My Application Name)+ </ApplicationPath>
<java.naming.security.authentication>simple</java.naming.security.authentication>
<ApplicationName>model.AppModule</ApplicationName>
<ConnectionPort>*+23791 (found in $ORACLE_HOME/j2ee/myTests//config/rmi.xml)+* </ConnectionPort>
<jbo.server.internal_connection>jdbc/myConnCoreDS</jbo.server.internal_connection>
</AppModuleConfig> -
To call webmethods using RFC(Remote Function Module)
Hi Sap Group.
i have got a situation on how to call the webmethods using Remote Function Module ,i know that there should be rfc destination created in sm59 already,so can i use the same existing rfc destination which was used to call webmethods with another scenario in my interface.
can anybody help me in this.
regards.
VarmaHi Naina,
Normally RFC are synchronous, they do have return parameter as export parameter.
If return parameter is missing then , you can create Wrapper RFC.
Wrapper RFC:
It is nothing but you just create BAPI in SE37 transaction with Return parameter as export parameter and make it remote enabled by clicking on Radio button.
Under source code, CALL BAPI which XI has to call.
Thats it!
I hope this helps.
Let me know if any help required. -
How do multiple developers share the same application module
Is there a suggested method for multiple developers to share the same application module? We have 2 developers that will have EOs in the same directory and would like to know how they can share an application module but do development on different pieces of a project.
Thanks,
PaulaTry using CVS or any other source control system. Still there are some points to think about before doing big projects, because there are many files which are updated by JDEV without knowledge by the developer. This causes many conflicts using a version control system like CVS.
If you developers both are working on the server part of the application, I suggest using multiple application modules. See this blogs:
http://radio.weblogs.com/0118231/stories/2005/05/27/howGranularShouldMyApplicationModulesBe.html
http://radio.weblogs.com/0118231/stories/2005/07/19/nestedApplicationModules.html
On the client side it depends on which technology you are using (struts, swing, jsf, ...). -
Single session for all Application Modules
Hello,
I've got an application that has several Application Modules. All these modules need some data that are set from time to time. I've written some code that calls getSession().getUserData().put("myData",myData). After this method was called in another Application Module i want to retrieve myData with getSession().getUserData().get("myData"). But the result depends if I use 2-tier or 3-tier. In 2-tie I get myData while in 3-tier I get null. My question is:
Is there a Session object or any other data instance that could be accessed from all Application Modules for on application instance.
E.g. I've got two user (A,B) who start my application. Through using my app several instance of Application Modules are created. All Application Modules that are created for the instance of User A should be able to share his user name and some other dynamic data while the Application Modules created for B should have no access to that data.
Doe anybody know if static data of an Application Module are a possible solution?
regards
JoergHi Joerg,
I am not 100% sure what you are trying to achieve, and with which version of JDeveloper/ ADF, technologies (JSP, Swing), etc, but I can tell you that I have been experimenting with single session accounts myself within a rich-client Swing environment, as I have experienced Oracle DBA guys who want to control user authentication via Oracle accounts (I have achieved this via the JCLoginDialog mechanism, and a bit of a hack)... Frank Nemphius (sp?) posted something about a white paper coming out on a related subject but I don't know where he is with that.
Anyway, I managed to do it in a prototype by nesting several application modules within a Root Application Module that was essentially simply a Container for the other application modules. Using this mechanism I was able to bind my root application module to any panel I wanted and it would inherit the roots Session.
ie. I used many application modules and it only used one Oracle Session.
However, my reservations -
1) This solution was not tested robustly!
2) I doubt this would be ideal for a distributed app with thousands of users - My solution is for a very complex app, with a limited number of users.
Finally, I cannot confirm this is a great solution - I can only tell you it worked in my prototype, and I am currently awaiting the ADF source - when my company and Oracle can decide what level of support we currently have and need!?!? - what exactly does being an "Oracle partner" mean??? Its all very boring and un-interesting to a Java person like me... ;-)
Once I have the source I will look at how it actually works and perhaps be able to answer questions like this more definitively. Hmm - I wonder if I could get the Oracle JDBC driver source too?? .... Is it written in C or C++?? I know them too... ;-)
Cheers........Dean
Maybe you are looking for
-
when I take a picture with my iphone, the date is not downloaded to my picute. Is there a way to get the date put on my pictures.
-
How to print the date the image was taken as a watermark on the image
I want to print the date the image was taken (available as EXIF-data) as an automatic watermark (or otherwise as a caption ON the photo, and not as a header of a footer above or under the photo). I can't find how to do it. Any help? Thanks!
-
Where can I find iMovie 4 keyboard shortcuts?
Just got done with an iMovie project that required turning the Ken Burns effect off for about 20 pictures. Is there a keyboard short cut that can uncheck that effect? Or is there a way to import the photos without having the KB effect on to start? An
-
SetPixel in flash using xml....?
Hi , I have tried this in flash i got the result but now i am trying to change the color of the bitmap using setpixel values using xml. First i am creating a new bitmap and then i have a button when i click on the button the pixel values or the color
-
I Need to File a Complaint??
Yesterday, I came home after work and realized my Verizon cable and internet had been turned off...I'm moving to a new residence at the end of the week and requested services to be changed then. I called customer service and was on the line for 3 an