OC4J CLassloading Information

gday All --
Classloading questions are quite common on this forum. It's a complicated area and each container will more than likely have slightly different nuances in how it works.
We have a very good technical paper which explains general classloading and the specifics of the implementation used in OC4J available on OTN.
This document usually is able to provide answers to questions and issues that arise.
http://otn.oracle.com/tech/java/oc4j/pdf/ClassLoadingInOC4J_WP.pdf
It's a great document so I'd really like to encourage you to have a good look at it when you are thinking about class packaging, loading, etc.
I'll put a link to it on the front page of the OC4J OTN area so it's more readily accessible.
cheers
-steve-

Here is the response I got through paid support:
"There are at least 4 class loaders within OC4J:
(a) system class loader: e.g. for java.util.Date
(b) application launcher class loader: classes from oc4j.jar when oc4j is started with "java -jar oc4j.jar"
(c) server wide class loader: e.g. jar from j2ee/home/lib
(d) web app class loader: e.g. classes from WEB-INF
[They are hirarchical in some sense.]"
I assume the bean container is between c and d, but don't quote me on it.

Similar Messages

  • OC4J ClassLoader defect ??

    Hello,
    I try to load some resources (xml documents) from within some JARs inside my EAR, deployed on the OC4J container (904).
    To do so, I'll use the getResources(String) operation on the ClassLoader. This operation always returns an empty enumeration (of URLs). However, when I try to load just one resource using getResource(String), I do receive the correct resource URL.
    After some investigation, I noticed the java.lang.ClassLoader has 2 methods to serve both operations: findResource(String) and findResources(String) which must be overriden by the OC4J classloader implementation. My sense is telling me, only the findResource(String) is overriden and not the findResources(String) (since they return an empty enum by default). Furthermore, when I inspect the com.sun.enterprise.util.EJBClassLoader, this feeling is confirmed since, this class only implements the findResource(String) operation. Is there a reason for this behaviour or a work-around or am I just totally wrong?
    Anyway, thanx in advance for looking at my problem,
    Kind regards,
    Stijn

    Hello,
    The first thing that I will check is how you get the class loader from your context. Since you are in a J2EE container/application it is always a good practise to take the class loader of the current thread Thread.currentThread().getContextClassLoader(). Is it the way you are getting access to the class loader or your are using the System one (default).
    I will invite you to read about ClassLoader and OC4J in this technical paper.
    Regards
    Tugdual Grall

  • Connector Class Loader in OC4J Classloader Tree

    Where does connector class loader fit in the OC4J class loader tree. Is it a parent to the EJB Classloader (as in SunOne) or does it use its own classloader to load classes (similar to weblogic). Becos it can impact visibility into resource adapter's classes.

    The classloader tree in the ClassLoadingInOC4J_WP.pdf applies to 10.1.2 and 9.0.4, probably even earlier, where the connector classcloader is the root classloader of an application.
    For 10.1.3, the root classloader of an application loads both connector jars and ejb jars. See chapter 3 of Oracle Containers for J2EE Developer's Guide(10.1.3 preview).

  • OC4J session information with App Server Console

    Hello
    I have installed BI&Forms 10.1.2.0.2.
    I have an application deployed to that app server.
    I would like to see session information against that app, and to be able to clear sessions down.
    Can this be done with App server Console and how?
    Thanks
    Andy

    Fixed this. The ServerName param in httpd.conf was incorrect.

  • OC4J classloading precedence

    I am trying to establish the order of precedence fllowed by OC4J when it's trying to locate a particular class.
    Given this expanded/exploded directory structure
    j2ee
    |
    --home
    |
    --classes
    |
    --lib
    |
    --my_web_app
    |
    --WEB-INF
    |
    --classes
    |
    --lib
    My understanding is that J2EE applications ought to follow this order of precedence:
    WEB-INF/classes
    WEB-INF/lib
    <home>/classes
    <home>/lib
    However, one of colleagues reckons he has an OC4J installation where WEB-INF/lib is taking precedence over WEB-INF/classes.
    I have to say that I have found nothing in the Oracle documentation to confirm which way OC4J operates. Is my understanding of J2EE at fault?
    Can anybody out there clarify the matter for me?
    Cheers, APC

    Here is the response I got through paid support:
    "There are at least 4 class loaders within OC4J:
    (a) system class loader: e.g. for java.util.Date
    (b) application launcher class loader: classes from oc4j.jar when oc4j is started with "java -jar oc4j.jar"
    (c) server wide class loader: e.g. jar from j2ee/home/lib
    (d) web app class loader: e.g. classes from WEB-INF
    [They are hirarchical in some sense.]"
    I assume the bean container is between c and d, but don't quote me on it.

  • Default-charset in oc4j 10.1.3

    Hi,
    We are planning on migrating to OC4J 10.1.3.
    It seems default-charset in global-web-application.xml is not recognized by OC4J 10.1.3 as it was in 9.0.3.
    I can see lot of discussions about default-charset in this forum, could not find any answer to my problem.
    Here is the header of my global-web-application.xml
    <orion-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-web-10_0.xsd"
    jsp-cache-directory="./persistence"
    servlet-webdir="/servlet"
    development="false"
    jsp-timeout="0"
    jsp-cache-tlds="standard"
    schema-major-version="10"
    schema-minor-version="0"
    default-charset="UTF-8"
    >
    Please note I also have the jsp page directive as it was used in 9.0.3.
    <%@page language ="java" contentType="text/html; charset=UTF-8" %>
    Any help will be appreciated. Please try testing on German umlaut character ü (ms keyboard entry ALT+129).
    Thanks,
    ddas

    In previous OC4J versions, the "servlet-webdir"
    attribute was used as the default servlet path
    whenever there was no "servlet-mapping" element
    defined in the "web.xml" file of the Web application.
    The above excerpt indicates that this is no longer
    true for OC4J 10.1.3 -- unless you set the java
    [System] property "http.webdir.enable" to 'true'. In
    fact, without a "servlet-mapping" element you cannot
    activate your servlet at all!
    My point is that after reading the above, that I must
    forget everything I knew about OC4J (in versions
    prior to 10.1.3). 10.1.3 is a totally
    different product to its predecessors. I must now
    start learning OC4J from scratch. So pardon me while
    I throw the last four years of my work experience
    with OC4J down the toilet.I can see your point and share your sentiment. However, your last exaggeration sounds funny. That was just a minor change needed for security requirement. In case you use Jdeveloper, servlet declaration and mapping will be done automatically for you. After all, if it does not work, this forum and formal oracle support will help you.
    Apart from usnig this post to vent my anger and
    frustration with the Oracle OC4J development team
    (yes you, messrs Debu Panda, Steve Button, Qiang Lin,
    Deepak Arora and others), I wish to inform you,
    Matic, that if the behaviour of the "servlet-webdir"
    attribute has changed, most probably that of the
    "default-charset" attribute has also changed.
    So please Oracle OC4J people, inform us where we can
    find information/documentation explaining the
    behaviour changes of OC4J 10.1.3.0.0 stand-alone as
    compared with previous versions.Thanks for the suggestion, Avi. I will ask the documentation writer to see if they have documented that change of behavior of the "servlet-webdir" and if not, document them in an appropriate book such as upgrade guide.
    By the way, I do not think the semantic of "default-charset" attribute has changed from 10.1.2 to 10.1.3. If you know it otherwise, please provide a test case for me. Thanks.

  • Dabu etal: per war classloader vs XML API per war

    OC4J classloader folks;
    A general problem for the deployment folks/production env
    is
    how to host or configure the deployment of war's that need specific versions or
    specific vendor's XML apis.
    IMO the XML api vendors, designers have not helped at all with package name spaces and
    top level factories and
    VM wide system properties for determining the instandiated engine.
    Anybody have thoughts on how a OC4J production environment can effectively be
    a "job shop" for deploying anonymous wars who might have internal dependancies on specific XML parsers, versions or vendors?
    Ok, so a little easier, we're not an anonymous war job-shop. We do know what's
    being deployed and have complete control over the wars. What help is this in
    solving the problem? :)
    Thanks, curt

    Hi Lars,
    Hay, the new tag <web-app-class-loader search-local-classes-first="true" />
    for 903 is great!
    I stand corrected, I would have bet $10, maybe $50, that this
    is the default behavior of a J2EE container. :)
    But I'm on 902 OC4J so this isn't available anyway.
    BTW, whats the rationale for this NOT being default behavior?
    You know if other J2EE containers do class loading from world on down to war by default
    too?
    Thanks
    curt

  • OC4j CLASSPATH unable to find my jar, no EJB3 injection

    Hello,
    I have a problem deploying my application.
    I am working with OAS 10.1.3.3, developing an application with jdeveloper 10.1.x.
    I need to deploy an EJB3 application, but I have a lot of deployment problems. To find a solution I tried a step by step deployment.
    Firs: From my servlet I call some functions, which using classes from a separate jar file. The oc4j classloader can´t find my classes. I checked a lot to fix that with no success. The library is located in WEB-INF/lib, the element can be found. The error message states that the class can´t be found in the class path, only in the lib path. But this should be done automatically.
    I tried some different entries in the MANIFEST.mf, but with the same result. I thought it could be a loader problem, but as stated it´s the same loader. I still don´t have any idea.
    10/12/08 17:08:33.860 asn1-frontend-war: 10.1.3.3.0 Started
    10/12/08 17:10:06.999 asn1-frontend-war: Servlet error
    oracle.classloader.util.AnnotatedNoClassDefFoundError:
         Missing class: com.opensynergy.car2xreference.backend.model.typeuniverse.generic.communicationprotocol.Message
         Dependent class: com.opensynergy.car2xreference.backend.asn1.marben.impl.ASN1CoderFacade
         Loader: asn1-frontend-war.web.asn1-frontend-war:0.0.0
         Code-Source: /opt/oracle/ias10133/j2ee/home/applications/asn1-frontend-war/asn1-frontend-war/WEB-INF/classes/
         Configuration: WEB-INF/classes/ in /opt/oracle/ias10133/j2ee/home/applications/asn1-frontend-war/asn1-frontend-war/WEB-INF/classes
    The missing class is available from the following locations:
         1. Code-Source: /opt/oracle/ias10133/j2ee/home/applications/asn1-frontend-war/asn1-frontend-war/WEB-INF/lib/model-jar.jar (from WEB-INF/lib/ directory in /opt/oracle/ias10133/j2ee/home/applications/asn1-frontend-war/asn1-frontend-war/WEB-INF/lib)
         This code-source is available in loader asn1-frontend-war.web.asn1-frontend-war:0.0.0.
         at oracle.classloader.PolicyClassLoader.handleClassNotFound (PolicyClassLoader.java:2068) [opt/oracle/ias10133/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@27634497]
    Second problem is, that I get an NullPointerException, if I call any EJB from my servlet. My code isn´t special. To fix that I tried a simple hello world example from my servlet which fails.
    The code is
    public class VehicleEndpointBackingBeanImpl extends VehicleEndpoint {
    @EJB(name = "EJBManager")
    EJBManager manager;
    void process(){
    manager.sayHello();
    and the EJB looks like that:
    @Stateless(name="EJBManager")
    @StatelessDeployment(
    minInstances=5,
    poolCacheTimeout=90
    public class EJBManagerBean implements EJBManager, EJBManagerLocal {
    @PersistenceContext(unitName="JobEventMechanism")
    as you can see a simple hello world example.
    I checked the EnterpriseManager and found, that the application contains the EJB Session Bean. The table from em is:
    Session Beans
    Name [Sorted in ascending order]      Type     Active EJB Methods     Method Execution Time (seconds)     Method Execution Rate (per second)
    "EJBManager"     Stateless Session Bean     Unavailable     Unavailable     Unavailable
    In some examples I have seen that people working with InitialContext, but I am sure that in EJB3 it isn´t necessary.
    I extended the application with an ejb-jar.xml where I added
    <enterprise-beans>
    <session>
    <ejb-name>EJBManager</ejb-name>
    </session>
    with no effect. So how can I fix this?
    Any help welcome, I can´t find a solution. Are there some hints for JDEveloper or so?
    Bye
    Rolf-Dieter

    yes Everything you say is right in my prog. but it still does n't works.
    i haven't set my j2ee_classpath & does it have anything to do with my error.
    if so, where to find the drivers(MS-SQL) .jar file.
    Thank You for Your reply
    -Suresh Kumar.R

  • Class not found JBoss rules

    servlet crashes at run time:
    06/09/27 16:44:52 CharScanner; panic: ClassNotFoundException: org.antlr.stringtemplate.language.ChunkToken
    06/09/27 16:44:52 Shutting down OC4J...
    I've checked and the class is included in the project libraries (In fact I got a little frustrated and included all the JBoss rules jars.
    anyhow I don't see why it can't find an included library

    Can you try and see if copying the jar files to the
    [jdev-root]\j2ee\home\lib directory helps?That didn't help unfortunately. I've been trying to understand how oc4j classloading works - were you assuming that:
    "The missing class is present, but the loader configured to use it is a child of the initiating loader." - (from the ..conatainers for j2ee developers guide)?
    I've also tried deploying to a .war file in JDeveloper and tested it with tomcat where it works fine. Deploying the same .war file thorugh the oc4j (launched in standalone mode) web interface results in the same problem - bringing down the oc4j server - as it does clicking 'run' in JDeveloper.
    Is there some code I can put in my servlet (it's an extremely simple web-app to test using drools with oc4j) to output what classloaders are active and where they are looking? I've never had to do this before either.

  • AspectJ load time weaving AnnotatedNoClassDefFoundError

    I am trying to use AspectJ load time weaving on an application running on OC4J 10.1 on JRE 1.5. I get AnnotatedNoClassDefFoundError with Missing class: org.aspectj.runtime.internal.AroundClosure message.
    Here is what I am doing:
    1. Starting the server with JVM argument -javaagent:aspectjweaver.jar to enable AspectJ load time weaving.
    2. I put an AspectJ library MaintainJAspect.jar under j2ee\home\applib folder.
    3. I put the aspect defined in aop.xml at j2ee\home\applib\META-INF\aop.xml .
    The aspect defined in aop.xml is properly weaved into the application class (I can see in the dumped source). But when the application is running, it fails with the message pasted below.
    My question is, while it says that the missing class is available in oc4j classloader, which is parent of system and application class loaders, why is it not available to my application?
    Thanks in advance,
    Choudary Kothapalli.
    oracle.classloader.util.AnnotatedNoClassDefFoundError:
         Missing class: org.aspectj.runtime.internal.AroundClosure
         Dependent class: com.maintainj.aspect.ExecutionAspect
         Loader: global.libraries:1.0
         Code-Source: /C:/Programs/oc4j10/j2ee/home/applib/MaintainJAspect.jar
         Configuration: <code-source> in /c:/Programs/oc4j10/j2ee/home/config/server.xml
    The missing class is available from the following locations:
         1. Code-Source: /C:/Programs/oc4j10/j2ee/home/maintainj/aspectjweaver.jar (from system property java.class.path)
         This code-source is available in loader oc4j:10.1.3.
         at oracle.classloader.PolicyClassLoader.handleClassNotFound (PolicyClassLoader.java:2068) [C:/Programs/oc4j10/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@9627532]
         at oracle.classloader.PolicyClassLoader.internalLoadClass (PolicyClassLoader.java:1679) [C:/Programs/oc4j10/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@9627532]
         at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1635) [C:/Programs/oc4j10/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@9627532]
         at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1620) [C:/Programs/oc4j10/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@9627532]
         at java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) [jre bootstrap, by jre.bootstrap:1.5.0_08]
         at com.maintainj.aspect.ExecutionAspect.ajc$around$com_maintainj_aspect_ExecutionAspect$1$133697c9proceed (ExecutionAspect.aj:1) [C:/Programs/oc4j10/j2ee/home/applib/MaintainJAspect.jar (from <code-source> in /c:/Programs/oc4j10/j2ee/home/config/server.xml), by global.libraries:1.0]
         at com.maintainj.aspect.ExecutionAspect.ajc$around$com_maintainj_aspect_ExecutionAspect$1$133697c9 (ExecutionAspect.aj:42) [C:/Programs/oc4j10/j2ee/home/applib/MaintainJAspect.jar (from <code-source> in /c:/Programs/oc4j10/j2ee/home/config/server.xml), by global.libraries:1.0]
         at simple.SimpleServlet.<init> (SimpleServlet.java:12) [C:/Programs/oc4j10/j2ee/home/applications/SimpleWeb/SimpleWeb/WEB-INF/classes/ (from WEB-INF/classes/ in C:\Programs\oc4j10\j2ee\home\applications\SimpleWeb\SimpleWeb\WEB-INF\classes), by SimpleWeb.web.SimpleWeb:0.0.0]

    Not sure what you mean by "support". AspectJ rewrites bytecodes so the VM will just execute them. You'll probably encounter increased memory usage with load-time weaving as class loading/initialization occurs in Immortal memory. Also load-time weaving won't be compatible with Java RTS's Initialization Time Compilation (ITC) feature ... or at least not the pre-initialization part. It's likely that no-heap threads won't work well running weaved code if there are any references back to heap-allocated AspectJ runtime objects, and similarly (like most libraries) it's not likely to work from scoped memory.
    HTH.
    David Holmes

  • Dependency Package in Exploded Application WLS6.1sp2

    I am working with the sample application used in Chapter 24 of Professional
    Java Server Programming J2EE 1.3 Edition. The application is a test for
    displaying ClassLoader information for ejb and web modules and their
    associated dependent packages. I am able to deploy the packaged EAR without
    a problem under WLS 6.1sp2, but when I attempt to deploy the same
    application in exploded format, I am getting a NoClassDefFoundError during
    deployment of the ejb module. The manifest files are unchanged and the
    dependent jar files are located at the root of the exploded application...
    below is a sample of the directory structure.
    My question is, where should I put dependent classes and/or packages in an
    exploded application and how do I setup the manifest to load them?
    Thanks in advance for any help,
    Tim Kuntz
    \ear_root
    Util1.jar
    Util3.jar
    Util6.jar
    Util7.jar
    \ejb
    \depend1
    \META-INF
    MANIFEST.MF
    Manifest-Version: 1.0
    Class-Path: Util1.jar Util3.jar Util6.jar Util7.jar
    http://www.theserverside.com/resources/articles/J2EE-Deployment/chapter.html

    Here is the answer I received from a BEA Developer Relations Engineer
    regarding this...
    "When you deploy the EAR file, it is deployed under one classloader. When
    you deploy the EAR file in the exploded format, then each EJB jar file is
    loaded in a separate classloader. As long as the dependent (helper) classes
    are in the classpath, you can always redeploy the EJB jar file, but if you
    want to make changes to the dependent class then you have to restart the
    WebLogic Server."
    "Tim Kuntz" <[email protected]> wrote in message
    news:3c616a90$[email protected]..
    I am working with the sample application used in Chapter 24 ofProfessional
    Java Server Programming J2EE 1.3 Edition. The application is a test for
    displaying ClassLoader information for ejb and web modules and their
    associated dependent packages. I am able to deploy the packaged EARwithout
    a problem under WLS 6.1sp2, but when I attempt to deploy the same
    application in exploded format, I am getting a NoClassDefFoundError during
    deployment of the ejb module. The manifest files are unchanged and the
    dependent jar files are located at the root of the exploded application...
    below is a sample of the directory structure.
    My question is, where should I put dependent classes and/or packages in an
    exploded application and how do I setup the manifest to load them?
    Thanks in advance for any help,
    Tim Kuntz
    \ear_root
    Util1.jar
    Util3.jar
    Util6.jar
    Util7.jar
    \ejb
    \depend1
    \META-INF
    MANIFEST.MF
    Manifest-Version: 1.0
    Class-Path: Util1.jar Util3.jar Util6.jar Util7.jar
    http://www.theserverside.com/resources/articles/J2EE-Deployment/chapter.html
    >
    >

  • Jdbc 10.1.0.4 & OCF4 9.0.4

    Hi all,
    I've replaced the jdbc Thin driver 9i (nls_charset12.jar, classes12.jar) by the 10g version (ojdbc14.jar, orai18n.jar, ocrs12.jar) in my application.
    It compiles fine, but when the application is deployed in the middle tier (iAS & OC4J 9.0.4.0.0), I got this error:
    java.lang.NoSuchMethodError: oracle.sql.CharacterSet.AL32UTF8ToString([BII)Ljava/lang/String;     at oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:527)     at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:672)     at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)     at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:348)     at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:151)     at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)     at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:563)     at java.sql.DriverManager.getConnection(DriverManager.java:512)     at java.sql.DriverManager.getConnection(DriverManager.java:140)     at oracle.toplink.sessions.DefaultConnector.connect(DefaultConnector.java:57)     at oracle.toplink.sessions.DatabaseLogin.connect(DatabaseLogin.java:218)     at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(DatabaseAccessor.java:398)     at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connect(DatabaseAccessor.java:423)     at oracle.toplink.threetier.ConnectionPool.buildConnection(ConnectionPool.java:90)     at oracle.toplink.threetier.ConnectionPool.startUp(ConnectionPool.java:328)     at oracle.toplink.threetier.ServerSession.connect(ServerSession.java:447)     at oracle.toplink.publicinterface.DatabaseSession.login(DatabaseSession.java:531)     at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:250)     at oracle.toplink.tools.sessionmanagement.SessionManager.getSession(SessionManager.java:181)     at oracle.skill.model.toplink.common.ToplinkUtils.getSession(ToplinkUtils.java:174)     at oracle.skill.model.toplink.common.ToplinkUtils.getClientSession(ToplinkUtils.java:163)     at oracle.security.controller.struts.action.CheckAppAvailability.execute(CheckAppAvailability.java:83)     at oracle.jheadstart.controller.struts.action.JhsAction.execute(JhsAction.java:245)     at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)     at oracle.jheadstart.controller.struts.JhsRequestProcessor.processActionPerform(JhsRequestProcessor.java:351)     at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)     at oracle.jheadstart.controller.struts.JhsRequestProcessor.process(JhsRequestProcessor.java:635)     at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)     at oracle.jheadstart.controller.struts.JhsActionServlet.process(JhsActionServlet.java:139)     at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)     at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)     at oracle.security.controller.AuthenticationFilter.doFilter(AuthenticationFilter.java:171)     at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)     at oracle.jheadstart.controller.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:174)     at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:600)     at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)     at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)     at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)     at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)     at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)     at java.lang.Thread.run(Thread.java:534)
    I just want my application use only those libraries placed in the ear file, none from the continer ..
    In the Jdbc Forum, I was told that the issue is probably due to the way the OC4J Classloader works ..
    Could someone help me ?
    Thanks in advance,
    Eduardo.

    Eduardo,
    Have you either:
    (1) edited the MANIFEST.MF within oc4j.jar so that there is no reference to classes12.jar or classes12dms.jar and instead there are references to ojdbc14.jar which you will have copied into jdbc/lib
    or
    (2) have a look at Note:305679.1 - they have another way of editing the jdbc driver config there using java.ext.dir
    Regards,
    pj.

  • Modifying eBusiness 11.5.10.2 OAF page?

    We are on eBusiness 11.5.10.2 and I would like to modify a workflow email notification. This email notification calls an OAF region. The OAF region is what I need to modify. Can you please tell me what development tools I will need and what version of JDeveloper I need to install?
    Thanks for your time.
    Shauna

    sphelps wrote:
    No it is not in the query... I'll probably need help when I get to that point as well. :(
    Right now I'm having an issue configuring JDeveloper 9i. Where can I find the right DBC file to use? Where can I get the OC4J connection information from?This link should be helpful -- https://forums.oracle.com/forums/search.jspa?threadID=&q=JDeveloper+AND+DBC&objID=f210&dateRange=all&userID=&numResults=15&rankBy=10001
    Thanks,
    Hussein

  • Reloading classes on the fly?

    Is there a convenient way to reload changed classes without shutting down and restarting the cluster nodes? I would like to just do cache.clear() then reload the class files and begin populating the cache with the new objects.
    Thanks,
    Andrew

    That depends on how the classes are loaded.
    You probably used the CLASSPATH environment variable to load classes into classpath.
    In this case you have to restart your nodes in order for new classes to be loaded by the JVM.
    To my knowledge, Coherence does not provide any separate classloading features as, for example, an application server does
    where each deployed application gets its own classloader on top of the system classloader defined by CLASSPATH.
    In order to provide this same functionality you have to write a separate classloader that loads the classes of the types
    you load in the cache. In this case the coherence.jar etcetera are in the system classloader (CLASSPATH), while your
    application classes are loaded by a custom classloader.
    ConfigurablePofContext is ClassLoaderAware (http://download.oracle.com/docs/cd/E18686_01/coh.37/e18683/com/tangosol/io/ClassLoaderAware.html)
    From the ConfigurablePofContext API (http://download.oracle.com/docs/cd/E18686_01/coh.37/e18683/com/tangosol/io/pof/ConfigurablePofContext.html):
    "It is conceivable that the ConfigurablePofContext is loaded by the system ClassLoader (or some other relatively global ClassLoader), while the objects
    deserialized by the PofContext are loaded by an application-specific ClassLoader, such as is typical within an application server. The ConfigurablePofContext
    is designed to load the configuration, the POF-able object classes and the PofSerializer classes from within a specified ClassLoader context, and to pass
    the ClassLoader information on to the PofSerializer instances, just in case they are not loaded from within the application's ClassLoader context.
    In other words, the ConfigurablePofContext, its configuration, the PofSerializer classes and the POF-able classes can all be loaded by the same ClassLoader,
    or they can all be loaded by different ClassLoaders, so long as the configuration, the POF-able classes and the PofSerializer classes can be loaded by either
    the specified ClassLoader or by the ClassLoader that loaded the ConfigurablePofContext itself."
    The problem is (with most classloading) how to unload the classes that are referenced in a runtime environment. This usually means, in the case of an
    application server, to delete a certain deployment and redeploy again.
    Hope it makes a little sense.
    An example of a custom classloader and same more background on classloading can be found here: http://middlewaremagic.com/weblogic/?p=6725

  • Problem with classloader (for shared-lib's) on oc4j 10.0.3.4 under jdk 1.5

    I have a project that runs great on oc4j 10.0.3.4 under jdk 1.6. (everything worked great)
    I recently tried to run it under jdk 1.5 and i've run into a little problem with the shared-lib's:
    The classloader's debug file reports the following: (i have translated some of it)
    Class error: oracle.classloader.util.AnnotatedNoClassDefFoundError:
         Missing class: javax.xml.bind.JAXBContext
    Dependant class: nl.comp.util.XmlUtil
         Classloader: comp:0.1
         Code-source: /C:/programs/oc4j/j2ee/home/shared-lib/comp/0.1/comp.jar
         Configuration: <code-source> in /c:/programs/oc4j/j2ee/home/config/server.xml
    The missing class is available from the following location:
         1. Code-source: /C:/programs/oc4j/lib/xml.jar (from <code-source> (ignore manifest Class-Path) in META-INF/boot.xml in C:\programs\oc4j\j2ee\home\oc4j.jar)
    This code-source is available from classloader oracle.xml:10.1.0_2
         2. Code-source: /C:/programs/oc4j/j2ee/home/shared-lib/jaxb/2.1.6/jaxb-api.jar (from <code-source> in /c:/programs/oc4j/j2ee/home/config/server.xml)
    This code-source is available from classloader jaxb:2.1.6.
    So the classloader knows where to find the necessary lib, but it isn't loading it? If i run the exact same code (with same descriptors and everything) under jdk 1.6, it works, under 1.5 i get the above error.
    What is different on the class loader level between the two jdk versions that might affect the program in such a way?
    Need i update a descriptor or do something else?

    Jack,
    Not a definitive answer for you (sorry), just a few suggestions (that I assume you are unaware of).
    1. Try unsetting your "ClassPath" variable. Open a "command" window and type the following:
    set ClassPath=2. Launch OC4J from the directory where the "oc4j.jar" file is located, for example:
    D:
    cd oc4j\j2ee\home
    java -jar oc4j.jar3. I'm just guessing, but if your drive "D:" is a mapped, network drive, this may be causing the problem. Perhaps try installing OC4J on a local drive?
    Hope this helps.
    Good Luck,
    Avi.

Maybe you are looking for