每当我尝试将应用程序重新部署到esb时,我都会收到错误消息 . 我试图合并来自不同api的2响应,然后映射并操纵该响应 . 我也使用最新的5.0.0 BETA版本esb工具和esb .
这是错误的原因
org.apache.axis2.deployment.DeploymentException:文件中的API部署:/Users/me/Downloads/wso2esb-5.0.0-BETA2/tmp/carbonapps/-1234/1468999438631movieapiApp_1.0.0.car/movieAPI_1.0.0/movieAPI -1.0.0.xml:失败 . 在在org.wso2.carbon.application org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:213)在org.wso2.carbon.application.deployer.synapse.SynapseAppDeployer.deployArtifacts(SynapseAppDeployer.java:131) .deployer.internal.ApplicationManager.deployCarbonApp(ApplicationManager.java:263)在org.wso2.carbon.application.deployer.CappAxis2Deployer.deploy(CappAxis2Deployer.java:72)在org.apache.axis2.deployment.repository.util.DeploymentFileData .deploy(DeploymentFileData.java:136)org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:807)org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) )在在org.apache.axis2.deployment.RepositoryListener org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377)在org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254) . org.apache.axis2.deploy中的startListener(RepositoryListener.java:371) ment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:59)在org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:67)在org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.runAxisDeployment( CarbonDeploymentSchedulerTask.java:93)在org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:138)在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)在java.util中.concurrent.FutureTask.runAndReset(FutureTask.java:308)at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301(ScheduledThreadPoolExecutor.java:180)at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java: 294)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java) :745)引起:org.apache.axis2.deploy ment.DeploymentException:文件中的API部署:/Users/me/Downloads/wso2esb-5.0.0-BETA2/tmp/carbonapps/-1234/1468999438631movieapiApp_1.0.0.car/movieAPI_1.0.0/movieAPI-1.0.0.xml:失败 . 在org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:201)... 20更多引起:org.apache.synapse.deployers.SynapseArtifactDeploymentException:文件中的API部署:/ Users / me / Downloads / wso2esb-5.0.0-BETA2 / tmp / carbonapps / -1234 / 1468999438631movieapiApp_1.0.0.car / movieAPI_1.0.0 / movieAPI-1.0.0.xml:失败 . org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.handleSynapseArtifactDeploymentError(AbstractSynapseArtifactDeployer.java:474)atg.apache.synapse.deployers.APIDeployer.deploySynapseArtifact(APIDeployer.java:71)at org.wso2.carbon.rest.api.ApiDeployer org.apache.synapse.SynapseException:.deploySynapseArtifact(ApiDeployer.java:34)在org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:194)...... 20多所造成的名称重复的资源定义:moviegi at org.apache.synapse.config.SynapseConfiguration.handleException(SynapseConfiguration.java:1627)org.apache.synapseConfiguration.addAPI(SynapseConfiguration.java:414)atg.apache.synapse.deployers.APIDeployer org.apache.synapse.config.SynapseConfiguration.addAPI(SynapseConfiguration.java:414) .deploySynapseArtifact(APIDeployer.java:59)......还有22个
这是我的api
<?xml version="1.0" encoding="UTF-8"?>
<api context="/movieapi" name="movieapi" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET" uri-template="/*">
<inSequence>
<property name="ROOT" scope="default">
<root:movie xmlns:root="www.wso2esb.com"/>
</property>
<log level="full"/>
<clone continueParent="true" id="movie" sequential="true">
<target>
<sequence>
<send>
<endpoint>
<address format="rest" uri="https://api.themoviedb.org/3/movie/tt0918940?api_key=code&append_to_response=casts,images%22"/>
</endpoint>
</send>
</sequence>
</target>
<target>
<sequence>
<send>
<endpoint>
<address format="rest" uri="https://www.omdbapi.com/?type=movie&i=tt0918940"/>
</endpoint>
</send>
</sequence>
</target>
</clone>
</inSequence>
<outSequence>
<aggregate id="movie">
<completeCondition>
<messageCount max="-1" min="-1"/>
</completeCondition>
<onComplete enclosingElementProperty="ROOT" expression="//jsonObject" xmlns:dummy="http://org.dummy" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<datamapper config="gov:datamapper/movieapiMapping.dmc" inputSchema="gov:datamapper/movieapiMapping_inputSchema.json" inputType="JSON" outputSchema="gov:datamapper/movieapiMapping_outputSchema.json" outputType="JSON"/>
<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
<respond/>
</onComplete>
</aggregate>
</outSequence>
<faultSequence/>
</resource>
</api>
这是来自终端
[2016-07-20 15:36:48,890] ERROR - DataMapperMediator DataMapper mediator : mapping configuration is null
2 回答
您在终端
DataMapperMediator DataMapper mediator : mapping configuration is null
中收到的错误是因为未部署相关的注册表资源(更准确地说,是配置.dmc文件) . 在部署capp时,请确保包含所有注册表资源 . 此外,当capp部署失败时,您是否可以在管理控制台中检查是否存在任何错误的服务/ API?您收到指示数据映射器配置为null的错误 . 所以你必须添加您在代理中给出的相关配置:
例如:你表示 gov:datamapper/movieapiMapping.dmc
这应该在治理注册表中提供 . 请将相关配置部署到ESB中 .