Wso2 在jndi.properties中为入站端点配置指定java.naming.provider.url

Wso2 在jndi.properties中为入站端点配置指定java.naming.provider.url,wso2,jms,activemq,wso2esb,Wso2,Jms,Activemq,Wso2esb,我有一个入站端点配置,我想在jndi.properties中指定java.naming.provider.url值,这将使我能够根据我拥有的不同环境的提供者url动态配置入站端点 下面是我对ActiveMq的axis2.xml配置 <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener"> <parameter name="myTopicConnectionFactor

我有一个入站端点配置,我想在
jndi.properties
中指定
java.naming.provider.url
值,这将使我能够根据我拥有的不同环境的提供者url动态配置入站端点

下面是我对ActiveMq的axis2.xml配置

<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
   <parameter name="myTopicConnectionFactory" locked="false">
       <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
       <parameter name="java.naming.provider.url" locked="false">failover:tcp://localhost:6092</parameter>
       <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
        <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
   </parameter>

   <parameter name="myQueueConnectionFactory" locked="false">
       <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
       <parameter name="java.naming.provider.url" locked="false">failover:tcp://localhost:6092</parameter>
       <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
        <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
   </parameter>

   <parameter name="default" locked="false">
       <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
       <parameter name="java.naming.provider.url" locked="false">failover:tcp://localhost:6092</parameter>
       <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
        <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
   </parameter>                                          
</transportReceiver>
但在WSO2控制台中,我有以下错误:

Could not create Transport. Reason: java.io.IOException: Transport not scheme specified: [conf/jndi.properties]

谢谢你的建议

顾名思义,“java.naming.provider.url”应该是一个url,因此以“(协议):/”开头的内容

自tcp://localhost:6092 在其他配置中为您工作,请尝试以下操作:

<parameter name="java.naming.provider.url" locked="false">tcp://localhost:6092</parameter> 
tcp://localhost:6092 

在JNDI中,首先创建“java.naming.factory.initial”类(在您的示例中是org.apache.activemq.JNDI.ActiveMQInitialContextFactory),然后您可以使用该类支持的任何提供程序URL。根据您的提供商,它可以支持不同的URL类型(tcp:、文件:、ssl:、…)。ActiveMQ支持vm:和tcp:-当指定tcp:时,它将使用该代理中的tcp加载此JNDI配置。

顾名思义,“java.naming.provider.url”应该是一个url,因此以“(protocol):/”开头的内容

自tcp://localhost:6092 在其他配置中为您工作,请尝试以下操作:

<parameter name="java.naming.provider.url" locked="false">tcp://localhost:6092</parameter> 
tcp://localhost:6092 

在JNDI中,首先创建“java.naming.factory.initial”类(在您的示例中是org.apache.activemq.JNDI.ActiveMQInitialContextFactory),然后您可以使用该类支持的任何提供程序URL。根据您的提供商,它可以支持不同的URL类型(tcp:、文件:、ssl:、…)。ActiveMQ支持vm:和tcp:-指定tcp:时,它将使用该代理中的tcp加载此JNDI配置。

您好,我对这种方式没有问题,但是java.naming.provider.url的值将根据环境的不同而不同。因此,我需要为入站配置使用动态结构。我试图从治理文件夹($registry:gov:/javaNamingProviderURL)中的文件读取java.naming.provider.url值,但在入站端点配置中看不到文件内部的url。在WSO2控制台中,我在java.naming.provider.url值中只看到文件的路径。您可以使用基于文件的JNDI实现:将java.naming.factory.initial设置为“com.sun.JNDI.fscontext.RefFSContextFactory”,将java.naming.provider.url设置为”file://conf/jndi.properties“-例如,您好,我对这种方式没有问题,但是java.naming.provider.url的值会根据环境的不同而有所不同。因此,我需要为入站配置使用动态结构。我试图从治理文件夹($registry:gov:/javaNamingProviderURL)中的文件读取java.naming.provider.url值,但在入站端点配置中看不到文件内部的url。在WSO2控制台中,我在java.naming.provider.url值中只看到文件的路径。您可以使用基于文件的JNDI实现:将java.naming.factory.initial设置为“com.sun.JNDI.fscontext.RefFSContextFactory”,将java.naming.provider.url设置为”file://conf/jndi.properties“-例如,见
<parameter name="java.naming.provider.url" locked="false">tcp://localhost:6092</parameter>