当我在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>
1 回答
我假设您在ESB或任何其他碳产品上安装了DSS功能 . 这是因为碳产品中的axis2 jar不包含方法'getConstantFromHTTPLocationForResource',但dataservice核心在dataservice部署时间内搜索该方法 . 此方法由内核补丁0005引入 . 从nexus repo下载patch0005并将其应用于碳产品 .