1

当我尝试通过 JMS 连接到慰藉盒并执行 jndi 查找时,出现以下异常:

线程“Thread-33”org.wso2.carbon.event.input.adaptor.core.exception.InputEventAdaptorEventProcessingException 中的异常:无法获取 JNDI 上下文,JMS 连接工厂:poc_jndi_name7 或默认目的地:JMS CF 为空:StrataTestInputEvent 使用:{java .naming.provider.url=tcp://10.250.242.89:55555,java.naming.factory.initial=com.solacesystems.jndi.SolJNDIInitialContextFactory,transport.jms.DestinationType=topic,transport.jms.SubscriptionDurable=false,transport .jms.ConnectionFactoryJNDIName=poc_jndi_name7} 在 org.wso2.carbon.event.input.adaptor.jms.internal.util.JMSConnectionFactory.(JMSConnectionFactory.java:102) 在 org.wso2.carbon.event.input.adaptor.jms。 org.wso2.carbon.event.input.adaptor 上的 JMSEventAdaptorType.createJMSAdaptorListener(JMSEventAdaptorType.java:303)。jms.JMSEventAdaptorType.tryStartAdaptor(JMSEventAdaptorType.java:262) 在 org.wso2.carbon.event.input.adaptor.jms.internal.ds.JMSEventAdaptorServiceHolder.loadLateStartEventAdaptors(JMSEventAdaptorServiceHolder.java:66) 在 org.wso2.carbon.event。 input.adaptor.jms.internal.ds.JMSEventAdaptorServiceHolder$1.run(JMSEventAdaptorServiceHolder.java:43) at java.lang.Thread.run(Thread.java:745) 原因:javax.naming.NamingException:JNDI 查找失败 - 401 :在 javax.naming.InitialContext.lookup(InitialContext.java:411) 在 javax.naming.InitialContext.lookup(InitialContext.java) 的 com.solacesystems.jndi.SolJNDIIinitialContextFactory$SolJNDIInitialContextImpl.lookup(SolJNDIInitialContextFactory.java:210) 的身份验证配置不完整:411) 在 org.wso2.carbon.event.input.adaptor。jms.internal.util.JMSUtils.lookup(JMSUtils.java:350) 在 org.wso2.carbon.event.input.adaptor.jms.internal.util.JMSConnectionFactory.(JMSConnectionFactory.java:93) ... 5 更多

我必须在启动脚本中指定 java.naming.security 参数(主体和凭据),因为我的安慰框需要它们用于输入 jndi 查找,并且无法在工具中指定它们(xml 或贵)。如果我尝试在 xml 中指定它们,当我尝试通过管理控制台保存 xml 时会出现错误。

这是我的配置:

<?xml version="1.0" encoding="UTF-8"?>
<inputEventAdaptor name="StrataTestInputEvent" statistics="disable"
  trace="disable" type="jms" xmlns="http://wso2.org/carbon/eventadaptormanager">
  <property name="java.naming.provider.url">tcp://10.250.242.89:55555</property>
  <property name="transport.jms.SubscriptionDurable">false</property>
  <property name="java.naming.factory.initial">com.solacesystems.jndi.SolJNDIInitialContextFactory</property>
  <property name="transport.jms.ConnectionFactoryJNDIName">poc_jndi_name7</property>
  <property name="transport.jms.DestinationType">topic</property>
</inputEventAdaptor>

这个部署很好......但是如果我指定:我得到的名称:无法更新事件适配器,异常:java.naming.security.principal 不是此输入事件适配器类型的有效属性:jms

所以我通过 -D 将它添加到 wso2server.sh 文件中,现在发生了以下情况。

我添加了一个事件流定义......

{
  "name": "org.wso2.sample.stock.quote.basic",
  "version": "1.0.0",
  "payloadData": [
    {
      "name": "price",
      "type": "DOUBLE"
    },
    {
      "name": "symbol",
      "type": "STRING"
    }
  ]
}

然后添加一个构建器...

<?xml version="1.0" encoding="UTF-8"?>
<eventBuilder name="StrataTestEventStream" statistics="disable"
    trace="disable" xmlns="http://wso2.org/carbon/eventbuilder">
    <from eventAdaptorName="StrataTestInputEvent" eventAdaptorType="jms">
        <property name="transport.jms.Destination">poc_topic7</property>
    </from>
    <mapping customMapping="disable" type="xml"/>
    <to streamName="StrataInputEventStream" version="1.0.0"/>
</eventBuilder>

现在服务器部署并认为它可以......但它不是......现在它处于我得到的奇怪状态

原因:org.wso2.carbon.event.input.adaptor.core.exception.InputEventAdaptorEventProcessingException:在 org.wso2.carbon.event.input 上没有订阅 poc_topic7 的订阅 ID:bce96483-76ea-4313-8a0e-bf500ddb3002 .adaptor.jms.JMSEventAdaptorType.unsubscribe(JMSEventAdaptorType.java:246) 在 org.wso2.carbon.event.input.adaptor.core.internal.CarbonInputEventAdaptorService.unsubscribe(CarbonInputEventAdaptorService.java:120) ... 73 更多

并且主题已定义..如果我重新启动服务器,它会认为它启动但它不是...

4

1 回答 1

1

您的 URL 看起来不适合 Solace JNDI。

尝试将 java.naming.provider.url 从“tcp://10.250.242.89:55555”更改为“smf://10.250.242.89:55555”

Solace JNDI 通信是通过 Solace 消息格式 (SMF) 有线协议进行的,就像 JMS 客户端连接一样。

您可能还需要设置 java.naming.security.principal 以指示您的用户名和 message-vpn,例如“robert@myvpnname”,或者如果您的用户名在默认 message-vpn 上,则只需“robert”。

于 2015-10-11T04:39:04.720 回答