1

JMS 経由で solace ボックスに接続し、jndi ルックアップを実行しようとすると、次の例外が発生します。

スレッド "Thread-33" org.wso2.carbon.event.input.adaptor.core.exception.InputEventAdaptorEventProcessingException での例外: JNDI コンテキストを取得できません。JMS 接続ファクトリ: poc_jndi_name7 またはデフォルトの宛先: JMS CF の null: StrataTestInputEvent using: {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} at org.wso2.carbon.event.input.adaptor.jms.internal.util.JMSConnectionFactory.(JMSConnectionFactory.java:102) at 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. java.lang.Thread.run(Thread.java:745) の input.adaptor.jms.internal.ds.JMSEventAdaptorServiceHolder$1.run(JMSEventAdaptorServiceHolder.java:43) 原因: javax.naming.NamingException: JNDI ルックアップに失敗しました - 401 : com.solacesystems.jndi.SolJNDIInitialContextFactory$SolJNDIInitialContextImpl.lookup(SolJNDIInitialContextFactory.java:210) での不完全な認証構成:411) org.wso2.carbon.event.input.adaptor で。jms.internal.util.JMSUtils.lookup(JMSUtils.java:350) at 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>

このデプロイは問題ありません...しかし、次を指定すると: name I get : Failed to update event adapter, Exception: java.naming.security.principal is not a valid property for this Input Event Adapter type: 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 の subscriptionId:bce96483-76ea-4313-8a0e-bf500ddb3002 の poc_topic7 のサブスクリプションがありません.adaptor.jms.JMSEventAdaptorType.unsubscribe(JMSEventAdaptorType.java:246) at 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 通信は、JMS クライアント接続と同様に、Solace Message Format (SMF) ワイヤライン プロトコルを介して行われます。

また、java.naming.security.principal を設定して、"robert@myvpnname" のようにユーザー名とメッセージ VPN を示すか、ユーザー名がデフォルトのメッセージ VPN にある場合は単に "robert" を設定する必要がある場合もあります。

于 2015-10-11T04:39:04.720 に答える