首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >#solace ClassCastException jms ConectionFactory

#solace ClassCastException jms ConectionFactory
EN

Stack Overflow用户
提问于 2016-10-31 22:04:06
回答 2查看 776关注 0票数 1

我正在尝试在solace设备上测试JMS消息传递。正在尝试使JMS Hello World Publisher示例正常工作。当我尝试分配ConnectionFactory时,我得到了一个强制转换异常。

感谢您的帮助。

代码语言:javascript
运行
复制
    Hashtable<String, Object> env = new Hashtable<String, Object>();
    env.put(InitialContext.INITIAL_CONTEXT_FACTORY, "com.solacesystems.jndi.SolJNDIInitialContextFactory");

    env.put(InitialContext.PROVIDER_URL, "smf://xxx,xxx.com:55555");
    env.put(SupportedProperty.SOLACE_JMS_VPN, "VPN");
    env.put(Context.SECURITY_PRINCIPAL, "User");
    env.put(InitialContext.SECURITY_CREDENTIALS, "Pwd");

    // InitialContext is used to lookup the JMS administered objects.
    InitialContext initialContext = new InitialContext(env);
    // Lookup ConnectionFactory.
    ConnectionFactory cf = (ConnectionFactory)initialContext.lookup("JNDI/CF/TEST");        

线程"main“java.lang.ClassCastException中出现异常:无法在com.solacesystems.jms.samples.intro.SolJMSHelloWorldPub.main(SolJMSHelloWorldPub.java:99)中将com.solacesystems.jms.impl.SolTopicImpl强制转换为javax.jms.ConnectionFactory

EN

回答 2

Stack Overflow用户

发布于 2016-10-31 23:59:39

我能够通过使用SolJmsUtility.createConnectionFactory并在JNDI名称上进行查找来使其工作。

代码语言:javascript
运行
复制
    SolConnectionFactory solCF = SolJmsUtility.createConnectionFactory(env);

    // Connection connection = cf.createConnection();
    Connection connection = solCF.createConnection();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

    Destination destination = (Destination)initialContext.lookup("JNDI/CF/TEST");

    MessageProducer producer = session.createProducer(destination);
票数 1
EN

Stack Overflow用户

发布于 2016-11-02 09:57:50

JNDI/CF/TEST最有可能被配置为Solace路由器上的主题。这会导致类转换异常,因为主题不能转换到连接工厂中。

请确保JNDI/CF/TEST是一个JMS连接工厂,而不是路由器上的JMS主题。

已配置的JMS连接工厂列表可以通过SolAdmin进行验证,也可以通过路由器上的命令行界面通过show jndi connection-factory *的输出进行验证。

类似地,配置的JMS主题列表可以通过SolAdmin验证,也可以通过路由器上的命令行界面通过show jndi topic *的输出验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40343791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档