当我尝试通过 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 更多
并且主题已定义..如果我重新启动服务器,它会认为它启动但它不是...