当我在Carbon Management Console中创建Wso2数据服务时,出现以下错误:
[2014-07-15 09:21:40,558] ERROR {org.wso2.carbon.dataservices.core.DBDeployer} - The Jim2.dbs service, which is not valid, caused {1} java.lang.NoSuchMethodError: org.apache.axis2.wsdl.WSDLUtil.getConstantFromHTTPLocationForResource(Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/Pattern; at org.wso2.carbon.dataservices.core.DBDeployer.createAxisOperation(DBDeployer.java:594) at org.wso2.carbon.dataservices.core.DBDeployer.createAxisOperationFromDSOperation(DBDeployer.java:532) at org.wso2.carbon.dataservices.core.DBDeployer.createDBService(DBDeployer.java:829) at org.wso2.carbon.dataservices.core.DBDeployer.processService(DBDeployer.java:1127) at org.wso2.carbon.dataservices.core.DBDeployer.deploy(DBDeployer.java:178) at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:810) 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.RepositoryListener.startListener(RepositoryListener.java:371) at org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:59) at org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:67) at org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.runAxisDeployment(CarbonDeploymentSchedulerTask.java:65) at org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:110) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.runAndReset(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
数据服务xml:
<data disableStreaming="true" name="Jim2">
<config id="jim2">
<property name="carbon_datasource_name">MysqlJim</property>
</config>
<query id="query" useConfig="jim2">
<sql>select * from Users</sql>
<result element="Users" rowName="User">
<element column="Username" name="Username" xsdType="string"/>
<element column="Email" name="Email" xsdType="string"/>
<element column="Password" name="Password" xsdType="string"/>
</result>
</query>
<operation name="operation1">
<call-query href="query"/>
</operation>
</data>
答案 0 :(得分:1)
我假设您已经在ESB或任何其他碳产品上安装了DSS功能。这是因为碳产品中的axis2 jar不包含方法&#39; getConstantFromHTTPLocationForResource&#39;但dataservice核心正在dataservice部署时间内搜索该方法。此方法由内核修补程序0005引入。从nexus repo下载patch0005并将其应用于碳产品。