2013-08-15 3 views
0

Я пытаюсь вставить сообщение в очередь jms (weblogic) из приложения Java.Weblogic ConnectionFactory Lookup от Java-клиента

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:

  • ConnectionFactory: имя: bfred1cf имя класса: weblogic.rmi.cluster.ClusterableRemoteObjec Binding имя: jms.bfred1cf Класс: weblogic.jms.client.JMSXAC onnectionFactory
  • Queue Имя: bfred1queue
    Classname: weblogic.jms.common.WrappedDestinationImpl Binding Имя: jms.bfred1queue Класс: weblogic.jms.common.DestinationImpl

Если я пытаюсь епдиеие сообщение из проекта SOA Suite (BPEL) с JMS-адаптером, используя пул исходящих консекций (eis/jms/bfre1), настроенный для CF, он отлично работает.

У кого-нибудь есть представление о том, что может вызвать эту ошибку?

Спасибо, Фабио

+0

Это почти как ваш клиент или сервер не используется правильную версию файла weblogic.jar в своем пути к классам. Что-то о подписях для API не соответствует. –

ответ

0

Попробуйте использовать:

wlthint3client.jar

вместо wlclient.jar и wljmsclient.jar

Смежные вопросы