java.lang.ClassCastException:com.marklogic.xcc.jndi.ContentSourceBeanFactory不能强制转换为javax.naming.spi.InitialContextFactory]

java.lang.ClassCastException:com.marklogic.xcc.jndi.ContentSourceBeanFactory不能强制转换为javax.naming.spi.InitialContextFactory],java,wso2,marklogic,wso2dss,Java,Wso2,Marklogic,Wso2dss,我在WSO2数据服务服务器中创建JNDI数据源时出错,我将MarkLogic XCC/J连接器用作may JNDI上下文类,但我遇到了一个错误 DS Fault Message: Naming error occurred while trying to retrieve JDBC Connection from JNDI tree. DS Code: UNKNOWN_ERROR Source Data Service:- Name: marklogicserver Location: /mar

我在WSO2数据服务服务器中创建JNDI数据源时出错,我将MarkLogic XCC/J连接器用作may JNDI上下文类,但我遇到了一个错误

DS Fault Message: Naming error occurred while trying to retrieve JDBC Connection from JNDI tree. DS Code: UNKNOWN_ERROR Source Data Service:- Name: marklogicserver Location: /marklogicserver.dbs Description: N/A Default Namespace: http://ws.wso2.org/dataservice Nested Exception:- javax.naming.NoInitialContextException: Failed to create InitialContext using factory specified in hash table. [Root exception is java.lang.ClassCastException: com.marklogic.xcc.jndi.ContentSourceBeanFactory cannot be cast to javax.naming.spi.InitialContextFactory] at org.wso2.carbon.dataservices.core.description.config.JNDIConfig.createDataSource(JNDIConfig.java:95) at org.wso2.carbon.dataservices.core.description.config.JNDIConfig.(JNDIConfig.java:49) at org.wso2.carbon.dataservices.core.description.config.ConfigFactory.getJNDIConfig(ConfigFactory.java:98) at org.wso2.carbon.dataservices.core.description.config.ConfigFactory.createConfig(ConfigFactory.java:62) at org.wso2.carbon.dataservices.core.DataServiceFactory.createDataService(DataServiceFactory.java:150) at org.wso2.carbon.dataservices.core.DBDeployer.createDBService(DBDeployer.java:785) at org.wso2.carbon.dataservices.core.DBDeployer.processService(DBDeployer.java:1139) at org.wso2.carbon.dataservices.core.DBDeployer.deploy(DBDeployer.java:195) at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807) at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377) at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254) at org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:135) at org.wso2.carbon.core.CarbonAxisConfigurator.deployServices(CarbonAxisConfigurator.java:567)
这是我的配置文件

<data name="marklogicserver" transports="http https local">
   <config enableOData="false" id="mlsource">
      <property name="jndi_context_class">com.marklogic.xcc.jndi.ContentSourceBeanFactory</property>
      <property name="jndi_provider_url"></property>
      <property name="jndi_resource_name">marklogic/ContentSource</property>
   </config>
   <query id="getQuery" useConfig="mlsource">
      <sql>let $x := cts:search(fn:collection(""),cts:and-query(("","")))&#xd;&#xd;return $x</sql>
      <result element="Documents" rowName="Document">
         <element column="Data" name="Data" xsdType="string"/>
      </result>
   </query>
   <operation name="getQueryOperation">
      <call-query href="getQuery"/>
   </operation>
   <resource method="GET" path="getQuery">
      <call-query href="getQuery"/>
   </resource>
</data>

com.marklogic.xcc.jndi.ContentSourceBeanFactory
marklogic/ContentSource
设$x:=cts:search(fn:collection(“”),cts:and query((“”,“”)和#xd&#除息的;返回$x
我的配置有什么问题?
请帮助

看起来WSO2需要实现javax.naming.spi.InitialContextFactory的东西,但是ContentSourceFactoryBean只实现javax.naming.spi.ObjectFactory


我没有尝试过这一点,但我想您可以编写InitialContextFactory的实现,该实现生成一个上下文,以确保ContentSourceFactoryBean用作ObjectFactory实现

看看这个:它对我不起作用:(