Obtaining principal in EJB helper classes

I have a pretty typical EJB setup where the actual EJBs delegate a lot of work
off to helper classes which are simple java classes. Some of these helpers need
access to the principal currently executing on this container thread. Currently,
I am passing the principal as a parameter in every method signature on the helpers
which need it. But as you can probably guess that approach is quickly becoming
unweildy.
Ideally, what I would like to do is to have access to the principal associated
with the currently executing thread. I can mimic this by setting thread-local
variables in the EJB prior to calling helpers. But I was wondering (ok, hoping)
that there was already a way to access this information (either through weblogic
classes or MBeans). At this point, I dont even care if it is not portable.
P.S., I use WL6.1
Thank you in advance,
Steve

>
The helper methods do database querries etc and return results that the EJB sends onwards to clients. If these methods
are NOT synchronized (and the ejbs share the static class) won't it cause concurrency errors? I think most of our methods are not
synchronized (and it doesn't seem to cause any concurrency errors so far... though the system have not beeen stressed test that much,
and concurrency bugs tends to pop up later and randomly :P).
>
No, if you dont have any static data variables in the Java classes, static method as such will not cause concurrency errors, and the methods should not be synchronized.
If you have any synchronized methods and they take a while to execute, that could become a bottleneck in itself, because different threads waiting for each other,
so make sure you dont have any synchronized methods where it is not explicitly needed.
Think of a static method (without static data in the class being manipulated) as a plain function in another programming-language.
>
We have some scaleability problems with the EJBs... It seems as if they do not run concurrently. If we do a stress test with several threads calling the EJBs their response time increases by a too large factor to feel comfortable...
>
Apparently, you do have a some scaling/concurrency problem, which could have many causes -- transaction locking and clashes in the database, poorly configured database, network congestion, problems in the EJB architecture, etc -- can be many reasons...
The general idea to debug, is first to find out exactly what calls in your code that take longest time to execute (profiling, logging, System.out.println's are useful) when you put parallel load on your system -- rather than just seeing "the whole application seems slow" -- from there you can move on, "divide&conquer" the problem, etc...

Similar Messages

  • EJB Helper class not created

    Dear Sirs,
    I am following the example in the "Enterprise Java Beans manual" to use Jdeveloper to create the Hello World EJB described in appendix B.
    My EJB is deployed successfully but when I run the client I get "ClassNotFoundException: hello.HelloHomeHelper".
    I imagine that the computer is trying to load the HelloHomeHelper.narrow method to properly case the call to the create method of my EJB. But such class only gets created when you use the wizard "Generate CORBA Server classes". But I cannot do that since I am not extending org.omg.CORBA.Object object. Rather the EJB I am implementing implements the "SessionBean".
    So why I am having CORBA-related problems with EJB?
    thanks.

    Hi,
    I have the same problem with bc4j deployed on Oracle 8.1.7 as session EJB.
    I'm testing the deployed bc with a client code. I have the following problem on the lookup method:
    avax.naming.NamingException: Unknown reasons. Root exception is
    java.lang.ClassNotFoundException: vebs.jbo.common.ejb.VeAppModuleHomeHelper
    void oracle.jbo.client.remote.ejb.aurora.AuroraEJBAmHomeImpl.initRemoteHome()
    void oracle.jbo.client.remote.ejb.aurora.AuroraEJBAmHomeImpl.<init>(oracle.jbo.JboContext, java.lang.String)
    oracle.jbo.common.JboHome oracle.jbo.client.remote.ejb.aurora.AuroraEJBInitialContext.createJboHome(java.lang.String)
    java.lang.Object oracle.jbo.common.JboInitialContext.lookup(java.lang.String)
    java.lang.Object javax.naming.InitialContext.lookup(java.lang.String)
    void bctest.main(java.lang.String[])
    but if I see in the Oracle db, the class is exported.
    Help me!!

  • I need a clarification : Can I use EJBs instead of helper classes for better performance and less network traffic?

    My application was designed based on MVC Architecture. But I made some changes to HMV base on my requirements. Servlet invoke helper classes, helper class uses EJBs to communicate with the database. Jsps also uses EJBs to backtrack the results.
    I have two EJBs(Stateless), one Servlet, nearly 70 helperclasses, and nearly 800 jsps. Servlet acts as Controler and all database transactions done through EJBs only. Helper classes are having business logic. Based on the request relevant helper classed is invoked by the Servlet, and all database transactions are done through EJBs. Session scope is 'Page' only.
    Now I am planning to use EJBs(for business logic) instead on Helper Classes. But before going to do that I need some clarification regarding Network traffic and for better usage of Container resources.
    Please suggest me which method (is Helper classes or Using EJBs) is perferable
    1) to get better performance and.
    2) for less network traffic
    3) for better container resource utilization
    I thought if I use EJBs, then the network traffic will increase. Because every time it make a remote call to EJBs.
    Please give detailed explanation.
    thank you,
    sudheer

    <i>Please suggest me which method (is Helper classes or Using EJBs) is perferable :
    1) to get better performance</i>
    EJB's have quite a lot of overhead associated with them to support transactions and remoteability. A non-EJB helper class will almost always outperform an EJB. Often considerably. If you plan on making your 70 helper classes EJB's you should expect to see a dramatic decrease in maximum throughput.
    <i>2) for less network traffic</i>
    There should be no difference. Both architectures will probably make the exact same JDBC calls from the RDBMS's perspective. And since the EJB's and JSP's are co-located there won't be any other additional overhead there either. (You are co-locating your JSP's and EJB's, aren't you?)
    <i>3) for better container resource utilization</i>
    Again, the EJB version will consume a lot more container resources.

  • Add helper class public parts as used DC in EJB DC

    Hi Experts,
    I have created a JAVA DC project containing the helper classes.
    For this helper classes i have created a Jar file.
    I have also created two public parts
    1) with an option Can be packaged into other build results (e.g. SDAs)
    2) with an option Provides an API for developing/compiling other DCs
    Now i want to use these public parts in my EJB DC.
    I have added the API public part in my EJB DC as build time design time and run time.
    Now when i am getting java.lang.NoClassDefFoundError: for the class defined in JAVA DC helper class.
    Can you help me in resolving this?
    Regards,
    Ashish Shah

    Hi
    I have done following things:
    1) I have a java DC containing helper classes and an EJB DC referring to it.
    2) Now to access this EJB DC, I have created a java command bean DC.
    3) And I am using this command bean Java dc in my WebDynpro application.
    4)  Now for deploying the helper class, I have created a library project.
    5)  To this library project I have added the SDA and API public part of helper class as used dc.
    6)  I have added this java library file as used DC in WebDynpro DC and in EJB DC.
    7)  I have added the library reference to the WebDynpro DC for J2ee server component library DC  As pg.comaptsc~dc_aptjl
    8)  When i checked in Visual admin i could see the Assembly (SDA) helper class jar file.
    In my helper class files, I am getting this warning.
    Checking package reservation
    Warning: Package pg.com.apt.help.cls is not reserved for DC : apt/sc/dc_apthc.
    Now in my webdynpro DC when I refer to the helper class through the EJB, I get this error.
    java.lang.NoClassDefFoundError: pg/com/apt/help/cls/TargetMarket at pg.com.atos.WebModuleProject.FetchSDCDataBean.SearchGTINTMDataEJB(FetchSDCDataBean.java:133) at pg.com.atos.WebModuleProject.FetchSDCDataObjectImpl0.SearchGTINTMDataEJB(FetchSDCDataObjectImpl0.java:119) ... 35 more ; nested exception is: java.lang.NoClassDefFoundError: pg/com/apt/help/cls/TargetMarket
    Can you please guide on what I am missing.
    Thanks in advance.
    Regards,
    Ashish Shah
    Edited by: ashish shah on Dec 18, 2007 3:23 PM

  • Reference EJB from servlet's action/helper classes

    Hello
    How to make a reference to stateless session bean from one of the helper classes of a servlet WITHOUT using any of these:
    * dependency injection (like @EJB) - I think this is not supported in this kind of class, EJB references can be injected only to servlets themselves or some other things (but not objects of classes "accompanying" a servlet)
    * home or local home interfaces (I would like to avoid writing them)
    * using mappedName (either in @Stateless or in ejb-jar) - since meaning of this is application-server dependent and thus not portable.
    By a "class accompanying a servlet" / "helper class" I mean utility or action classes, like MyActionClass, which would be instantiated and then used by a aforementioned servlet.
    Thanks.

    The EJB dependency must be looked up via the java:comp/env namespace since as you point out
    Java EE 5 environment annotations are not supported on POJOs. However, the dependency itself
    can either be defined using @EJB on some other managed class in the .war or within the
    web.xml. We have an entry in our EJB FAQ that has the details :
    https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#POJOLocalEJB
    Also, whenever the client component resides in the same application as the target EJB (which is
    required for Local access but not for Remote access) there is no need to use mappedName to
    resolve the EJB dependency. It is either automatically resolved if the business interface type of
    the EJB dependency is only exposed by a single EJB in the application, OR the beanName()
    / ejb-link attributes can be used to unambiguously identify the target EJB using ejb-name.
    You can find more about this in the FAQ as well.

  • EJB and helper classes ...

    I have created an EJB component which uses
    some helper classes in JDeveloper 3.0 .
    The component deploys sucessfully to OAS 4.0.8.1 . When I try to run the component through an applet ( including the _client.jar
    in the archive tag) , the applet does not find the helper classes . How I do i include the helper classes in the _client.jar file ?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Hi,
    Try to put all the EJB's in a single package and import the package. I
    can think of this solution right now, will keep posting for updates.
    Regards
    Raj
    Daniel Westerdale wrote:
    Hi,
    I have a number of EJBs that each use a common set interfaces,
    exceptions and Value beans. If I deploy using the iasdeploy command
    line, then I must package up all these common classes within each of
    the EJB modules - leading to a lot of duplicate code.
    Is there a smarter a way of packaged the common classes so that I can
    include them in the .EAR file but only in one module.
    Note: I would prefer to only argument the IAS classpath with 3rd party
    classes that rarely change and not these common classes e.g. Jlog
    cheers
    Daniel
    Try our New Web Based Forum at http://softwareforum.sun.com
    Includes Access to our Product Knowledge Base!

  • EJB environment question (static helper classes)

    We're using JBoss as AS containing several stateless session beans.
    Now, we have certain helper classes that are abstract and contain static methods. Is this a problem for the EJBs? All of them use these helper classes all over their methods. Are they sharing the static class and will slow down somehow? Or is each EJB using its version of the class and can run concurrently?
    Should we rethink this and put an INSTANCE of each helper class in each ejb instead of using static methods in the helper class?
    Now in EJB method:
    Helper.calculateStuff();
    Should it be?
    Helper h = new Helper(); // defined when ejb is created
    helper.calculateStuff();
    Edited by: JAeon on Sep 8, 2008 12:21 AM
    Edited by: JAeon on Sep 8, 2008 12:22 AM

    >
    The helper methods do database querries etc and return results that the EJB sends onwards to clients. If these methods
    are NOT synchronized (and the ejbs share the static class) won't it cause concurrency errors? I think most of our methods are not
    synchronized (and it doesn't seem to cause any concurrency errors so far... though the system have not beeen stressed test that much,
    and concurrency bugs tends to pop up later and randomly :P).
    >
    No, if you dont have any static data variables in the Java classes, static method as such will not cause concurrency errors, and the methods should not be synchronized.
    If you have any synchronized methods and they take a while to execute, that could become a bottleneck in itself, because different threads waiting for each other,
    so make sure you dont have any synchronized methods where it is not explicitly needed.
    Think of a static method (without static data in the class being manipulated) as a plain function in another programming-language.
    >
    We have some scaleability problems with the EJBs... It seems as if they do not run concurrently. If we do a stress test with several threads calling the EJBs their response time increases by a too large factor to feel comfortable...
    >
    Apparently, you do have a some scaling/concurrency problem, which could have many causes -- transaction locking and clashes in the database, poorly configured database, network congestion, problems in the EJB architecture, etc -- can be many reasons...
    The general idea to debug, is first to find out exactly what calls in your code that take longest time to execute (profiling, logging, System.out.println's are useful) when you put parallel load on your system -- rather than just seeing "the whole application seems slow" -- from there you can move on, "divide&conquer" the problem, etc...

  • Obtain CallerPrincipal in a utility class

    Hi,
    I'd like to obtain the caller principal of a ejb from a utility class. I know I can easily get the EJBContext inside the ejb itself using the callback from the container to the setSeccionCoontect method, but what if I need to knwo the caller principal in a utility class called by a business method of my ejb?
    By the way, I'm using EJB2.1 in Weblogic 8.1 and I'm talking about SessionBeans. I know I could obtain the caller principal inside my ejb and simply pass it as a parameter to my utility class, but I dont liek to idea of adding a user parameter to my utility clases method.
    I'm aware that I could do a InitialContext.lookup("java:/comp/EJBContext") if I was using a EJB3 container, but I cant find the equivalent with EJB2.
    Thanks!

    Every thread has a stack of its own and its own copies of local variables, if a static method uses only locals it doesn't have to be synchronized.
    Using lazy initialization with the singleton pattern is a good example of side effects. Examine this code:class Singleton {
        static Singleton instance;
        static Singleton getInstance() {
            if (instance == null) instance = new Singleton();
            return instance;
        // don't allow other classes to create an instance
        private Singleton() {}
    }Now what happens if two threads simultaneously enter the getInstance method and both find the value of the "instance" variable null in the if-condition? You end up creating an instance of the class twice, which is not what you want. This can be solved by writing the method declaration as "synchronized static Singleton getInstance()" so no two threads can enter the method simultaneously.

  • Transaction propogation to java helper class

              Hi
              EJB A calls EJB B and EJB B does certain numbr of updates/insert. If one them
              fails everything rollsback in second EJB. This works fine.
              But instead of EJB B being an EJB the initial design was a regular java helper
              class. EJB A creates a new instance of this java class and calls a method on this
              class. The EJB A is set to be transactional (Required). The java class get a DB
              connection from TX datasource and does the same operation as EJB B that I described
              above. I tried to throw an exception to the EJB A and catching the Exception did
              a setRollbackOnly() in EJB A and the transaction does not rollback. I was under
              the impression that even if DB operations are done in a java class they are still
              under the same transaction and thus container is still under control of it if
              it is a container managed transaction. it does not look like it is teh case.
              Is there any requirement that DB connection obtained /operation made need to be
              inside the EJB method itself and not in the java helper class. Does this means
              that the transaction gets suspended on the duration of execution of the java helper
              class. I was under the impression that they are all under the same transaction
              context and it applies to that as well. Any help on this is greatly appreciated.
              

    Well, that's the only way. The container has to start the transaction in its
              invocation wrapper for CMT EJBs and then terminate the transaction (commit or
              rollback) after the method has exited (either normally or by throwing an
              exception). Anything that happens inside the call to the business method is in
              the transaction...
              --dejan
              Toad wrote:
              > That's good to know but somewhat surprising.
              >
              > "Deyan D. Bektchiev" <[email protected]> wrote in message
              > news:[email protected]...
              > > The transaction is associate with the thread that the EJB method executes
              > in so
              > > any calls in the same threads are part of the transaction.
              > > So even if you have a separate class that functions as a connection
              > factory (in
              > > the end getting the connections from a TX datasource) those connections
              > still
              > > would be part of the transaction.
              > >
              > > You can test that if you do
              > > System.out.println(weblogic.transaction.TxHelper.getTransaction()) and you
              > > should see the current transaction.
              > >
              > >
              > > --dejan
              > >
              > > Toad wrote:
              > >
              > > > I'm thinking the key to the failure to rollback is that the helper bean
              > > > "gets a connection" which is effectively stepping outside the confines
              > of
              > > > your CMP model. How would the container know that you hand-carved a
              > > > connection or even a set of connections and executed several
              > transactions
              > > > independently? That would be no mean feat if it wasn't specifically
              > designed
              > > > in.
              > > >
              > > > "Priya Vasudevan" <[email protected]> wrote in message
              > > > news:[email protected]...
              > > > >
              > > > > Hi
              > > > >
              > > > > EJB A calls EJB B and EJB B does certain numbr of updates/insert. If
              > one
              > > > them
              > > > > fails everything rollsback in second EJB. This works fine.
              > > > >
              > > > > But instead of EJB B being an EJB the initial design was a regular
              > java
              > > > helper
              > > > > class. EJB A creates a new instance of this java class and calls a
              > method
              > > > on this
              > > > > class. The EJB A is set to be transactional (Required). The java class
              > get
              > > > a DB
              > > > > connection from TX datasource and does the same operation as EJB B
              > that I
              > > > described
              > > > > above. I tried to throw an exception to the EJB A and catching the
              > > > Exception did
              > > > > a setRollbackOnly() in EJB A and the transaction does not rollback. I
              > was
              > > > under
              > > > > the impression that even if DB operations are done in a java class
              > they
              > > > are still
              > > > > under the same transaction and thus container is still under control
              > of it
              > > > if
              > > > > it is a container managed transaction. it does not look like it is teh
              > > > case.
              > > > >
              > > > > Is there any requirement that DB connection obtained /operation made
              > need
              > > > to be
              > > > > inside the EJB method itself and not in the java helper class. Does
              > this
              > > > means
              > > > > that the transaction gets suspended on the duration of execution of
              > the
              > > > java helper
              > > > > class. I was under the impression that they are all under the same
              > > > transaction
              > > > > context and it applies to that as well. Any help on this is greatly
              > > > appreciated.
              > > > >
              > >
              

  • XSLT mapping with Java helper classes

    Hi,
    I'm trying to implement a XSLT mapping to convert my request to a specific soap request message format for this I'm calling some methods from a java helper class. I have imported the jar file into the archives. When I tried to test the interface it keeps complaing there is some exception but doesn't give me the exact error. Has any one called any java helper classes with in XSLT mapping, if so I would appreciate if you could help me with this. Here is the code from xsl.
    <wsse:Security soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"   xmlns:UserToken="java:com.company.test.mapping.UserTokenMap">
    <wsse:UsernameToken>
        <wsse:Username xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
          <xsl:value-of select="UserToken:getUsername()"/>
        </wsse:Username>
        <wsse:Password wsse:Type="wsse:PasswordDigest" xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getPasswordDigest()"/>
        </wsse:Password>
        <wsse:Nonce xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getNonce()"/>
        </wsse:Nonce>
        <wsu:Created xsi:type="soapenc:string" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getCreateDate()"/>
    </wsu:Created>
    </wsse:UsernameToken>
    </wsse:Security>
    Thanks,
    Joe

    Hi,
    I'm getting following exception when I refer to the java class with in my XSLT mapping. Any one encountered the same problem.
    com.sap.engine.services.ejb.exceptions.BaseRemoteException:
    Exception in method transform.
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:218)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
         at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native
    Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.lang.UnsupportedClassVersionError:
    com/earthlink/xi/mapping/UserTokenMap (Unsupported
    major.minor version 49.0)
         at java.lang.ClassLoader.defineClass0(Native
    Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
         at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33)
         at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:69)
         at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:56)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:43)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:51)
         at com.sap.engine.lib.xsl.xslt.XSLValueOf.process(XSLValueOf.java:76)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:463)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:431)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:394)
         at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:398)
         at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:240)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepSequenceMapping.execute(RepSequenceMapping.java:54)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80)
         at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107)
         at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127)
         at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:167)
         ... 10 more
    ; nested exception is:
         java.lang.UnsupportedClassVersionError:
    com/earthlink/xi/mapping/UserTokenMap (Unsupported
    major.minor version 49.0)

  • Weblogic 10.3.2 EJB3 Local Interface in POJO/Helper classes

    Hi,
    I have a jar file containing all EJB's in application & some Helper classes. I want to access Local interfaces of EJBs in those helper classes. Is there any way I can do it? I've gone through Maxence Button & Jay SenSharma 's blogs about accessing Local interface. but it doesn't help. May be these two guys can help me more here.. My requirement is very simple. Just to access local interface in POJO/Helper classes that are in same JAR file as EJB's. I can't get reference with @EJB class level annotation as Helper classes are called independently from MBean services.. not from any EJB or Servlert.
    Please if anyone can tell me how do I get reference of local interfaces, that would be really good.
    my environment is
    Weblogic 10.3.2
    EJB3
    Regards,
    Prasad

    Hi,
    Just check ...If you want something like mentioned in the below Link with a complete Example:
    [http://jaysensharma.wordpress.com/2009/08/16/weblogic-10-3-ejb3-local-lookup-sample/|http://jaysensharma.wordpress.com/2009/08/16/weblogic-10-3-ejb3-local-lookup-sample/]
    Regards
    Jay SenSharma

  • Why use helper classes?

    I am confused about the purpose of helper classes when using EJB's. Is the idea simply to make the code more maintainable? To separate data access code from the business logic? To aid the reuse of code? Why should I choose to use a helper class rather than creating a new EJB to do the job?
    I have been unable to find any comprehensive articles, and am a bit confused!
    Thanks in advance.

    - split out code into distinct functional models
    - split out code that can be reused effectively elsewhere
    - wrap objects that need to be passed to other modules as a whole
    - performance (EJBs are slow compared to standard beans)
    - keep code shorter (per file/method) so it's easier to read and maintain
    etc. etc.

  • Replication of utility/helper classes in JAR/WAR.

    Hello folks,
    I have recently learned the class loader hierarchy that is employed in
    the WebLogic server. Previously, I was including the local component
    interfaces of my EJBs in the EJB JAR file as well as the web
    application WAR file. However, since the EJB class loader is the
    superclass of the WAR class loaders, the WAR class loader can see all
    classes in its level as well as the level above it (the EJB class
    loader and system class loader). Therefore, I removed the Local
    component interfaces from the WAR file, and the system works fine.
    However, I have various utility/helper classes that are in the EJB JAR
    file as well as the WAR file. Is it safe to remove them from the WAR
    file? Is there any need to duplicate classes in the JAR/WAR file if
    they are packaged together as an EAR file? Any input is highly
    appreciated.
    Best regards,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669

    No, your helper classes will also be visible to the war class loader.
    You might also consider packaging your helper classes in a separate jar
    file. Then add a manifest class-path entry in your ejb.jar and your
    web.war that references the utility jar file(s). This should work on
    any J2EE server.
    -- Rob
    Ryan LeCompte wrote:
    Hello folks,
    I have recently learned the class loader hierarchy that is employed in
    the WebLogic server. Previously, I was including the local component
    interfaces of my EJBs in the EJB JAR file as well as the web
    application WAR file. However, since the EJB class loader is the
    superclass of the WAR class loaders, the WAR class loader can see all
    classes in its level as well as the level above it (the EJB class
    loader and system class loader). Therefore, I removed the Local
    component interfaces from the WAR file, and the system works fine.
    However, I have various utility/helper classes that are in the EJB JAR
    file as well as the WAR file. Is it safe to remove them from the WAR
    file? Is there any need to duplicate classes in the JAR/WAR file if
    they are packaged together as an EAR file? Any input is highly
    appreciated.
    Best regards,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669

  • Helper Classes

    Hi,
    going through the J2EE Tutorial you'll read on page 76 that Helper Classes "... must reside in the EJB JAR file that contains the enterprise bean class".
    Now, when deploying the cart example, the BookException class is included in both EJB JAR and Client JAR files.
    I would like to understand this construction. Can you help me?
    TIA
    Ivo

    Hi Iwo,
    The reason why the BookException is placed both in the EJB Jar and in the Client Jar is that both the server and the client must know the Exception. Basically you can devide your bean into three parts:
    Remote interface, which is known both by the client and the server.
    Home interface, do.
    EJB class, which only the server knows.
    When an exception is declared thrown at an interface, then the Exception must be included beside the interface otherwise a ClassNotFoundException will be thrown.
    Second, the reason why the helper classes must be included in the EJB jar is that the enterterprise bean is using the classes. If you do not include the Helper classes the bean will not be able to instantiate the Helper classes and it will not work.
    Hope this information will be helpful to you.
    Regards,
    Jess

  • How can Client get a ejb remoteinterface class through ejbhomeinterface?

    HI,I've got ejbhomeinterface class(ejbhomeinterface class is on my local machine),How can i get ejb remoteinterface class(it is on remote app server) ? I've tried
    getEJBMetaData() method, but throw class not found exception,pls help me,thank you very much!!
    Object ejbObj = null;
    Class remoteClass = null;
    EJBHome aHome = null;
    try{
    aHome = (EJBHome) javax.rmi.PortableRemoteObject.narrow(aHome, EJBHome.class);
    EJBMetaData metaData = aHome.getEJBMetaData();
    // Class homeClass = metaData.getHomeInterfaceClass();
    aHome = metaData.getEJBHome();
    remoteClass = metaData.getRemoteInterfaceClass();
    //following code i want use remoteClass invoke remote ejb mothod
    }catch(Exception e)

    may be you need create InitialContext first, than from InitialContext lookup Home interface. And than using home.create() get RemoteInterface and use it.

Maybe you are looking for

  • XMl Publisher with Tools 8.48.08

    Hi All, We're currently using XMLP for generating custom reports in T&E FSCM 8.9... The requirement is that once the Report(PDF) is generated, the AE should mail that to the appropriate Employee. We're generating reports using the Bursting Functional

  • Pairing iphone to macbook pro

    my bluetooth for connecting my iphone 5c to my macbook pro is not working, it ends up saying to make sure network is enabled, which ive been looking everywhere and it seems like it is. I keep trying to pair, once i do I am able to get the code to sho

  • I can't register Quicktime Pro with Quicktime 7

    I am having a problem registering Quicktime Pro, in order to upgrade from Quicktime 7.  I have purchased the software and have typed reg name and code properly but it won't send after I typed it in.  Any help?

  • External sounds quit working

    I have reseached this and find that many have asked questions about sounds on their Ipod touch.  My 8G external sound has quitl.  I just downloaded the latest update and now I have no sound when I type, unlock or play games.  I do have sound using he

  • Out of disk space for Oracle 11i with Linux as OS

    i want to add additional space for my server, currently i have (3) 36gb harddisk on raid 5 which add up to 108gb but since i am ran out of space for my data, i planned to add (1) 146gb though i can add 3 disk as i have 3 slots available, wont there b