1
votes

I'm trying to enqueue a message on a jms queue (weblogic) from a java application.

InitialContext ctx = getInitialContext();
qconFactory = (QueueConnectionFactory)ctx.lookup("jms.bfred1cf");
qcon = qconFactory.createQueueConnection();
qsession = qcon.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
queue = (Queue) ctx.lookup("jms.bfred1queue");

private static InitialContext getInitialContext() throws NamingException {
    Hashtable<String, String> env = new Hashtable<String, String>();
    env.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    env.put(Context.PROVIDER_URL, "t3://soabpm-vm:7001/");
    return new InitialContext(env);
}

When i invoke the getInitalContext() methos it works fine. I got the context. But when trying to get the connection factory, using the context, it gives the following error:

 <Exception in thread "main" java.lang.AbstractMethodError:      weblogic.rmi.internal.RMIEnvironment.getProperties(Ljava/lang/Object;)Ljava/util/Hashtable;
at weblogic.rjvm.ResponseImpl.getRMIClientTimeout(ResponseImpl.java:281)
at weblogic.rjvm.ResponseImpl.<init>(ResponseImpl.java:42)
at weblogic.rjvm.MsgAbbrevOutputStream.sendRecv(MsgAbbrevOutputStream.java:404)
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:109)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:345)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
at weblogic.jndi.internal.ServerNamingNode_1035_WLStub.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:423)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:411)
at javax.naming.InitialContext.lookup(InitialContext.java:409)
at demo.Demo.main(Unknown Source)

Looking into Weblogic console, JNDI Tree I've the following:

JMS:

  • ConnectionFactory: name: bfred1cf className: weblogic.rmi.cluster.ClusterableRemoteObjec Binding Name: jms.bfred1cf Class: weblogic.jms.client.JMSXAConnectionFactory
  • Queue name: bfred1queue
    className: weblogic.jms.common.WrappedDestinationImpl Binding Name: jms.bfred1queue Class: weblogic.jms.common.DestinationImpl

If i try to enqueue a message from a SOA Suite project (BPEL) with a JMS Adapter, using the Outbound Conection Pool (eis/jms/bfre1) configured for the CF it works fine.

Does anyone have an idea about what can cause this error?

Thanks, Fabio

1
It's almost like your client or server isn't using the correct version of the weblogic.jar file in its classpath. Something about the signatures for the API isn't matching up. - Display Name is missing

1 Answers

1
votes

Try to use:

wlthint3client.jar

instead of wlclient.jar and wljmsclient.jar