Java API's supported in the Jdeveloper, IAS, and RDBMS product components

If there are any technical errors or "mistatement of the facts" in this posting, please let me know about them ..
This article is being delivered in Draft form and may contain
errors. Please use the MetaLink "Feedback" button to advise
Oracle of any issues related to this article.
PURPOSE
This article describes the "Enterprise Java Beans" (EJB), "Java Server Pages"
(JSP) and servlets Application Programming Interfaces (API) supported by the
Oracle products, Jdeveloper, Internet Application Server (IAS) and the Oracle
RDBMS release 2 and release 3, also known as Version 8.1.6 and 8.1.7,
respectively.
SCOPE & APPLICATION
All parties interested in the Java API's supported by these products.
Java API's supported in the Jdeveloper, IAS, and RDBMS product components
JDEVELOPER
JDEVELOPER is Oracle's Java development tool designed for coding / development,
testing / debugging, and deployment of Java Applications to the IAS and
RDBMS platforms.
With the java software api's being in a constant state of evolution, each new
release of Jdeveloper adds support for the "then current" version of the java
software api's, if it does not already have it implemented.
JDEVELOPER SERVLET API JSP API EJB API
VERSION VERSION VERSION VERSION
3.2.X.X 2.2 1.1 1.1
3.1.X.X 2.1 1.0 1.0
NOTE :
Sun Microsystems and their advisory teams (Oracle is on it) is working on
"draft" specifications for the next version of all of these API's
EJB -------> http://java.sun.com/products/ejb/index.html
JSP -------> http://java.sun.com/products/jsp/index.html
Servlets --> http://java.sun.com/products/servlet/?frontpage-javaplatform
It is anticipated that future releases of Jdeveloper will continue to be
upgraded to include support for the next version of each api.
To obtain the latest information on Oracle's Internet Development Suite (IDS)
of tools, please review the "Internet Developer Suite" information located
on Oracle's technet web site at :
http://technet.oracle.com/products/index.htm
IAS
IAS is Oracle's next evolution of the web server and application server
product technology superceeding the Web Application Server (WAS) and Oracle
Application Server (OAS) product lines.
IAS SERVLET API JSP API EJB API EJE VERSION
VERSION VERSION VERSION VERSION SUPPORTED
9I(1.0.2) 2.2 1.1 1.1 817
8i(1.0.1-NT) 2.0 1.0 1.0 816
8i(1.0.0-UNIX) 2.0 1.0 1.0 816
The IAS product contains two Java Virtual Machines (JVM) within it's
architecture.
They are called :
1) APACHE JSERV servlet engine
2) ORACLE ENTERPRISE JAVA ENGINE (EJE)
APACHE JSERV servlet engine
The APACHE JSERV servlet engine is an EXISTING product licensed from the
apache group which supports the servlet api 2.0.ONLY.
The APACHE JSERV product does not support ANY JSP's unless the customer
installs a third party jsp engine.
The IAS 8i/9i which has the APACHE JSERV product embedded in it, comes with
Oracle's JSP engine (OJSP) already integrated into it. OJSP supports JSP's up
to the specific JSP engine version documented in the Oracle Universal
Installer (OUI) for the 8.1.7 RDBMS or the IAS products. It is also documented
in the product's release notes.
Oracle ENTERPRISE JAVA ENGINE (EJE)
The EJE formerly known as :
1) Oracle 8i Java Virtual Machine (JVM)
2) JSERVER component,
3) Aurora JVM
was originally releas ed in the RDBMS 8.1.5 database with jdk 1.1.6 based java
support.
The currently supported versions of the Oracle 8i RDBMS, versions 2 and 3,
also known as Version 8.1.6 and 8.1.7, respectively, provides a jdk 1.2.1
based java virtual machine support.
"EJE" Version 816
This EJE, found in rdbms 8.1.6 and IAS 8i, contains support for the ejb
api 1.0, corba, and java stored procedures.
"EJE" Version 817
This EJE, found in rdbms 8.1.7 and IAS 9i, contains support for the ejb,
corba, and java stored procedures as well as the Oracle Servlet Engine (OSE)
which provides support for the servlets 2.2 api and JSP 1.1 api.
Note :
EJB support in the "EJE" Version 817 has been upgraded to comply with the EJB
1.1 api specification which includes "entity beans" support.
What is the bottom line ??
1) Servlets deployed to the APACHE JSERV must comply with servlet api 2.0.
2) Servlets 2.1 or higher are only supported in EJE's OSE component found in
the rdbms 817 or ias 9i products. Servlets api 2.0 can also run in the OSE.
References
1) "Oracle9i Application Server Technical White Paper" located at :
http://technet.oracle.com/products/ias/pdf/9ias_102.pdf
2) "Whats New? Oracle8i JVM Accelerator, Oracle Servlet Engine, OracleJSP ..."
located at :
http://technet.oracle.com/products/oracle8i/pdf/504.pdf
3) "Oracle8i Release 3 New Features Summary" located at :
http://technet.oracle.com/products/oracle8i/pdf/8iR3_nfs.pdf
null

which jvm is used by jserv ?? EJE or a separate jdk ?
The Jserv servlet engine is running in a separate jdk JVM external to the EJE jvm which is embedded within the "database" component of ias and the RDBMS.
See the reference below for more details ...
if jserv only support old apis, why it is in oracle's products ?
i would assume that the oracle servlet engine was under development when ias 8i was released and became available in time for the ias 9i and rdbms 817 products.
looking back in history leads me to believe ias 8i was a migration path to get to ias 9i or rdbms 817.
Based upon the long history of new releases of every oracle product being upgraded with new features, it's reasonable to assume that these products will continue to evolve.
when I deploy a jsp how to deploy in the right servlet container ("EJE") ?
as documented in the reference below, you can deploy JSP's to either the apache jserv jvm or the EJE since the ORACLE JSP engine functionality is in both jvm's.
there are many posts where you can see that people have deploy in jserv and they have problems because they don't use the right container (servlet 2.0 instead of
servlet 2.2) http://technet.oracle.com:89/ubb/Forum2/HTML/006349.html
when ias 8i came out this was clearly an issue since servlet support was at api 2.0, and the current servlet api was probably at 2.1.
oracle clearly made every effort to get ias 9i released quickly to supply a servlet 2.1 and 2.2 capable engine to resolve this issue.
since ias 9i and rdbms 8.1.7 are available this is no longer an issue.
The reference below explains the architecture and understanding it would eliminate a lot of "deploy to the wrong ias 9i component" issues.
so why jserv is bundled with oracle 8i/9ias since EJE support the right api version ?
if in ias 9i release , oracle had removed the jserv component without any advance warning, many customers would have been very upset since oracle makes every attempt to give advance notice before removal of functionality.
References
1) "Oracle9i Application Server Technical White Paper" located at :
http://technet.oracle.com/products/ias/pdf/9ias_102.pdf

Similar Messages

  • How to find solution for avoiding WARNING J2EE SECUR-00100 ********** user-manager (see application/server descriptors) will no longer be supported in the next release of this product

    HI All,
    We are using Oc4j version 10g 10.1.3 , and while starting conatiner  getting below warning , let me know if anyone have solution for this,.
    14/01/10 01:01:29 ********** user-manager (see application/server descriptors) will no longer be supported in the next release of this product!
    Please take the appropriate actions to migrate to an alternative strategy! **********
    2014-01-10 01:01:29.833 WARNING J2EE SECUR-00100 ********** user-manager (see application/server descriptors) will no longer be supported in the next release
    of this product!

    I just checked my BIOS and my current setting is set at IDE although it also mentions that the default should be AHCI. Currently I have a dual boot of Windows 7 (need it for Tax software) and Arch
    So I guess, when I get the new HDD, I will first set it to AHCI and then install the OSes on it. See if NCQ helps any, and if not I will turn it back and re-install (if I have to). I am planning to have Windows only in virtualbox in the new drive.
    Anyhoo, while I was in the BIOS I found two things which I had questions about :
    1) Under Onboard Devices --> Integrated NIC , my setting is currently set at "On w/PXE" and it says the default should be just "On". Would it be ok to change it back to On since its a single machine and its not booting an OS on any server. I just don't want to have to re-install anything now since I will be doing that in the new HDD.
    2) How would I know whether my BIOS would support a 64 bit OS in Virtualbox? I checked some setting under Virtualization, but they weren't very clear.
    I will edit this post and let you know exactly what settings were present under the Virtualization sub-section.

  • The Java APIs - are we speaking the same language?

    Hello again world.
    I was reading in someone's response a suggestion to "write a different actionPerformed() method for each button."
    So I thought, let me see if I can do that and came up with this:
    import  java.awt.*;
    import  java.awt.event.*;
    import  javax.swing.*;
    public  class  MyActionListeners
       private  JButton  myButtons[]  = new  JButton[3];
       public  MyActionListeners()
          myButtons[0] = new  JButton("Button 1");
          myButtons[1] = new  JButton("Button 2");
          myButtons[2] = new  JButton("Button 3");
          myButtons[0].addActionListener(new  ButtonListener());
          myButtons[1].addActionListener(new  ButtonListener());
          myButtons[2].addActionListener(new  ButtonListener());
          JPanel  panel = new  JPanel();
          panel.add(myButtons[0]);
          panel.add(myButtons[1]);
          panel.add(myButtons[2]);
          JFrame  frame = new  JFrame("Action Listeners");
          Container  contentPane = frame.getContentPane();
          contentPane.add(panel);
          frame.pack();
          frame.setLocationRelativeTo(null);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setVisible(true);
       public  static  void  main(String[]  params)
          new  MyActionListeners();
    class  ButtonListener  implements  ActionListener
       public  void  actionPerformed(ActionEvent  ae)
          JOptionPane.showMessageDialog(null , "You pressed " + ae.getActionCommand());
    }which works fine but, of course, there's only one actionPerformed() method.
    My first program, which I got to work as suggested, had three but when I noticed they all did the same thing (just announce which button was pressed), I decided to further test my skill to see if I could reduce it to the program above.
    My question has to do with my difficulty in locating that getActionCommand() method.
    It's not that it was actually difficult to find, it's more that I saw it and figured it was not what I was looking for.
    The API describes the getActionCommand() method as "Returns the command string associated with this action."
    I thought, "command string . . . I don't need no stinkin' command string"
    I naturally tried the paramString() and the inherited toString() and getSource() methods first.
    Indeed, it was the API description for the return value of paramString() - "a string identifying the event and its associated command" - that clued me in to looking at the getActionCommand() method.
    So, why is my button text considered a "command string"?
    I'm not playing semantics, I'm just trying to understand how to read the APIs.
    Thank you one and all.
    Ciao for now.

    Anyway, for buttons, typically, what I do is either:
    1) 1 listener for all buttons, usually the same class:
    public class MyClass implements ActionListener {
       public MyClass() {
          button1.setActionCommand("new");
          button1.addActionListener(this);
          ... etc. for each button...
       public void actionPerformed(ActionEvent ae) {
          if("new"equals(ae.getActionCommand()) {
             doNewThing();
          } else if(...) ...
       public void doNewThing() {
          // do new stuff...
    }The advantage here is that often you have buttons and menu items (which are buttons) and maybe even text fields which all fire action events for the same command, and can use the same listener.
    The disadvantage here is that you typically end up with long sets of if/else statements to check for each command.
    A modification on this is not using action commands, but if the buttons are all variables defined at the class level, you can use the event source to check if it's this or that component.
    2) Use anonymous listeners to call methods.
    public class MyClass implements ActionListener {
       public MyClass() {
          button1.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent ae) {
                doNewThing();
          ... etc. for each button...
       public void doNewThing() {
          // do new stuff...
    }The disadvantage (sorta) is you end up with a lot of MyClass$#.class files. Of course, using Ant to compile and package everything in a Jar makes this more or less a non-issue. And it does often look cleaner. But doing that means you have separate listeners for the button and the menu item and whatever, which may call the same class. You can, of course, create 1 listener and reuse it for multiple components:
    public class MyClass implements ActionListener {
       ActionListener newListener = new ActionListener() {
          public void actionPerformed(ActionEvent ae) {
             doNewThing();
       public MyClass() {
          button1.addActionListener(newListener);
          ... etc. for each button...
       public void doNewThing() {
          // do new stuff...
    }3) You can also use Action classes, which incorparate the action listener and several other things (text, icon, etc) for a button or menu. But honestly, I almost never use this.
    4) Option 4 this code I wrote here:
    http://forum.java.sun.com/thread.jspa?forumID=31&threadID=548168
    An example based on what I've already shown using that would be:
    public class MyClass implements ActionListener {
       public MyClass() {
          button1.addActionListener(new MethodInvokeAction(this, "doNewThing"));
          ... etc. for each button...
       public void doNewThing() {
          // do new stuff...
    }I've used all these ways in real apps. Generally, I use something like 2 (a or b) if there's lots of buttons and menus, and 1 if there's only a few buttons. The one app that I wrote the MethodInvokeAction class for, I actually used several ways.

  • Java API Failed to authenticate the user session with LDAP

    I have created a Java class that uses the MDM Java Api's it works fine on our Development environment where the MDM server uses its own built in authentication, but when I moved it to our QA environment where MDM use LDAP for authentication its failed with a  'Failed to authenticate the user session'.  Has anyone seen this before?

    hi Dan,
    The java class which u have created that suppose to works fine on MDM server because to execute that program there are no requirement of such protocols, the problem u will face while exporting those program to an client machine
    LDAP(Lightweight Directory Access protocol) connector communicates with the SAP system using RFC and with the directory server using these standard communication protocol.
    so try to select the protocol such that it should help in making connection between the server,direcotryserver and the client machine through which u can execute u r java class using java Api's.
    i hope this will give u an idea to through ur problem.
    regards,
    swapnil

  • Java 1.4.2_03 Windows: The configuration data for this product is corrupt.

    Trying to install j2SE 1.4.2_03 JRE on a Windows system (exact version needed for a bussiness application) after all previous Java installations have been deleted and all Windows Registry Java related keys have been manually deleted with Regedit.exe.
    The EXE installer works properly in other machines but in this one it stops after a few seconds with the following message:
    "The configuration data for this product is corrupt. Contact your support personnel".
    The problem is related to the Windows install mechanism rather than the Java installer itself and likely caused by the manual Registry deletion.
    The error code is 1610: ERROR_BAD_CONFIGURATION.
    Reinstalling Windows didn't fix the problem.
    Unable to recover the system to a previous state with the System Recovery Tool (Accesories/System Tools).
    Other versions of Java installers fail the same way and show the same message.
    I don't know how to contact "my support personnel" nor who they are.
    I'd appreciate any help about this problem or what Java installers need within the Registry to work or a clue of any kind.

    Sorry for the duplicated message. It's my first post and I messed up a little with the right section.
    A new downloaded copy of the file or other versions of Java failed to install with the same error message.
    I've learned there is a product ID in the registry that must be present for the installer to run. I'm searching for this "mysterious" product ID and how to set the right Windows XP Registry entry for the JSE 1.4.2_03 version.
    I'm still not sure this will fix the problem.
    Thanks for replying.

  • Java 1.4.2_03 WindowsXP The configuration data for this product is corrupt.

    Trying to install j2SE 1.4.2_03 JRE on a Windows XP system (exact version needed for a bussiness application) after all previous Java installations have been deleted and all Windows Registry Java related keys have been manually deleted with Regedit.exe.
    The EXE installer works properly in other machines but in this one it stops after a few seconds with the following message:
    "The configuration data for this product is corrupt. Contact your support personnel".
    The problem is related to the Windows install mechanism rather than the Java installer itself and likely caused by the manual Registry deletion.
    The error code is 1610: ERROR_BAD_CONFIGURATION.
    Reinstalling Windows didn't fix the problem.
    Unable to recover the system to a previous state with the System Recovery Tool (Accesories/System Tools).
    Other versions of Java installers fail the same way and show the same message.
    I don't know how to contact "my support personnel" nor who they are.
    I'd appreciate any help about this problem or what Java installers need within the Registry to work or a clue of any kind.

    Sorry for the duplicated message. It's my first post and I messed up a little with the right section.
    A new downloaded copy of the file or other versions of Java failed to install with the same error message.
    I've learned there is a product ID in the registry that must be present for the installer to run. I'm searching for this "mysterious" product ID and how to set the right Windows XP Registry entry for the JSE 1.4.2_03 version.
    I'm still not sure this will fix the problem.
    Thanks for replying.

  • I'm trying to open an Amino Acid Titration demonstration in Java so I can record the titration curve and the site crashes, do I need to re-update Java?

    I have the newest Firefox and presumably the newest Java update. Firefox in the extensions menu, told me that it was known to have issues so it disabled it......
    Since I need this curve, I re-enabled it, and now I can't access the page without it crashing.
    Any help on getting Java back up and running?

    Java != Javascript

  • VISA: (Hex 0xBFFF001D) The specified attribute is not defined or supported by the referenced resource and VISA: (Hex 0xBFFF0015) Timeout expired before operation completed signal recovery

    I am trying to control an HP 8350B sweep oscillator. I have an Agilent PCI-GPIB card installed on my computer and have set it up to run with labview. I installed NI VISA, followed by Agilent IO libraries and activated the Tulip passport in NI MAX. 
    I tried turning on the "enable agilent GPIB cards for 488 programs" in Agilent IO libraries and checking the VISA test panel for WRITE and READ, but I get the timeout error: (Hex 0xBFFF0015) Timeout expired before operation completed signal recovery
    On moving to labview, when I configure the VISA Serial it gives me this error 
    Error -1073807331 occurred at Property Node (arg 2) in VISA Configure Serial Port (Instr).vi->8350_VISA.vi
    and the possible reason is
    VISA:  (Hex 0xBFFF001D) The specified attribute is not defined or supported by the referenced resource.
    Subsequently on removing the VISA Serial, I get errors in Write and Read with the possible reason being
    VISA:  (Hex 0xBFFF0015) Timeout expired before operation completed.
    Help !!
    Attachments:
    HP-8350B_VISA.vi ‏16 KB

    Moving to LabVIEW makes no sense if you get a timeout error in the VISA test panel and doing any sort of serial configuration makes even less sense. What query did you use with the test panel? Did you confirm it exists in the manual? Did you enable GPIB on the instrument?

  • Does Lion support having the applications folder and the User folders on a separate disk (other than the startup disk)?

    Is it possible to Install Lion while having the Application Folder and/or the User Folder on separate drives (other than the startup disk)  Leopard didn't really support this as it would have errors with e-mail and other services that where not stored directly on the startup disk.

    It's possible, but don't put the Applications folder elsewhere, and keep at least a miminal Admin account on your startup drive (so you can still log on to do troubleshooting, etc., if there's a problem with the other drive).
    Many apps are expected to be in the Applications folder on the OSX drive; they may not work on a different drive and/or may not be found or updated when updates are available.  Apple and Adobe apps, especially, are subject to this.  Don't put them in folders, either, as similar things may happen. 
    Besides, apps don't take up much space anyway, it's the data that may.
    It's often better to keep the home folders on the OSX drive, but put large data folders on a separate drive, such as iPhoto, iTunes, or large video collections.

  • IAS and RDBMS and Linux

    Linux is great but and all but what kind of machines are all you big websites using. Hope not using intel.
    Over 400,000 linux lovers enjoy iAS9i. WHY? It doesnt run on OS greater than 6.0.
    I like the 8i RDBMS but what are you guys using to server your pages.(.jsp, .php, .psp)
    I dont want any info on .asp.

    I have installed Oracle 10g and when running the following code i get an error pls help me out
    import java.sql.*;
    public class conn2
    public static void main(String args [])
    Connection conn;
    Statement stmt;
    ResultSet rset;
    try
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@ 192.168.7.281:1521:rep9";
    String username = "pr01";
    String password = "pr";
    conn = DriverManager.getConnection(url, username, password);//exception in this line
    System.out.println("Connection successful");
    catch (Exception e)
    e.printStackTrace();
    Gives the runtime error
    java.sql.SQLException: Io exception: The Network Adapter could not establish the
    connection
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:231)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:345)
    at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:431)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
    va:515)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:345)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at conn2.main(conn2.java:18)

  • How can I purchase from Itunes without store jumping (I buy from the Guyanese store and some products are listed as only in US Stores)?

    How to avoid store jumping? Why cant there be a seamless Itune Store?

    Due to the rights of certain content not all content is available in all areas.  This means the US store may have items that are not available in the UK store, and the UK store may have items that are not available in the US store, and etc and etc.  This is likely to not change anytime soon.

  • Use of Java API classes unrelated to the problem domain

    Hi,
    I am designing a public API.
    java.awt.Dimension getScreenSize(); // rows, columns
    java.awt.Point getCursorLocation(); // row, columnDo you consider the above returned values abuses/misuses of existing AWT classes in a totally non-graphical context?
    Should I rather:
    1. Use my own (immutable) equivalent classes with better names such as getRows(), getColumns() instead of getY(), getX()?
    2. Should I use separate getters like getCursorRow(), getCursorColumn() etc. and forget about Point or Point-like classes (and loose the atomicity of the operations)?
    Thanks!

    I also feel you should roll your own classes with class and method names that better describe the intention. I base my conclusion on the very existence of the two classes Dimension and Point in the same java.awt package, both of which encapsulate two int values and nothing else. Theoretically just one class could have served the purpose of both of these.
    JTable has a constructor that takes two int arguments for numRows and numColumns, and methods getRowCount() and getcolumnCount() so would you consider using JTable as a return type for your getScreenSize()? No? I thought not.
    db

  • Is there any java api available to get the process identifier ?

    Hai,
    I am in need to get the process identifier of a running process.
    Is there any API available or any shell script which can be used in exec command
    to get it.
    Thanks in Advance.
    Kavitha M.

    Hint: Don't use the exec command! This would spawn off a new shell with a different PID. You might want to look at JNI (Java Native Interface) to attach a piece of C code to your Java application that can find out the PID.

  • What to do about the Pinterest bug and Apple products?

    There is a bug within Pinterest which disables ones ability to use the touch copy feature on Apple iPhone, iPad and iTouch.  I have contacted Pinterest so many times they will no longer except my email.  I would like to bring this to the attention of apple because I would think this problem Pinterest is in no hurry to fix  would worry Apple.  I would like to add there is nowhere on the web which disables the ability to touch copy except on Pinterest.

    Why do you think this is a bug? Maybe it is a feature purposefully put in place by Pinterest to prevent stealing of people's copyrighted image?
    Apple wouldn't reprogram Safari to overide code in third-party websites.

  • MDM JAVA API beginners queries

    Hi,
    I am a beginner for Web Dynpro. I am working on MDM and i need to use the MDM JAVA API
    I have downloaded the zip files and reading the documentation.
    I need guidance on how to proceed. Kindly help
    thank you
    bhakti

    Hi Rita,
    You can follow the below likns which will guide you on how to go about using JAVA Apis with MDM:
    How to start to work on MDM JAVA API by using webdynpro for java
    Re: MDM Java Tutorial
    Standard practise to make the APIs reusable ?
    MDM Java API Samples Framework
    Sample code required to Create,Update,Delete,Read & Search for records MDM
    Sample code is required on MDM JAVA APIs thru Webdynpro for java
    Hope It Helped
    Thanks & Regards
    Simona Pinto
    Hope It Helped
    Thanks & Regards
    Simona Pinto

Maybe you are looking for