ClassCastException using DestinationService from an EJB

Good morning,
I am running NetWeaver 2004S SP5, and am attempting to make a call to the destination service from within a message-driven bean's onMessage() method.  I can access JNDI and obtain the object returned by doing a JNDI lookup on DestinationService.JNDI_KEY, but when I cast that value to the DestinationService class, I get a ClassCastException.
I have a similar command-line client test program that makes the same call.  It can connect to the destination service and query the named HTTP destination  just fine.
The code I'm using is:
--- begin code snippet ---
DestinationService dstService;
try {
     InitialContext jndiCtx = new InitialContext();
     dstService = (DestinationService)jndiCtx.lookup(DestinationService.JNDI_KEY);
     HTTPDestination dest =
(HTTPDestination)dstService.getDestination("HTTP", "OMSCBUrl");
     urlString = dest.getUrl();
     _logger.logInfo("Retrieved URL(" + urlString + ") from the OMSCB HTTP Destination OMSCBUrl");
} catch (RemoteException re) {
     _logger.logInfo("Unable to contact the destination service : " + re);
} catch (NamingException ne) {
     _logger.logInfo("Unable to contact the JNDI service : " + ne);
} catch (DestinationException de) {
     _logger.logInfo("Unable to obtain the OMSCB HTTP Destination " + OMSCB_DESTINATION_NAME + " : " + de);
--- end code snippet ---
When I first got the ClassCastException, I had assumed it was from the line where I get the destination and cast it to an HTTPDestination.  It turns out, though, that I was wrong, and the cast error actually happens in casting the DestinationService.
This class is in an EJB DC project, and I have checked my DC dependencies to make sure that I'm including the com.sap.exception, security.class, and tc/sec/destinations/interface DCs as Used DCs.  I have also verified that the corresponding EAR project has those three libraries included as references in the application-j2ee-engine.xml.  Before I had set those references, I was getting an error on deployment, but now the class deploys just fine.
I did notice (both through looking at the JNDI registry in Visual Administrator and by examining the class of the object returned by the JNDI lookup) that the object returned by the JNDI lookup is a proxy object for a P4 binding stub.  I guess that's an RMI-accessible object?  I was wondering if I was missing a reference to the class that contains the binding stub.
The JNDI values for the tcsecdestinations~service object are:
[Class Name]: $Proxy111
[Object Value]: RMI_P4:Dynamic Stub:com.sap.security.core.server.destinations.service.DestinationServiceImpl@3b6dbd
Anyway, I'm stumped.  Any help would be greatly appreciated.
Thanks,
- Bill

Hi Vinoth,
Thanks for the reply.  Unfortunately, I've already looked at it, and it did not solve my problem.  I had gotten the sample code from there, but it didn't help with the runtime ClassCastException.
However, I was able to resolve the problem.  It turns out that, in additon to the three library references in the application-j2ee-engine.xml, you need to add a reference to the tcsecdestinations~service service.  Once you add that and redeploy, the ClassCastException goes away.
I believe that the problem was caused by JNDI returning a proxy object to an unresolvable class.
Hope that helps someone else,
- Bill

Similar Messages

  • ClassCastException using EJB from a service

    Hi all,
    I developed a DeployService and currently I'm getting a ClassCastException while accessing the a EJB.
    I put the lookup within a delegate which is also be used from a webDynpro application. With the WebDynpro App everything work properly, but if I call the delegate from the service a SAPClassCastException I thrown, when I cast the object to the home interface.
    The coding is as follows:
                   Properties props = new Properties();
                   props.put(Context.PROVIDER_URL,"localhost:50004");
                   props.put(Context.INITIAL_CONTEXT_FACTORY,
                   "com.sap.engine.services.jndi.InitialContextFactoryImpl");
                   context = new InitialContext(props);
                   Object obj = context.lookup(jndiName);
                   EJBHome ejb = EJBHomeFactory.getInstance().lookup(jndiName, ComponentHome.class);
                   ComponentHome componentHome = (ComponentHome)ejb;
    Thanks a lot for the help.
    Falk

    Hi Falk,
    Hey just tell me that what is the EJBHome and ComponentHome and EJBHomeFactory in your coding.....
    You can try the following code for the same.
    Object obj =(Object) jndicontext.lookup("<Your JNDI name>");
    TestEJBHome home = (TestEJBHome) javax.rmi.PortableRemoteObject.narrow(
                   obj,
                   TestEJBHome.class);
    TestEJB hello = home.create();
    Here, TestEJBHome is your Home interface of the EJB and TestEJB is your remote interface. Now you can use hello object to call your business methods of EJB.
    Regards,
    Bhavik

  • ClassCastException when I access an EJB from a remote EJB in WL 8.1

    I am using WebLogic 8.1 and am trying to lookup the home interface for an EJB (_ejbRemote_)
    from another EJB (_ejbCurrent_). They are deployed in seperate EARs. When I bundle
    the home and remote interfaces for ejbRemote in the EAR file that ejbCurrent
    is deployed in, everything works fine. But I need to be able to configure ejbRemote
    at run time and my customers don't want to have to bundle their classes in my
    EAR. So I invoke a custom classloader (of type java.net.URLClassLoader) that will
    load the home and remote interface classes for ejbRemote from a configurable
    location at runtime. This finds the classes no problem, and the InitialContext.lookup()
    returns a stub, but I get a 'java.lang.ClassCastException: Cannot narrow remote
    object' error when I call PortableRemoteObject.narrow(home, homeClass);
    The code looks like:
    // Assume EJBHomeStr = "com.foo.TestHome" in this case
    // Load the home interface class. This works.
    Class homeClass = urlClassLoader.loadClass(EJBHomeStr);
    // Lookup the home interface. This works.
    Object lookedUpHomeObject = initialContext.lookup(JNDIName);
    // This fails.
    Object homeObject = PortableRemoteObject.narrow(lookedUpHomeObject, homeClass);
    And the weblogic error looks like
    ... ; nested exception is:
    java.lang.ClassCastException: Cannot narrow remote object to com.foo.TestHome
    at weblogic.iiop.PortableRemoteObjectDelegateImpl.narrow(PortableRemoteO
    bjectDelegateImpl.java:219)
    at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:134)
    at ...[the rest is just my application code stack...]
    When I log the ClassLoaders for the affected objects, using getClass().getClassLoader(),
    I get:
    <snippet from log follows>
    getClass().getClassLoader(): weblogic.utils.classloaders.GenericClassLoader@667da1
    finder:
    weblogic.utils.classloaders.MultiClassFinder@db9199 annotation: myEJBApp@
    homeClass.getName(): com.foo.TestHome classloader = java.net.URLClassLoader@4f1707
    lookedUpHomeObject.getClass().getName(): com.foo.Test_EJB_kx82zy_HomeImpl_810_WLStub
    classloader = weblogic.utils.classloaders.GenericClassLoader@667da1
    finder: weblogic.utils.classloaders.MultiClassFinder@db9199 annotation: myEJBApp@
    <end snippet from log>
    So it appears that since the looked up Stub was loaded by the WebLogic classloader
    and the actual Home class was loaded by my URLClassLoader, the narrow() can't
    reconcile the two. I have tried both rmic and the Weblogic appc command to pre-generate
    the stubs, which I put in the same JAR as my home and remote interface classes
    and load with my custom classloader. But the standard stub (generated by either
    rmic or appc) is named TestHomeStub.class and Weblogic is ignoring those and
    making a class with the name Test_EJB_kx82zy_HomeImpl_810_WLStub, as shown above.
    I have also tried to put the remote interface classes and stubs in the System
    classpath using the -classpath option when I start WebLogic, but same result.
    The question is, Is there a way in WebLogic to communicate with a remote EJB in
    a seperate EAR without bundling anything about that remote EAR in my EAR? Or is
    there something I've missed? I need to keep my application J2EE compliant, meaning
    I can't hardcode any AppServer-specific code in my application.
    Thanks.

    Hi Jon,
    Glad to hear that.
    Regards,
    Slava Imeshev
    "Jon Sutula" <[email protected]> wrote in message news:[email protected]...
    >
    I fixed the problem. It turns out I didn't need to use a custom classloader at
    all, I just use Reflection directly on the classes ruturned from my JNDI lookup.
    So when I lookup the home class, I don't need to narrow or cast it, I just use
    Reflection to invoke the "create" method. Then I use the object that I get from
    create and directly invoke whatever method on it I need, again using Reflection.
    And that works.
    "Slava Imeshev" <[email protected]> wrote:
    Hi Jon,
    The problem is, this class is not available for the classloader
    running your "main code".
    You can try to hack the into the thread context class loader:
    Thread thread = Thread.currentThread();
    ContextClassLoader originalClassLoader = thread.getContextClassLoader();
    try {
    YourURLClassloader yourClassLoader = new
    YourURLClassloader(originalClassLoader);
    thread.setContextClassLoader(yourClassLoader );
    // your code goes here
    } finally {
    // Don't forget to restore it !!!
    thread.setContextClassLoader(originalClassLoader);
    Be very cautious. If you fail to restore the original context class loader,
    you will likely have to restart the server.
    Hope this helps.
    Regards,
    Slava Imeshev
    "Jon Sutula" <[email protected]> wrote in message news:[email protected]...
    I am using WebLogic 8.1 and am trying to lookup the home interfacefor an EJB (_ejbRemote_)
    from another EJB (_ejbCurrent_). They are deployed in seperate EARs.When I bundle
    the home and remote interfaces for ejbRemote in the EAR file that
    ejbCurrent
    is deployed in, everything works fine. But I need to be able to configure
    ejbRemote
    at run time and my customers don't want to have to bundle their classesin my
    EAR. So I invoke a custom classloader (of type java.net.URLClassLoader)that will
    load the home and remote interface classes for ejbRemote from a configurable
    location at runtime. This finds the classes no problem, and the InitialContext.lookup()
    returns a stub, but I get a 'java.lang.ClassCastException: Cannot narrowremote
    object' error when I call PortableRemoteObject.narrow(home, homeClass);
    The code looks like:
    // Assume EJBHomeStr = "com.foo.TestHome" in this case
    // Load the home interface class. This works.
    Class homeClass = urlClassLoader.loadClass(EJBHomeStr);
    // Lookup the home interface. This works.
    Object lookedUpHomeObject = initialContext.lookup(JNDIName);
    // This fails.
    Object homeObject = PortableRemoteObject.narrow(lookedUpHomeObject,homeClass);
    And the weblogic error looks like
    ... ; nested exception is:
    java.lang.ClassCastException: Cannot narrow remote object tocom.foo.TestHome
    at weblogic.iiop.PortableRemoteObjectDelegateImpl.narrow(PortableRemoteO
    bjectDelegateImpl.java:219)
    at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:134)
    at ...[the rest is just my application code stack...]
    When I log the ClassLoaders for the affected objects, using getClass().getClassLoader(),
    I get:
    <snippet from log follows>
    getClass().getClassLoader(): weblogic.utils.classloaders.GenericClassLoader@667da1
    finder:
    weblogic.utils.classloaders.MultiClassFinder@db9199 annotation: myEJBApp@
    homeClass.getName(): com.foo.TestHome classloader = java.net.URLClassLoader@4f1707
    lookedUpHomeObject.getClass().getName(): com.foo.Test_EJB_kx82zy_HomeImpl_810_WLStub
    classloader = weblogic.utils.classloaders.GenericClassLoader@667da1
    finder: weblogic.utils.classloaders.MultiClassFinder@db9199 annotation:myEJBApp@
    <end snippet from log>
    So it appears that since the looked up Stub was loaded by the WebLogicclassloader
    and the actual Home class was loaded by my URLClassLoader, the narrow()can't
    reconcile the two. I have tried both rmic and the Weblogic appc commandto pre-generate
    the stubs, which I put in the same JAR as my home and remote interfaceclasses
    and load with my custom classloader. But the standard stub (generatedby either
    rmic or appc) is named TestHomeStub.class and Weblogic is ignoringthose and
    making a class with the name Test_EJB_kx82zy_HomeImpl_810_WLStub, asshown above.
    I have also tried to put the remote interface classes and stubs inthe System
    classpath using the -classpath option when I start WebLogic, but sameresult.
    The question is, Is there a way in WebLogic to communicate with a remoteEJB in
    a seperate EAR without bundling anything about that remote EAR in myEAR? Or is
    there something I've missed? I need to keep my application J2EE compliant,meaning
    I can't hardcode any AppServer-specific code in my application.
    Thanks.

  • ClassCastException: You must use ResultSet from this driver!class webl

    Hi,
    I have configured the Connection pool and DataSources for SQLServer using inet-OPTA
    drivers.
    I am using the CachedRowSet implementation from inet and it seems to bomb out
    with the following error stack trace:
    STACK TRACE:
    java.lang.ClassCastException: You must use ResultSet from this driver!class webl
    ogic.jdbc.rmi.SerialResultSet
    at com.inet.tds.CachedRowSet.a(Unknown Source)
    at com.inet.tds.CachedRowSet.populate(Unknown Source)
    Any ideas of what is causing this problem ?
    Is it that i cannot use the CachedRowSet implementation from inet.
    If that is the case we have lot of code that uses this and i will have to change
    a lot.
    Any help is appreciated
    Thanks
    Venu

    The code is in one of the utility classes that is in the classpath and this utility
    class is used by the Stateless session EJB that i deployed in the WebLogic AppServer.
    As i understand, Weblogic 8.1 is out and i will try running on it.
    Thanks
    Venu
    Joseph Weinstein <[email protected]_this> wrote:
    >
    >
    venu wrote:
    Hi,
    I am running WebLogic version 7.0.2
    Do you have any idea when the 8.1 will be available (i believe it isstill in
    beta)
    I'll find out. Do answer my other question: Where is this code running
    that gets the exception?
    Joe
    - Srini
    Joseph Weinstein <[email protected]_this> wrote:
    venu wrote:
    Hi,
    I have configured the Connection pool and DataSources for SQLServerusing inet-OPTA
    drivers.
    I am using the CachedRowSet implementation from inet and it seems
    to
    bomb out
    with the following error stack trace:
    STACK TRACE:
    java.lang.ClassCastException: You must use ResultSet from this driver!classwebl
    ogic.jdbc.rmi.SerialResultSet
    at com.inet.tds.CachedRowSet.a(Unknown Source)
    at com.inet.tds.CachedRowSet.populate(Unknown Source)
    Any ideas of what is causing this problem ?
    Is it that i cannot use the CachedRowSet implementation from inet.
    If that is the case we have lot of code that uses this and i will
    have
    to change
    a lot.
    Any help is appreciated
    Thanks
    VenuHi. What version of the server are you using. This problem will goaway
    for 8.1.
    We currently wrap all JDBC objects from pooled drivers, to maintaincontrol
    over
    the pooled connection. Where is this code running that gets the exception.
    It seems that Inet's rowset implementation needs to cast the resultset
    it gets
    to be inet's result set object, in order to make some non-standardmethod
    calls.
    Joe

  • ClassCastException by using Local Interface of EJB in other, but local EAR

    Hi,
    I get a ClassCastException if I try to cast the EJSWrapper-Class returned from local EJB Lookup to the interface it implements.
    The environment I use is WSADIE 5.1.1 with integrated Testenvironment.
    I have defined two EARs. One with a Web-Application and one wich contains the EJB to call from the WebApp. Both run in the same appserver instance wich means both run in the same JVM and i should be able to use Local Interface of the EJB.
    The EJB should use Libraries from the Server Environment while the WebApp uses newer Libs than the Server Environment offers(eg axis-rpc,wsdl4j,saaj). The Classloader-Policy of the EAR with the WebApp is set to PARENT_LAST while the Classloader-Policy of the EAR with the EJB is set to PARENT_FIRST.
    I do a Lookup by using an EJB-Local-Reference. The returned object is an EJSLocalStatelessHome-Object, wich implements my LocalEJBInterface. But if i try to cast to Object to this interface a ClassCastException occurs.
    The Classes of the EJB are packaged as follows:
    EJBName.jar contains the EJB-Impl class, the Serverside Implementations for RMI/IIOP interaction an EJSWrapper classes. This jar is packaged with the EJB-EAR.
    EJBClient.jar contains the Local- and Remote-Interface classes and the Stub-classes for EJBHome and EJB-Implementation. This jar is packaged wich both EARs, because of the interfaces, wich are needed in both projects.
    The Classloader of the EAR with the WebApp has no access the jar with the EJB-Impl, the generated Ties- and EJSWrapperclasses because it is located in only the EJB-EAR. But the interface-class is contained in the WebApp-EAR as described above.
    The exact Exception is as follows:
    java.lang.ClassCastException: com/ibm/wsrf/EJSLocalStatelessBPEAdapterHome_c2546ef5 incompatible with com/ibm/wsrf/BPEAdapterLocalHome
    java.lang.Throwable.<init>(Throwable.java)
    java.lang.Throwable.<init>(Throwable.java)
    java.lang.ClassCastException.<init>(ClassCastException.java:53)
    org.tempuri.ResourceDiscoveryService.DiscoverySoapHttpBindingImpl.getResourceEPR(DiscoverySoapHttpBindingImpl.java)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java)
    ... The EJSLocalStatelessBPEAdapterHome_c2546ef5 implements the BPEAdapterLocalHome interface.
    Please, can anyone give me a hint how to solve this problem?
    Thanks in advance, Michael

    Problem solved!
    The different EAR contained each an own copy of the jar with the local and remote interfaces of the EJB. The Problem is caused by the separate classloaders of the EARs in an application server. Each EAR Classloader loads his own version of the interface classes. Is the same class loaded by different classloaders, the JVM handles this classes as different classes. An example if you create an instance of a class in one classloader and try to reference the created instance by the same class from another classloader, the association will fail, because of different classloaders in the same JVM.
    The solution in an application server where you have deployed two projects and want to use local interfaces is, store the interfaces(and only the interfaces) in an directory, where it is found by the parent classloader of the EAR classloaders. Remove the Jar with the interface from the EARs. The EAR Classloaders will then search in the their parent classloader for the interfaces. The interfaces will be loaded by the parent classloader and will recognized as compatible by the JVM.
    Greetings, hope this helps help others!
    Michael

  • Using a JMS control from an EJB project

    I'm developing an EJB in Workshop and my EJB is expected to send messages to a JMS queue. How can I use a JMS control (JCX) from my EJB?

    If you're talking about making an executable jar file that will work with the bouncycastle jar:
    (1) Make a jar as usual with your classes in it
    (2) Include a manifest file that specifies the class containing your app's main() method
    (3) In that same manifest, make sure that the bouncycastle jar is included in the Class-Path
    Details are in Sun's Tutorial: [Packaging Programs in JAR Files|http://java.sun.com/docs/books/tutorial/deployment/jar/index.html] and specifically [http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html|http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html] for the business of having your app recognise the other jar file's classes at runtime.
    Doubtless this can all be done from the comfort of your IDE, but I don't know how. There will be documentation on NetBeans site I suppose.
    Edited by: pbrockway2 on Jul 23, 2008 8:59 PM

  • How can Transformation control be used from an EJB Project?

    I want to perform some data transformation directly from within the EJBs. Can Transformation
    control be used from an EJB Project? How?

    William, thanks for the reply.
    I bought this drive module from a private party and was surprised to find out what it was. At first I thought it was just Apple's way of protecting the drive during shipping.
    I own it and will probably have an hard time returning it. It was advertised as a 750GB Seagate SATA ES hard drive. The price was very reasonable, especially if I was buying it as a Drive Module. So if I can sell it great, if not I want to use the drive.
    How can I tell if this is a Xserve RAID module or Drive Module? The box just says Apple Drive Module no mention of RAID. The Apple model # is MA504G/A, and it say Apple Drive Module 750GB SATA (Intel). On the hard drive itself it says Seagate Barracuda ES 750Gbytes.
    If this is just the Drive Module and I can use it in my Mac Pro, does it just unplug or unscrew out of the housing it's in and plug into the Mac Pro like a normal drive? And then can it be used like a normal drive to set up a RAID in the Mac Pro with a duplicate bare drive? It's sealed and I don't want to open it until I know I can use it.
    Sorry for all the questions but I know enough to be dangerous and this this has me stumped.

  • How to use Tuxedo's services from an EJB: Jolt x JET ?

    Hi.
    Can anyone tell me if an EJB MUST use JET (instead Jolt) to access Tuxedo services
    Suppose the following case:
    We have a client using JNDI service to obtain an EJB.
    In my client i invoke the appropriate methods to create a jolt session and to
    start a jolt transaction. My EJB Bean only call Tuxedo services (using Jolt).
    Will this application work ? Will EJB code use the transaction created by the
    client code ? Will a transaction context exist ?
    Thanks in advance.

    Hi Daniel,
    If you mean WebLogic Server 5.1 by WL 5.1 (instead of WebLogic Enterprise), then
    yes, you need to use Jolt until you upgrade to a later release of WebLogic Server.
    WTC wasn't fully supported until WebLogic Server 6.1 and later.
    The transaction context of the container Jolt is being used in is not extended
    to the Tuxedo system. Jolt can be used to start a new and separate transaction
    in Tuxedo, but that transaction and the containers current transaction will not
    be coordinated.
    I'm not sure what you mean when you say:
    The transaction management when using Jolt is realized for Jolt API.
    There is no relantionship between Jolt transactions and Tuxedo transactions.
    Is this rightThe transaction management when using Jolt is transaction management of
    the Tuxedo system you are talking to. Jolt is a client side API that uses a
    delegated model for transactions. So a transaction started with Jolt starts
    a transaction in Tuxedo, but does not affect the transaction context of the
    environment the client, i.e., the place where the Jolt call was made. So if
    you are using Jolt inside an EJB hosted in the EJB container of WebLogic
    Server, the Jolt calls will have no impact or effect on the transaction state
    of the EJB.
    Regards,
    Todd
    "Daniel" <[email protected]> wrote:
    >
    Ok.
    We have EJBs running in Weblogic and they are using Tuxedo services.
    We have used Jolt instead WTC because we are running WL 5.1. Can i
    use WTC with WL 5.1 ?
    The transaction management when using Jolt is realized for Jolt API.
    There is
    no
    relantionship between Jolt transactions and Tuxedo transactions. Is this
    right
    Thanks in advance.
    "Todd Little" <[email protected]> wrote:
    "Daniel" <[email protected]> wrote:
    Hi.
    Can anyone tell me if an EJB MUST use JET (instead Jolt) to access
    Tuxedo
    services
    ? You can use either Jolt or preferably use WTC and JATMI.
    Suppose the following case:
    We have a client using JNDI service to obtain an EJB.
    In my client i invoke the appropriate methods to create a jolt session
    and to
    start a jolt transaction. My EJB Bean only call Tuxedo services (using
    Jolt).Why is the client creating a Jolt session and transaction? They will
    not be associated
    with the EJB's execution. The client's Jolt context is not propogated
    to the
    EJB. Can you explain what it is you want to do? What do you want included
    in
    the transaction?
    Will this application work ? Will EJB code use the transaction created
    by the
    client code ? Will a transaction context exist ?Well I suppose it depends upon what you mean by work. It comes down
    to what are
    you trying to accomplish. The client is a WLS client? Is the EJB a
    client of
    some Tuxedo service? If those are both true, then you would be best
    served by
    controlling the transaction with the EJB's deployment descriptor and
    having the
    EJB use WTC to access Tuxedo. WTC will take of propagating any required
    transaction
    state to Tuxedo.
    Regards,
    Todd

  • Using JarSettings to generate EJB client jar, but supported classes missed

    Appreciated for any comments in advance.
    I am using @jarSetting to generate EJB client jar file from workshop 9.2. The remote method of EJB has one input parameter that is defined as an interface. The interface is included in client jar, but the implementation of this interface is not.
    Please advise how I can add the implementation of this interface to client jar?
    Best Regards,
    James

    Hi James,
    I believe the algorithm for creating the client jar is to simply inspect the EJB interfaces using reflection and to include all user defined classes and exceptions that are referenced by the interfaces. In your case, it sounds like a class is not being included because it is not directly referenced by one of the EJB interfaces.
    I think the client jar creation algorithm can be described as "best effort" and unfortunately, it does not always end up including all classes needed by the client. I would recommend you add the additional classes manually using the jar tool.
    - Matt

  • How can I look up DataSource from one EJB to the other EJB?

    Image that, I have 3 databases:
    DB1
    DB2
    DB3,
    And then, 03 DataSources is deployed in DS EJB, named DataSource1, DataSource2, DataSource3.
    In the other App EJB, I have Connection Management function, as follows:
    public Connection getConnection(databaseKey) {
    if (databaseKey.equals("DB1")){
    connection = remote.lookup("DataSource1");
    }else if (databaseKey.equals("DB2")){
    connection = remote.lookup("DataSource2");
    }else if (databaseKey.equals("DB3")){
    connection = remote.lookup("DataSource3");
    return connection;
    How can I access DataSource 1,2,3 from the other EJB? How to config EJB server for that?
    Thanks in advance!
    Now, I have the other App EJB. Some class will require one of the above DataSource from DS EJB through function getConnection(databaseKey){}

    I strongle suggest you to use a ServiceLocator for this . It will be very easy to identify.Go to the sun home page and look for a servicelocator pattern.You can even directly use that code for you.

  • How to call a CORBA Object in a 3rd Party ORB from a EJB

    Hello
    I found a few articles on the web how to call EJBs for example from C++.
    However, I want to do the inverse. I want to resolve an Object (implemented in C++, using OmniORB) via COS-Naming and invoke it from a EJB. I can write a simple Java Client which does this without a problem. But as soon as I try to do the same in EJB I get the following:
    [#|2004-11-09T10:48:16.848+0100|WARNING|sun-appserver-pe8.0.0_01|javax.enterprise.resource.corba._DEFAULT_.rpc.transport|_ThreadID=12;|"IOP00710209: (INTERNAL) Unable to create listener thread on the specific port"
    org.omg.CORBA.INTERNAL: vmcid: SUN minor code: 209 completed: No
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.createListenerFailed(ORBUtilSystemException.java:3142)
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.createListenerFailed(ORBUtilSystemException.java:3160)
    at com.sun.corba.ee.impl.legacy.connection.SocketFactoryAcceptorImpl.initialize(SocketFactoryAcceptorImpl.java:60)
    at com.sun.corba.ee.impl.transport.CorbaTransportManagerImpl.getAcceptors(CorbaTransportManagerImpl.java:190)
    at com.sun.corba.ee.impl.transport.CorbaTransportManagerImpl.addToIORTemplate(CorbaTransportManagerImpl.java:207)
    at com.sun.corba.ee.spi.oa.ObjectAdapterBase.initializeTemplate(ObjectAdapterBase.java:104)
    I think there is somehow a conflict because the SUN Appserver also uses CORBA. My Code looks like this:
    String[] a = null;
    Properties props = new Properties();
    final String CORBA_HOST = "arcos";
    final String ORB_INITIAL_PORT = "2809";
    props.put("org.omg.CORBA.ORBInitialPort", ORB_INITIAL_PORT);
    props.put("org.omg.CORBA.ORBInitialHost", CORBA_HOST);
    org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(a, props);
    So I thought this might be because there is already a ORB initialised. So I replaced the last line with
    org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init();
    Which should give me an ORB instance. However I get the following exception:
    [#|2004-11-09T11:51:59.206+0100|WARNING|sun-appserver-pe8.0.0_01|javax.enterprise.system.stream.err|_ThreadID=15;|
    org.omg.CORBA.NO_IMPLEMENT: vmcid: SUN minor code: 201 completed: No
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.genericNoImpl(ORBUtilSystemException.java:7085)
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.genericNoImpl(ORBUtilSystemException.java:7107)
    at com.sun.corba.ee.impl.orb.ORBSingleton.resolve_initial_references(ORBSingleton.java:311)
    at com.ascom.util.CorbaNaming.resolve(CorbaNaming.java:26)
    at com.ascom.fxm.FileManager.<init>(FileManager.java:46)
    at com.ascom.srv.file.web.FileImporterImpl.importFile(FileImporterImpl.java:146)
    Any ideas? Thank you very much in advance.
    Oliver Jaun

    Perhaps you could take a look at the following document and see if it meets your needs:
    http://java.sun.com/j2se/1.4.2/docs/guide/rmi-iiop/interop.html

  • Web Service from an EJB with an Java Bean: createSAXParseException

    Hi I am using Together to develop Web Services from an EJB+a Java Bean.
    I used the Trader Example, which includes an EJB + a Java Bean.
    Running the utility "ant" I get the following exception:
    "C:\bea\jdk131\jre\lib\rt.jar;C:\bea\jdk131\lib\rt.jar;c:\bea\wlserver6.1\lib\weblogic.jar;C:\Programme\Together5.5\lib\javax.jar;;"
    org.apache.tools.ant.Main
    WLS61: Error at line:6 col:12 ':' Already got a ':' in name
    WLS61:      at weblogic.xml.babel.baseparser.SAXElementFactory.createSAXParseException(SAXElementFactory.java:60)
    WLS61:      at weblogic.xml.babel.parsers.StreamParser.<init>(StreamParser.java:45)
    WLS61:      at weblogic.xml.babel.parsers.BabelXMLEventStream.startDocument(BabelXMLEventStream.java:28)
    WLS61:      at weblogic.soap.WebServiceProxy.getXMLStream(WebServiceProxy.java:600)
    WLS61:      at weblogic.soap.WebServiceProxy.getXMLStream(WebServiceProxy.java:577)
    WLS61:      at weblogic.soap.WebServiceProxy.getServiceFrom(WebServiceProxy.java:225)
    WLS61:      at weblogic.ant.taskdefs.ejb.WSGenHelper.writeClientJar(WSGenHelper.java:1125)
    WLS61:      at weblogic.ant.taskdefs.ejb.WSGenHelper.writeWSDL(WSGenHelper.java:1285)
    WLS61:      at weblogic.ant.taskdefs.ejb.WSGenHelper.saveDescriptors(WSGenHelper.java:1418)
    WLS61:      at weblogic.ant.taskdefs.ejb.WSGenHelper.output(WSGenHelper.java:1486)
    WLS61:      at weblogic.ant.taskdefs.ejb.WSGenHelper.doit(WSGenHelper.java:1520)
    WLS61:      at weblogic.ant.taskdefs.ejb.WSGen.execute(WSGen.java:93)
    WLS61:      at org.apache.tools.ant.Target.execute(Target.java:153)
    WLS61:      at org.apache.tools.ant.Project.runTarget(Project.java:898)
    WLS61:      at org.apache.tools.ant.Project.executeTarget(Project.java:536)
    WLS61:      at org.apache.tools.ant.Project.executeTargets(Project.java:510)
    WLS61:      at org.apache.tools.ant.Main.runBuild(Main.java:421)
    WLS61:      at org.apache.tools.ant.Main.main(Main.java:149)
    WLS61: Buildfile: build.xml
    WLS61:
    WLS61: wsgen:
    WLS61:
    WLS61: BUILD SUCCESSFUL
    WLS61:
    WLS61: Total time: 7 seconds
    WLS61: Finished with 19 Errors, 0 Warnings.

    Hi,
    try these links
    http://www.baigzeeshan.com/2010/11/creating-webservice-from-java-class-in.html
    http://www.baigzeeshan.com/2010/11/calling-webservice-in-oracle-adf-by.html
    Hope it help,
    Zeeshan

  • Using JNI with RMI/EJB.

    Hi,
    I am using JNI to interface with a c application.
    The problem is that c application is thread safe.
    Since i need to use this interface from RMI/EJB,
    multiple calls will be made simultaneosly on the
    c application.
    Will anyone tell me how do i handle this scenario?
    Thanks in Advance.
    Robin

    Is the ejb expect immediate result from the c application?
    If yes, I don't know. Perhaps you need to redesign your business logic so it will not expect immediate result from c.
    If no, then make a layer between the ejb and c. The layer would be message queuer application with JMS receiver. EJB will send JMS to the JMS receiver when it needs to execute c. You can queue the message so c application is executed without overlap. If the EJB expect the result from c, then the queuer can send it back using JMS.

  • Using swing to develop EJB project

    Hi, Folks
    I am using jbuilder7 to develop swing connect to ejb project, one requirement is that i should doing control with the editable table. That requirement make me to tied with JBuilder component JDBTable. However the development time would become remarkable long. does anybody have experience of using fancy swing and EJB in the same project?
    thansk in advance.

    forget to tell you I am using JDBTable already. the problem is that how
    could i serlize the dataset to EJB in a easy way? ok, you don't need to serialize your dataset to trasmit to server side. Class com.borland.dx.dataset.DataSetData implements Serializable interface already, so you can send your dataset to server and do not care about serialization. But what to do with this DataSet on server side is very interesting question ;). As for me, it's not very handly to pull out your data from Dataset on server side (DataSet "looks" like client-side class). But, of course, it's up to you.
    unfortunlly I should doing add, delete, edit from my table. So its
    pretty complex to deal with this sort of issue.Why complex? I don't think so. For example, you may set 2 buttons: "Set" and "Delete" under your Jtable view and just "to fish" data client entered in your Jtable string, pack this data in your own serializable model and send this data to server session facade. As for me that's very handly and fast. And there is no complexity...
    Regards.

  • URGENT::::use of multithreading in ejb

    hi
    I NEED TO USE MULTITHREADING IN EJB APPLICATION.
    THE SCENERIO IS LIKE THIS ...==
    SUPPOSE ONE USER HAS GOT MONEY IN 3 BANKS. SUPPOSE THE USER WANTS TO GET THE BALANCE OF
    ALL THE 3 BANK AND WANT THE SUMMATION.IN THIS SCENARION WE NEED TO START 3 THREAD .HOW IS IT POSSIBLE IN EJB.
    MY EMAIL ID IS
    [email protected]
    regds rupalim

    Hi,
    As per the ejb specification you are not supposed to manage threads explicitly from an ejb. I didn't follow the question in the right sense. However you can try to solve it by making a session bean for managing your business logic and from that session bean use entity bean for getting and setting data from database. Hope this will help you.
    bye
    [email protected]

Maybe you are looking for

  • How to change the status of Serial number

    Hi Experts, Would you please help in solving this problem. How to change the status of Serial number? I have material stock in a storage location: recieved from Intercompany through outbound delivery, when PGIed material document is created when I am

  • Trying to restore IPod to original settings- urgent! going on vacation!

    Hey everyone I really need your help. I have an Ipod Touch 2nd generation. My friend... who is a hardcore techie... did something "cough" to my iPod that I'd rather not mention on here. Anyways, he's on vacation.. and I accidently let my iPod die...

  • Fix for sudden Safari 4.0.4 vs. YouTube Crashes?

    I searched through existing posts, and while there's a lot about Safari stalling/crashing on YouTube, I haven't found a specific resolution for this problem. I upgraded to Snow Leopard 10.6.2 on my MPB a few weeks ago. Shortly after that, YouTube sta

  • DB Adapter to call PL/SQL procedure

    We are trying to evaluate BPEL and I am trying to do proof of concept passing some values to a database procedure. I have the following simple procedure: /* Program Name: BHPOC_PROC */ create or replace procedure BHPOC_PROC (P_INPUT_ID IN NUMBER, P_I

  • Preview opens grey windows

    Since installing Leopard, I can't access any .jpg via the preview application. A glimpse via space bar is OK, but opening the picture regularly is impossible. It does open the file, but the window is just grey. This is a real problem, since I access