来自Java客户端的Weblogic ConnectionFactory查找

时间:2013-08-15 10:22:17

标签: java jms weblogic

我正在尝试从java应用程序中将消息排入jms队列(weblogic)。

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);
}

当我调用getInitalContext()方法时,它工作正常。我得到了背景。 但是当尝试使用上下文来获取连接工厂时,它会出现以下错误:

 <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)

查看Weblogic控制台,JNDI树我有以下内容:

JMS:

  • 连接工厂:      名称:bfred1cf      className:weblogic.rmi.cluster.ClusterableRemoteObjec      绑定名称:jms.bfred1cf      类:weblogic.jms.client.JMSXAConnectionFactory
  • 队列      名称:bfred1queue
         className:weblogic.jms.common.WrappedDestinationImpl      绑定名称:jms.bfred1queue      类:weblogic.jms.common.DestinationImpl

如果我尝试使用JMS适配器从SOA Suite项目(BPEL)排队消息,请使用Outbound Conection Pool (eis / jms / bfre1)为CF配置它工作正常。

有没有人知道会导致此错误的原因?

谢谢, 法比奥

1 个答案:

答案 0 :(得分:0)

尝试使用:

wlthint3client.jar

而不是wlclient.jar和wljmsclient.jar