Howto: portable bind, lookup remote + local beans (EJB3) to JNDI with WL 10

I struggle writing portable ejb3 applications with weblogic.
I have a JEE5 (EJB3) application using the standard and it works fine on JBoss and WebSphere.
Porting it to Weblogic (10.0) there are quite a lot of problems, mainly
in the area of JNDI lookups of EJBs.
So the issue is how to configure the JNDI-Names of local and remote beans (EJB3!)
in a portable way with Weblogic without making the application unportable.
The biggest problem is caused by the fact, that WL 10 does not bind the EJBs
to the JNDI-tree by default. The bound name would not really be important (JBoss and WebSphere
come up with a value that can easily be used for a generic lookup). Just any binding
would be fine.
So there has to be some extra step in order to get WL 10 binding a remote or local
bean into the JNDI tree. Unfortunately none of them works/is acceptable in an portable JEE app.
Idea1: Using the "mappedName" attribute (of @Stateless, @Stateful)
Well, this one is not portable as the documentation states:
[http://edocs.bea.com/wls/docs100/ejb30/annotations.html#wp1417411|http://edocs.bea.com/wls/docs100/ejb30/annotations.html#wp1417411]
Idea2: Using @weblogic.ejbgen.JndiName
Using weblogic's annotation JndiName also doesn't bind the bean to the given names:
@Stateless
@weblogic.ejbgen.JndiName(local="myapp/XBean/local",remote="myapp/XBean/remote")
public class XBean implements XLocal {
Besides this, that code would not be portable (as nobody wants an weblogic.jar within another application server).
Idea3: Using weblogic-ejb-jar.xml
Mapping a bean using the weblogic-ejb-jar.xml below, also doesn't work.
The bean is not bound to the given name "myapp/XBean/remote":
Exception in thread "main" javax.naming.NameNotFoundException:
Unable to resolve 'myapp.XBean.remote'. Resolved 'myapp.XBean' [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'myapp.XBean.remote'. Resolved 'myapp.XBean']; remaining name 'remote'
Looking at the JNDI tree, there is "something" bound to "myapp.XBean", but it is not the bean.
Doing a lookup with this name ("myapp/XBean" or "myapp.XBean"), gives this:
Exception in thread "main" java.lang.ClassCastException: weblogic.jndi.internal.WLContextImpl cannot be cast to test.server.XRemote
     at test.client.Client.main(Client.java:14)
Question 1) What is the preferred way to bind and lookup a remote bean in Weblogic 10?
Again: the goal is to use pure EJB3.
Question 2) What is the preferred way to bind and lookup a local bean in WL 10?
This lookup has to be done on the server in some "unmanaged" classes
where injection doesn't work.
If there is an unportable way to bind a local bean to jndi, it might do for the time.
The important thing would be, that there is no weblogic specific code within the application.
So, solving it using weblogic-xml files would be best.
This declaration
<local-jndi-name>myapp/XBean/local</local-jndi-name>
will come up with the same problems, I guess.
Here's the code. We want the local interface extending the remote interface,
so that the local beans can do all what the remote beans can do too.
XRemote.java
package test.server;
import javax.ejb.Remote;
@Remote
public interface XRemote {
String JNDI_NAME = "myapp/XBean/remote";
void doXRemote();
XLocal.java
package test.server;
import javax.ejb.Local;
@Local
public interface XLocal extends XRemote {
String JNDI_NAME = "myapp/XBean/local";
void doXLocal();
XBean.java
package test.server;
import javax.ejb.Stateless;
@Stateless
public class XBean implements XLocal {
@Override
public void doXLocal() {
System.out.println("doXLocal() called");
@Override
public void doXRemote() {
System.out.println("doXRemote() called");
weblogic-ejb-jar.xml
<weblogic-ejb-jar
xmlns="http://www.bea.com/ns/weblogic/10.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/10.0 http://www.bea.com/ns/weblogic/10.0/weblogic-ejb-jar.xsd">
<weblogic-enterprise-bean>
<ejb-name>XBean</ejb-name>
<jndi-name>myapp/XBean/remote</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
Client.java
package test.client;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import test.server.XRemote;
public class Client {
public static void main(String[] args) throws NamingException {
InitialContext context = getInitialContext();
XRemote xRemote = (XRemote) context.lookup(XRemote.JNDI_NAME);
xRemote.doXRemote();
private static InitialContext getInitialContext() throws NamingException {
Properties properties = new Properties();
properties.put(Context.PROVIDER_URL, "t3://localhost:7001");
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
properties.put(Context.SECURITY_PRINCIPAL, "weblogic");
properties.put(Context.SECURITY_CREDENTIALS, "weblogic");
return new InitialContext(properties);
}

Hi,
about how to specify jndi name of remote ejb, please refer to this link: http://forums.oracle.com/forums/thread.jspa?threadID=800314&tstart=1
please note @JNDIName isn't an EJBGen annotation. its package name is weblogic.javaee.
So far, based on the EJB spec, local ejb will not be bound to global JNDI. EJB3.1 specification is trying to specify the portable JNDI names including local EJBs, but it isn't published yet.
local EJB is used within one application and ejb reference is used to lookup the local EJB. please refer to EJB specification about how to declare an EJB local reference. once it is declared, it can be looked up from the java:comp\env JNDI namespace.
But, if the local client of the EJB isn't a JavaEE component, there won't be any declaration of ejb-local-ref. You may want to try remote access to the EJB from the non-JavaEE client.

Similar Messages

  • Local bean access via JNDI returns a proxy object?

    Hi,
    I am using JBoss, and trying to access a local bean from another bean. One would think simple enough no, with the following code adequate:
    Context initialContext = new InitialContext();
    CartHome cartHome = (CartHome) initialContext.lookup(&#8220;java:comp/env/ejb/cart&#8221;);Which returns the home interface, right, but no in fact a $Proxy77 is returned. Can anyone tell me why this is? Or a solution please.
    Thanks in advance.
    Mike

    Thanks, it works. But do you think calling the executeQuery from a backing bean is against any ADF related coding standards? Should that call be only in Application Module? Please comment.

  • Binding parameters in backing bean

    hey,
    i have a function func1(String str) with a parameter
    in my bb i use code to invoke the function:
    BindingContainer bindings = getBindings();
    OperationBinding operationBinding = bindings.getOperationBinding("func1");
    operationBinding.execute();
    how can i bind parameter in backing bean?

    hi user,
    + with,
    here some
    your bean
      public class Login  {
        private RichInputText it2;
        private RichInputText it1;
    public void setIt2(RichInputText it2) {
            this.it2 = it2;
        public RichInputText getIt2() {
            return it2;
        public void setIt1(RichInputText it1) {
                 this.it1 = it1;
        public RichInputText getIt1() {
                   return it1;
    BindingContainer bindings = getBindings();
            OperationBinding operationBinding = bindings.getOperationBinding("checkLoginCredentials1");
            operationBinding.getParamsMap().put("p_user", it2);    p_user - bind var
            operationBinding.getParamsMap().put("p_pwd", it1);    p_pwd - bind var
    } your method in am:
        public String checkLoginCredentials1(String p_user, String p_pwd) {
            /*set the bind variable value*/
            vo.setNamedWhereClauseParam("p_user", p_user.toUpperCase());
            vo.setNamedWhereClauseParam("p_pwd", p_pwd.toUpperCase());
            return "Welcome" + "  " + p_user.toUpperCase();
        }p_user - say this in vo also
    p_pwd - say this in vo also
    just an references.
    Edited by: Erp on Nov 23, 2011 11:00 PM

  • Looking up a remote session bean javax.naming.NotContextException

    Hi,
    I am having trouble when looking up for a remote session bean from my ejb application. I am running jboss 4.0.4 with ejb3.0. I am trying to access a remote computer running jboss 4.0.4 but with 2.1 option. Following is my code
    Properties props = new Properties();     props.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.security.jndi.JndiLoginInitialContextFactory");
    props.setProperty(Context.SECURITY_PRINCIPAL, "admin");
    props.setProperty(Context.SECURITY_CREDENTIALS, "admin");
    props.setProperty(Context.PROVIDER_URL, "jnp://192.168.10.130:1099/");
    Context ctx = new InitialContext(props);     
    Object object = ctx.lookup( "ejb/com/blah/Manager/remote" );
              ManagerRemoteHome home = (ManagerRemoteHome)PortableRemoteObject.narrow ( object, ManagerRemoteHome.class);
              ManagerRemote manager = home.create();
    I get an exception at the following line
    ManagerRemoteHome home = (ManagerRemoteHome)PortableRemoteObject.narrow ( object, ManagerRemoteHome.class);
    2006-11-02 15:02:49,194 ERROR [STDERR] javax.naming.NotContextException
    2006-11-02 15:02:49,194 ERROR [STDERR]      at org.jnp.server.NamingServer.lookup(NamingServer.java:285)
    2006-11-02 15:02:49,194 ERROR [STDERR]      at org.jnp.server.NamingServer.lookup(NamingServer.java:270)
    2006-11-02 15:02:49,194 ERROR [STDERR]      at org.jnp.server.NamingServer.lookup(NamingServer.java:270)
    2006-11-02 15:02:49,194 ERROR [STDERR]      at org.jnp.server.NamingServer.lookup(NamingServer.java:270)
    2006-11-02 15:02:49,194 ERROR [STDERR]      at org.jnp.server.NamingServer.lookup(NamingServer.java:270)
    2006-11-02 15:02:49,194 ERROR [STDERR]      at org.jnp.server.NamingServer.lookup(NamingServer.java:270)
    2006-11-02 15:02:49,194 ERROR [STDERR]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    Instead of deploying remotely on a different machine I deployed in on my instance of jboss and everything works ok.
    Message was edited by:
    fkzeljo

    Thanks for your reply,
    I tried deploying it under local instance of jboss. It worked. However when I add the following line
    props.setProperty(Context.PROVIDER_URL, host);
    even if host is set to
    String host = "jnp://localhost:1099";
    I started getting the following exception
    2006-11-03 10:17:18,319 ERROR [STDERR] java.lang.ClassCastException
    2006-11-03 10:17:18,319 ERROR [STDERR]      at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:229)
    2006-11-03 10:17:18,319 ERROR [STDERR]      at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
    As soon as I uncomment that line everything works fine.
    I have seen this type of exception before when I tried invoking the ejb on a different computer as well. I am not sure how to see what is the wrapper class for the object since the call to object.getClass().getName() prints something like this $Proxy184
    This is my code again:
    Properties props = new Properties();
    props.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.security.jndi.JndiLoginInitialContextFactory");
              props.setProperty(Context.SECURITY_PRINCIPAL, "admin");
              props.setProperty(Context.SECURITY_CREDENTIALS, "admin");
              props.put(javax.naming.Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
              String host = "jnp://localhost:1099";
              props.setProperty(Context.PROVIDER_URL, host);
    ctx = new InitialContext( props );
         Object object = ctx.lookup( "ejb/com/blah/Manager" );
              ManagerRemoteHome home = (ManagerRemoteHome)PortableRemoteObject.narrow ( object, ManagerRemoteHome.class);
              ManagerRemote manager = home.create();
    Thanks

  • Problem Calling Remote Session Bean Method

    Need help. I am trying to call a method in a remote stateless session bean in an EJB in my web application from a stateless session bean in a different EJB in the web application. I am getting a run-time error that says,
    "java.lang.NoClassDefFoundError: dtpitb.common.sb.reports.CommonReportsHome"
    ref = ctx.lookup( jndiName );
    // Cast to Local Home Interface using RMI-IIOP
    commonReportsHome = (CommonReportsHome)
    PortableRemoteObject.narrow(ref, CommonReportsHome.class);
    If while in a session bean of an EJB, I want to call a public method in the session bean of a totally different EJB, is there something in particular I am missing. I can make the call from the web application code. I can make a remote call from this session bean to itself in the exact same fashion. I just can't call a session bean in another EJB. All thoughts are welcome.
    Thanks,
    Pete

    Thanks for replying. That could very well be the case I suppose. I'm using JBuilder and WebLogic, and JBuilder pretty much does all of the deployment descriptor code for me. However, maybe this is something I need to incorporate manually.
    One EJB is in the same project as the web application code. The other EJB (common_ejb) is in another project. The calling session bean is in the project with the web app, and the remote session bean method that I'm targeting is in the common EJB session bean. Both EJBs are included in the web app's WEB-INF\lib dir and in the war file.
    So theoretically, this isn't an unconventional practice I assume?
    Thanks,
    Pete

  • Lookup for local interfaces.

    Isn't lookup for local interfaces allowed from web client. I have defined a
    ejb-reference for the bean in my web.xml. When I do a lookup as
    TestBeanLocalHome home = (TestBeanLocalHome)
    ic.lookup("java:comp/env/ejb/TestBeanLocal");
    This statement result in an error
    javax.naming.NameNotFoundException: Unable to resolve
    comp/env/ejb/TestSLSBeanLocal/ Resolved: 'comp/env/ejb'
    Unresolved:'TestBeanLocal' ; remaining name ''
    at
    weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingN
    ode.java:887)
    at
    weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:219)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:183)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:191)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:191)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:191)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:339)
    at
    weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWr
    apper.java:36)
    at
    weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:124
    at javax.naming.InitialContext.lookup(InitialContext.java:345)
    at jsp_servlet.__client._jspService(__client.java:108)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :265)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :200)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:2495)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2204)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    The same thing works when lookup is done for remote interface.
    Regards,
    Rupesh.

    You need to use "ejb-local-ref" to refer to local interfaces. I meant
    "ejb-local-ref" element was not available in web.xml in Servlet 2.2. They
    were added in Servlet 2.3 specification. So unless your app server is
    Servlet 2.3 compliant it does not need to support references to local
    interfaces in web components (servlets or jsps). Weblogic 6.1 did not seem
    to support them last time I tried.
    -- Anand
    "Rupesh" <[email protected]> wrote in message
    news:[email protected]...
    what do u mean by local interface in web component? its ejb's local
    interfaces and lookups are any way being
    done using ejb-ref and ref mapping are given in weblogic.xml.
    Where does Servlet spec come into the picture?
    Do you mean to say that you can not lookup for local home from a jsp in
    WL6.1?
    Regards,
    Rupesh.
    Anand Byrappagari <[email protected]> wrote in message
    news:[email protected]...
    Are you using Weblogic 6.1? Then local interfaces in web components arenot
    supported. Local interfaces were added only in Servlet 2.3 I think.Weblogic
    6.1 is not completely compliant with Servlet 2.3.
    -- Anand
    "Rupesh" <[email protected]> wrote in message
    news:[email protected]...
    Isn't lookup for local interfaces allowed from web client. I have
    defined
    a
    ejb-reference for the bean in my web.xml. When I do a lookup as
    TestBeanLocalHome home = (TestBeanLocalHome)
    ic.lookup("java:comp/env/ejb/TestBeanLocal");
    This statement result in an error
    javax.naming.NameNotFoundException: Unable to resolve
    comp/env/ejb/TestSLSBeanLocal/ Resolved: 'comp/env/ejb'
    Unresolved:'TestBeanLocal' ; remaining name ''
    at
    weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingN
    ode.java:887)
    at
    weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:219)
    atweblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:183)
    atweblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:191)
    atweblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:191)
    atweblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:191)
    atweblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:339)
    at
    weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWr
    apper.java:36)
    at
    weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:124
    at javax.naming.InitialContext.lookup(InitialContext.java:345)
    at jsp_servlet.__client._jspService(__client.java:108)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :265)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :200)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:2495)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2204)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    The same thing works when lookup is done for remote interface.
    Regards,
    Rupesh.

  • Issues with remote client accessing EJB3

    Hi folks,
    I tested Weblogic 10.3 these days and had some trouble to access a stateless session bean (EJB3) via a remote Java client. My development system is Windows Vista 32bit.
    First, Weblogic doesn't like blanks in folder names! The Test Client throws an exception complaining that the business interface is not found:
    Exception in thread "Main Thread" java.lang.AssertionError: java.lang.ClassNotFoundException: ejb3session.Trader
    at weblogic.ejb.container.internal.RemoteBusinessIntfGenerator.generateRemoteInterface(RemoteBusinessIntfGenerator.java:69)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.readObject(RemoteBusinessIntfProxy.java:205)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:197)
    at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:564)
    at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:193)
    at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:62)
    at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:240)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
    at weblogic.jndi.internal.ServerNamingNode_1030_WLStub.lookup(Unknown Source)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:392)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:380)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at ejb3session.Client.lookup(Client.java:99)
    at ejb3session.Client.(Client.java:34)
    at ejb3session.Client.main(Client.java:61)
    Caused by: java.lang.ClassNotFoundException: ejb3session.Trader
    at weblogic.ejb.container.deployer.DownloadRemoteBizIntfClassLoader.getClassBytes(DownloadRemoteBizIntfClassLoader.java:85)
    at weblogic.ejb.container.deployer.DownloadRemoteBizIntfClassLoader.loadClass(DownloadRemoteBizIntfClassLoader.java:46)
    at weblogic.ejb.container.internal.RemoteBusinessIntfGenerator.generateRemoteInterface(RemoteBusinessIntfGenerator.java:66)
    In fact, the compiled class file of the business interface is located on the file system in a path that contains a blank. Debugging session shows that the internal weblogic class RemoteBusinessIntfGenerator fails to open the class file because of a wrong used URL file reference. If the path contains no blank, everything works fine. This is obviously a bug!
    Second, generics don't work in the business interface. As soon as I insert a generic return type or method parameter, I get an exception at runtime, no matter if the actually called method is generic or not:
    java.lang.NullPointerException
         at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.getTargetMethod(RemoteBusinessIntfProxy.java:162)
         at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:53)
         at $Proxy0.saveContact(Unknown Source)
         at Main.testIt(Main.java:45)
         at Main.main(Main.java:34)
    Third problem is already known by Oracle (CR373734): when using JPA and serializing entities to the remote client, serialization fails until you implement a writeObject() method in every entity.
    What is your experience concerning these issues? For my opinion quite severe bugs...
    Cheers, Thomas

    But most of the O/S like Linux ,Solaries does not allow blankspaces in the classpath. Only the O/S that does allow is Windows. and there are a lot of issues regarding the spaces in the classpath.
    If a blank in the classpath exist in the admin console as a remote start argument for a managed node, a patch exist.its CR375981.
    But for the above case 808498 (blank for remote client classpath) Engineering did not given any patch and asked to go with the work around ie not to use a blank in the classpath.
    Thanks !!

  • How to use JNDI to lookup remote EJB Home?

    Hello,
    I am writing a servlet to call a remote EJB on another machine.
    I use JNDI to lookup remote EJBHome (not) but fail.
    Any advice?
    Any trick to configure application-client.xml?
    Thanks!

    Use com.evermind.server.rmi.RMIInitialContextFactory instead
    Here an example
    // EmployeeClient.java
    package mypackage5;
    import javax.ejb.*;
    import javax.naming.*;
    import javax.rmi.PortableRemoteObject;
    import java.io.*;
    import java.util.*;
    import java.rmi.RemoteException;
    import com.evermind.server.ApplicationClientInitialContextFactory;
    import com.evermind.server.rmi.RMIInitialContextFactory;
    * A simple client for accessing an EJB.
    public class EmployeeClient
    public static void main(String[] args)
    System.out.println("EmployeeClient.main(): client started...");
    try
    * initialize JNDI context by setting factory, url and credential
    * in a hashtable
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
    //env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.ApplicationClientInitialContextFactory");
    env.put(Context.PROVIDER_URL, "ormi://koushikm:23791/application4");
    env.put(Context.SECURITY_PRINCIPAL, "admin");
    env.put(Context.SECURITY_CREDENTIALS, "admin");
    * or set these properties in jndi.properties
    * or use container defaults if that's where client got launched from
    Context context = new InitialContext(env);
    * Lookup the EmployeeHome object. The reference is retrieved from the
    * application-local context (java:comp/env). The variable is
    * specified in the assembly descriptor (META-INF/application-client.xml).
    Object homeObject =
    context.lookup("HelloEJB");
    System.out.println("EmployeeClient.main(): bean found...");
    // Narrow the reference to EmployeeHome.
    HelloEJBHome home =
         (HelloEJBHome) PortableRemoteObject.narrow(homeObject,
    HelloEJBHome.class);
    System.out.println("EmployeeClient.main(): home narrowed...");
    // Create remote object and narrow the reference to Employee.
    HelloEJB remote =
         (HelloEJB) PortableRemoteObject.narrow(home.create(), HelloEJB.class);
    System.out.println("EmployeeClient.main(): remote created...");
    String message=remote.helloWorld("SUCCESS");
    System.out.println(message);
    } catch(NumberFormatException e) {
    System.err.println("NumberFormatException: " + e.getMessage());
    } catch(RemoteException e) {
    System.err.println("RemoteException: " + e.getMessage());
    } catch(IOException e) {
    System.err.println("IOException: " + e.getMessage());
    } catch(NamingException e) {
    System.err.println("NamingException: " + e.getMessage());
    } catch(CreateException e) {
    System.err.println("CreateException: " + e.getMessage());
    Hello,
    I am writing a servlet to call a remote EJB on another machine.
    I use JNDI to lookup remote EJBHome (not) but fail.
    Any advice?
    Any trick to configure application-client.xml?
    Thanks!

  • Why do I use local bean interfaces?

    When can I use a local bean interface?
    Is it when the beans are deployed in the same manufacturers container system or do the beans just have to reside on the same physical machine?

    Yes, you should always write local interfaces when
    both web and ejb container using the same JVM.
    This is incorrect. The EJB Local view (as opposed to the EJB Remote view)
    can only be accessed by :
    1) an EJB within the same ejb-jar
    2) an EJB within a different ejb-jar but packaged within the same .ear
    3) a web component(servlet or jsp) in a .war packaged within the same .ear
    An ejb or web component in a different application(.ear) cannot portably
    access the Local EJB view.
    Kenneth Saks
    J2EE SDK Team
    SUN Microsystems
    You can search out about more on local interface for
    solving data-aliasing problem.

  • How can i lookup a session bean from the client side

    how can i lookup a session bean from the client side...........i am using sun appserver..............
    this is my code.................[B]
    private final static String JNDI_NAME="ejb/LmsBean";
    private static String url="ldap://localhost:4848";
    Hashtable h=new Hashtable();
    h.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
    h.put(Context.PROVIDER_URL,url);
    System.out.println("Before Loading Context in Delegate");
    Context ctx=new InitialContext(h);
    System.out.println("Loaded Context in Delegate");
    Object obj=ctx.lookup(JNDI_NAME);
    System.out.println("Loaded Object in Delegate");
    System.out.println("Before Loading Home in Delegate");
    LmsHome home = (LmsHome )PortableRemoteObject.narrow(obj,com.parx.lms.controller.LmsHome.class);
    System.out.println("Loaded Home in Delegate");
    lms = home.create();
    System.out.println("Loaded remote in Delegate");
    [B]and i got the exception........
    Inside Client before calling delegate
    Before Loading Context in Delegate
    javax.naming.CommunicationException: Request: 1 cancelled
    javax.naming.CommunicationException: Request: 1 cancelled
    at com.sun.jndi.ldap.LdapRequest.getReplyBer(LdapRequest.java:60)
    at com.sun.jndi.ldap.Connection.readReply(Connection.java:405)
    at com.sun.jndi.ldap.LdapClient.ldapBind(LdapClient.java:340)
    at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:171)
    at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2640)
    at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:290)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193
    at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.ja
    va:136)
    at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.jav
    a:66)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
    62)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243
    at javax.naming.InitialContext.init(InitialContext.java:219)
    at javax.naming.InitialContext.<init>(InitialContext.java:195)
    at com.parx.lms.lmsdelegate.LmsDelegate.getController(LmsDelegate.java:3
    0)
    at com.parx.lms.lmsdelegate.LmsDelegate.addUserDelegate(LmsDelegate.java
    :50)
    at com.parx.lms.client.consoleClient.Client.main(Unknown Source)
    pls go tru the exception and pls help.........

    That url string should be having the server name or ip instead of localhost.

  • Fail to lookup the local EJB by JNDI in Managed Server

    Hi all,
    I currently in a deep problem, and can't figure out the cause of it. It just annoying me for week.
    In my app, I have binded to the local ejb to JNDI (let's say "ejb/CustomerLocal"), then the client lookup the Local EJB by the following code.
    localIc = new InitialContext();
    home = (EJBLocalHome)localIc.lookup("ejb/CustomerLocal");
    It works well as I do development in the Domain Admin Server. However, when I do the System Integration Test and deploy my app to the managed server, the app fail. It just can't do the Local EJB lookup. Following is the exception.
    javax.naming.NameNotFoundException: Unable to resolve 'ejb/CustomerLocal' Resolved ejb[Root exc
    eption is javax.naming.NameNotFoundException: Unable to resolve 'ejb.CustomerLocal' Resolved ejb
    ]; remaining name CustomerLocal'
    Does anybody know the cause of it and have solution?
    Thanks a lot

    Hi,
    Just now I replicated the same problem what you are facing. I created one managed server. When I deployed my ejb to admin server I did not get any problem. But when I deploy the same into my managed server I got Naming Exception. Because I did n/t specify Context.PROVIDER_URL. A provider URL contains bootstrap server information that the initial context factory can use to obtain an initial context. So when you deploy EJB on another server, you have to get the Naming service from that server. Hence provider URL must pointing to that server. So I included following statements before lookup my ejb in managed server.
    Properties p=new Properties ();
    p.put (Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    p.put (Context.PROVIDER_URL,"t3://localhost: 7003");
    Context ctx=new InitialContext (p);
    FacadeHome home=(FacadeHome) ctx.lookup ("ejb/CustomerLocal");
    In my case managed server port number is 7003. Now onwards managed server (Port number 7003) will provide ‘Naming Service’, not by admin server (port number 7001), which is default.
    Note: Context.PROVIDER_URL— specifies the URL of the WebLogic Server that provides the name service. The default is t3://localhost: 7001. When you are not specified it will assume that POVIDER_URL is t3://localhost: 7001 this is nothing but your admin server in your case. However, a JNDI client may need to access a name space other than the one identified in its environment. In this case, it is necessary to explicitly set the java.naming.provider.url (provider URL) property used by the InitialContext constructor.
    I hope it helps.
    Regards,
    Kuldeep Singh.

  • Lookup of CMP Bean from client

    After Deploying the CMP Bean from jdeveloper, the client is unable to lookup the Bean using the JNDI name. It gives unknown URL. All the libraries are added to the client.

    Hi Zoongu,
    Please look into the server.log for the actual exception message (and the stack trace).
    You can call a CMP from a remote application client, but keep in mind that each and every method invocation will happen in a new transaction (there is no transaction
    propagation between an app client and a server). It's a much better practice to access
    a Session bean from the client (once) to perform all operations in the same transaction.
    regards,
    -marina

  • Invalid username/password to call a remote session bean

    I am having a problem accessing a remote session bean,
    javax.naming.NamingException: Lookup error: javax.naming.AuthenticationException: Invalid username/password for default (admin); nested exception is:
         javax.naming.AuthenticationException: Invalid username/password for default (admin) [Root exception is javax.naming.AuthenticationException: Invalid username/password for default (admin)]
         at com.evermind.server.rmi.RMIContext.lookup(RMIContext.java:168)
         at javax.naming.InitialContext.lookup(InitialContext.java:347)
    Ejb is delpoyed into an OC4J instance on an application server,
    Tried all username, password, still invalid,
    I am using url as the following:
    env.put(Context.PROVIDER_URL, "ormi://hostname:12401/");
    Does the OC4J instance config affect the url, or url is only related with ip and port?
    Any idea? Thanks a lot.

    When you install OC4J 10.1.3 and run the command "java -jar %J2EE_HOME%\j2ee\home\oc4j.jar", the system will ask for password for the oc4jadmin user.
    I do not recall 10.1.2 version having this feature.
    If you were able to create new user in administrator group, make sure that orion-application.xml contains the following entries.
    <namespace-access>
              <read-access>
                   <namespace-resource root="">
                        <security-role-mapping name="&lt;jndi-user-role&gt;">
                             <group name="Administrator" />
                        </security-role-mapping>
                   </namespace-resource>
              </read-access>
              <write-access>
                   <namespace-resource root="">
                        <security-role-mapping name="&lt;jndi-user-role&gt;">
                             <group name="Administrator" />
                        </security-role-mapping>
                   </namespace-resource>
              </write-access>
         </namespace-access>
    This will allow RMI access to remote users.

  • Lookup remote JNDI name

    hi
    i develop a EJB application on the weblogic app server.
    now i want to access this service on the different machine.
    localy i access this with simple JNDI lookup as
    Context c=new InitialContext();
    SessionBeanDemoRemoteHome home=(SessionBeanDemoRemoteHome) c.lookup("ejb.SessionBeanDemoRemoteHome");but I don't know how access this remotely
    please help me.

    Thanks a lot for your reply...
    anyway, I need to lookup in the standard reference way:
    ic.lookup("java:comp/env/ejb/MyEJB")
    I am already doing it the way you have kaindly explained to me, but
    ic.lookup("ejb/MyEJB")
    Is a direct JNDI lookup. I'd like to install jboss naming factory in tomcat's server.xml file, so that the bean is deployed in Jboss with a JNDIName like:
    MyEJB_MyProject
    and is looked up from jsp in the standard refernce way... as
    ic.lookup("java:comp/env/ejb/MyEJB") (this is a reference, not a JNDI direct lookup.
    (I might not have explained this right in my first message)
    My problem is that I don't know where does tomcat insert the ejb-links, and how to insert them.
    I have added to server.xml:
                   <Ejb name="ejb/UserManager"
    type="Session"
    home="com.servengine.UserManagerHome"
    remote="com.servengine.UserManager"/>
    <ResourceParams name="ejb/UserManager">
    <parameter>
    <name>factory</name>
    <value>org.jnp.interfaces.NamingContextFactory</value>
    </parameter>
    <parameter>
    <name>java.naming.factory.initial</name>
    <value>org.jnp.interfaces.NamingContextFactory</value>
    </parameter>
    <parameter>
    <name>java.naming.provider.url</name>
    <value>172.26.0.17</value>
    </parameter>
    <parameter>
    <name>java.naming.factory.url.pkgs</name>
    <value>org.jboss.naming:org.jnp.interfaces</value>
    </parameter>
    </ResourceParams>
    But obviously this is not enough... I must map the reference/link to the JNDI name.
    Any ideas?
    (I'll have to rewrite all references in my beans to direct lookups and do it the way you propose if I don't find a way to do it...)
    Thanks a lot for your message,
    Ignacio

  • Error during processing local bean: localejbs/RfcAFBean

    Hi everybody
    we currently trying to perform a RFC Call to our developpment system. The scenario is a simple File to RFC Scenario and it worked until yesterday. Since today the Messages stuck in the RFC receiver Adapter with the following errors in the audit log:
    MP: exception caught with cause com.sap.engine.services.ejb.exceptions.BaseTransactionRolledbackLocalException: Exception thrown in method process. The transaction is marked for rollback.
    Exception caught by adapter framework: Exception thrown in method process. The transaction is marked for rollback.
    Delivery of the message to the application using connection RFC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Exception thrown in method process. The transaction is marked for rollback.: com.sap.engine.services.ejb.exceptions.BaseTransactionRolledbackLocalException: Exception thrown in method process. The transaction is marked for rollback..
    The deffaultTrace.trc show the following entries. Looks like an error in localejbs/RfcAFBean:
    RfcFunctionName:ZPSCD_INTERFACE_XXXXX
    Date : 07/13/2007
    Time : 9:32:39:301
    Message : 
    [EXCEPTION]
    com.sap.engine.services.ejb.exceptions.BaseTransactionRolledbackLocalException: Exception thrown in method process. The transaction is marked for rollback.
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_0.process(ModuleLocalLocalObjectImpl0_0.java:118)
         at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:264)
         at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0_0.process(ModuleProcessorLocalLocalObjectImpl0_0.java:103)
         at com.sap.aii.af.listener.AFWListenerBean.onMessage(AFWListenerBean.java:267)
         at com.sap.aii.af.listener.AFWListenerLocalObjectImpl0_0.onMessage(AFWListenerLocalObjectImpl0_0.java:103)
         at com.sap.aii.af.ra.ms.impl.ServicesImpl.deliver(ServicesImpl.java:306)
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onDeliver(XIEventHandler.java:1034)
         at com.sap.aii.af.ra.ms.impl.core.queue.ReceiveConsumer.invokeHandler(ReceiveConsumer.java:392)
         at com.sap.aii.af.ra.ms.impl.core.queue.ReceiveConsumer.onMessage(ReceiveConsumer.java:86)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:848)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         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.NoSuchMethodError: com.sap.aii.af.rfc.core.config.RfcConfigManager.isPPActive(Lcom/sap/aii/af/service/cpa/Channel;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
         at com.sap.aii.af.rfc.afcommunication.ejb.RfcAFBean.isPPActive(RfcAFBean.java:385)
         at com.sap.aii.af.rfc.afcommunication.ejb.RfcAFBean.process(RfcAFBean.java:240)
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_0.process(ModuleLocalLocalObjectImpl0_0.java:103)
         ... 14 more
    Severity : Error
    Category :
    Location : com.sap.engine.services.ejb
    Application : sap.com/com.sap.aii.adapter.rfc.app
    Thread : SAPEngine_Application_Thread[impl:3]_44
    Datasource : 312846850:/usr/sap/XDS/DVEBMGS31/j2ee/cluster/server0/log/defaultTrace.trc
    Message ID : 0003BA5D1D27006D000002BF0000653B000435201DA336D6
    Source Name : com.sap.engine.services.ejb
    Argument Objs : com.sap.engine.services.ejb.exceptions.BaseTransactionRolledbackLocalException: Exception thrown in method process. The transaction is marked for rollback.
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_0.process(ModuleLocalLocalObjectImpl0_0.java:118)
         at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:264)
         at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0_0.process(ModuleProcessorLocalLocalObjectImpl0_0.java:103)
         at com.sap.aii.af.listener.AFWListenerBean.onMessage(AFWListenerBean.java:267)
         at com.sap.aii.af.listener.AFWListenerLocalObjectImpl0_0.onMessage(AFWListenerLocalObjectImpl0_0.java:103)
         at com.sap.aii.af.ra.ms.impl.ServicesImpl.deliver(ServicesImpl.java:306)
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onDeliver(XIEventHandler.java:1034)
         at com.sap.aii.af.ra.ms.impl.core.queue.ReceiveConsumer.invokeHandler(ReceiveConsumer.java:392)
         at com.sap.aii.af.ra.ms.impl.core.queue.ReceiveConsumer.onMessage(ReceiveConsumer.java:86)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:848)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         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.NoSuchMethodError: com.sap.aii.af.rfc.core.config.RfcConfigManager.isPPActive(Lcom/sap/aii/af/service/cpa/Channel;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
         at com.sap.aii.af.rfc.afcommunication.ejb.RfcAFBean.isPPActive(RfcAFBean.java:385)
         at com.sap.aii.af.rfc.afcommunication.ejb.RfcAFBean.process(RfcAFBean.java:240)
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_0.process(ModuleLocalLocalObjectImpl0_0.java:103)
         ... 14 more
    Arguments : com.sap.engine.services.ejb.exceptions.BaseTransactionRolledbackLocalException: Exception thrown in method process. The transaction is marked for rollback.
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_0.process(ModuleLocalLocalObjectImpl0_0.java:118)
         at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:264)
         at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0_0.process(ModuleProcessorLocalLocalObjectImpl0_0.java:103)
         at com.sap.aii.af.listener.AFWListenerBean.onMessage(AFWListenerBean.java:267)
         at com.sap.aii.af.listener.AFWListenerLocalObjectImpl0_0.onMessage(AFWListenerLocalObjectImpl0_0.java:103)
         at com.sap.aii.af.ra.ms.impl.ServicesImpl.deliver(ServicesImpl.java:306)
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onDeliver(XIEventHandler.java:1034)
         at com.sap.aii.af.ra.ms.impl.core.queue.ReceiveConsumer.invokeHandler(ReceiveConsumer.java:392)
         at com.sap.aii.af.ra.ms.impl.core.queue.ReceiveConsumer.onMessage(ReceiveConsumer.java:86)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:848)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         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.NoSuchMethodError: com.sap.aii.af.rfc.core.config.RfcConfigManager.isPPActive(Lcom/sap/aii/af/service/cpa/Channel;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
         at com.sap.aii.af.rfc.afcommunication.ejb.RfcAFBean.isPPActive(RfcAFBean.java:385)
         at com.sap.aii.af.rfc.afcommunication.ejb.RfcAFBean.process(RfcAFBean.java:240)
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_0.process(ModuleLocalLocalObjectImpl0_0.java:103)
         ... 14 more
    Dsr Component :
    Dsr Transaction : 3bdbc330311311dcb33b0003ba5d1d27
    Dsr User :
    Indent : 0
    Level : 0
    Message Code :
    Message Type : 1
    Relatives :
    Resource Bundlename :
    Session : 0
    Source : com.sap.engine.services.ejb
    ThreadObject : SAPEngine_Application_Thread[impl:3]_44
    Transaction : SAP J2EE Engine JTA Transaction : [12ffffffa5ffffffaa200435f]
    User : J2EE_GUEST
    Date : 07/13/2007
    Time : 9:32:39:304
    Message : Error during processing local bean: localejbs/RfcAFBean
    Severity : Error
    Category :
    Location : com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(String , ModuleData)
    Application : sap.com/com.sap.aii.af.app
    Thread : SAPEngine_Application_Thread[impl:3]_44
    Datasource : 312846850:/usr/sap/XDS/DVEBMGS31/j2ee/cluster/server0/log/defaultTrace.trc
    Message ID : 0003BA5D1D27006D000002C00000653B000435201DA33A4D
    Source Name : com.sap.aii.af.mp.ejb.ModuleProcessorBean
    Argument Objs :
    Arguments :
    Dsr Component :
    Dsr Transaction : 3bdbc330311311dcb33b0003ba5d1d27
    Dsr User :
    Indent : 0
    Level : 0
    Message Code :
    Message Type : 0
    Relatives :
    Resource Bundlename :
    Session : 0
    Source : com.sap.aii.af.mp.ejb.ModuleProcessorBean
    ThreadObject : SAPEngine_Application_Thread[impl:3]_44
    Transaction : SAP J2EE Engine JTA Transaction : [12ffffffa5ffffffaa200435f]
    User : J2EE_GUEST
    Date : 07/13/2007
    Time : 9:32:39:306
    Message : Rolling back transaction for message 38d82020-3113-11dc-c07b-0003ba5d1d27(INBOUND) due to: Exception thrown in method process. The transaction is marked for rollback.
    Severity : Error
    Category :
    Location : com.sap.aii.af.ra.ms.impl.core.queue.ReceiveConsumer.invokeHandler(QueueMessage, MessageController, Services)
    Application :
    Thread : SAPEngine_Application_Thread[impl:3]_44
    Datasource : 312846850:/usr/sap/XDS/DVEBMGS31/j2ee/cluster/server0/log/defaultTrace.trc
    Message ID : 0003BA5D1D27006D000002C10000653B000435201DA341C8
    Source Name : com.sap.aii.af.ra.ms.impl.core.queue.ReceiveConsumer
    Argument Objs : 38d82020-3113-11dc-c07b-0003ba5d1d27(INBOUND),Exception thrown in method process. The transaction is marked for rollback.,
    Arguments : 38d82020-3113-11dc-c07b-0003ba5d1d27(INBOUND),Exception thrown in method process. The transaction is marked for rollback.,
    Dsr Component :
    Dsr Transaction : 3bdbc330311311dcb33b0003ba5d1d27
    Dsr User :
    Indent : 0
    Level : 0
    Message Code :
    Message Type : 1
    Relatives :
    Resource Bundlename :
    Session : 0
    Source : com.sap.aii.af.ra.ms.impl.core.queue.ReceiveConsumer
    ThreadObject : SAPEngine_Application_Thread[impl:3]_44
    Transaction : SAP J2EE Engine JTA Transaction : [12ffffffa5ffffffaa200435f]
    User : J2EE_GUEST
    It looks like the JCO Bean has an error. Any Ideas
    Regards Oliver

    Hi Bhavesh
    I found some more interesting log entries and it seems to be a user password problem:
    Retries exceded, set message 38f10280-3388-11dc-9c91-0003ba5d1d27(INBOUND) to status NON_DELIVERED.
    Name or password is incorrect (repeat logon)
    JCoClient connection missingHost:xdsci_XDS_31|AdapterType:MessagingSystem|Sender::FileServer|Receiver::PSCD_CDD|Interface:ZPSCD_INTERFACE_DECLAR_TVA:urn:sap-com:document:sap:rfc:functions|MsgID:38f10280-3388-11dc-9c91-0003ba5d1d27
    Is this the user/password of the channel or is it service user for the JCO?
    Regards Oliver

Maybe you are looking for

  • SAP BI 7.0 Runtime Errors: DBIF_DSQL2_DEFAULT_CR_ERROR

    Hi - We have a BI 7.0 landscape running on HP-UX and Oracle 10g. While tryin to run delta process chains for loads, we had a runtime error as shown. Job started Step 001 started (program RSPROCESS, variant &0000000013914, user ID ALEREMOTE) Activatio

  • Help required for Payment Term change report in SAP BI

    Dear Experts , I have got a client requirement to develop a report to present all the purchase orders for which there has been a change in Payment Term. Could any one provide his input as which extractor can give me this information or where can I ge

  • Problems with CSS in Outlook express in Vista

    Hi all, I am just learning Dreamweaver (CS3) and I am creating a webpage that will be viewed on email, I have created the page design with links using CSS and tables and then uploaded the files which view fine on Safari on Mac and in Explorer on PC,

  • Brining cd from iTunes audiobook download

    When I go to burn the audio book I bought on iTunes store I click "Burn Disc" it then prompts me to load a blank disk I do but it does nothing just keeps telling me to load a blank disk and does not begin burning. Apple needs better support including

  • Form Fields Keep Changing

    I am new to Acrobat XI Pro.  I am creating a fillable form.  I have all my fields in place i.e. text, check box, etc. and in the process of cleaning up the form by resizing and shifting some of the fields.  When I make a change in size or position of