【问题标题】:The 'name' attribute is required for a Proxy service definition代理服务定义需要“名称”属性
【发布时间】:2013-02-28 05:56:12
【问题描述】:

我在 WSO2ESB 中部署某些代理配置时遇到问题。当我复制代理配置文件时,即使是像示例 151 这样的一些 Apache Synapse 示例,我也会收到此错误: “代理服务定义需要 'name' 属性”。

The full stack trace is as follows:

wso2esb-4.6.0/repository/deployment/server/synapse-configs/default/proxy-services/synapse_sample_151.xml failed - Continue in fail-safe mode
org.apache.synapse.SynapseException: The 'name' attribute is required for a Proxy service definition
    at org.apache.synapse.config.xml.ProxyServiceFactory.handleException(ProxyServiceFactory.java:369)
    at org.apache.synapse.config.xml.ProxyServiceFactory.createProxy(ProxyServiceFactory.java:79)
    at org.apache.synapse.deployers.ProxyServiceDeployer.deploySynapseArtifact(ProxyServiceDeployer.java:58)
    at org.wso2.carbon.proxyadmin.ProxyServiceDeployer.deploySynapseArtifact(ProxyServiceDeployer.java:73)
    at org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:172)
    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:67)
    at org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:112)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

【问题讨论】:

  • 你的代理配置是什么?

标签: proxy wso2 wso2esb synapse


【解决方案1】:

问题是,如果直接将代理配置部署到“proxy”文件夹位置,proxy.xml 和代理服务名称应该相同。但是如果您尝试使用代理编辑器创建代理,您只需提供名称,系统将自动创建与代理服务名称相同的proxy.xml

【讨论】:

  • 谢谢拉莎。但文件名与代理名相同。我试图从这个样本 (wso2.org/library/articles/2011/07/…) 中删除 cepSample.xml 并且我得到了同样的错误。代理名称也是 cepSample。
  • 如果我将此文件部署在 Apache Synapse 本身中,则不会出现这样的问题。但我想改用 WSO2ESB。
  • @Saeed 如果您检查包含完整突触配置的 cepSample.xml,即您可以替换当前的 syanpse.xml 并将 cepSample.xml 的名称更改为 synapse.xml 并保留在确切的部署/服务器/默认/syanpseconfig 文件夹。否则,您只能选择代理配置并将其保存到另一个具有相同名称的文件(即:cepSample.xml),然后将其部署在代理文件夹中。最好转到源视图,并一一粘贴代理配置/本地条目并查看。在示例中,它包含序列、代理、注册表配置等。
  • 再次感谢拉莎。我刚刚使用向导创建了一个代理服务(名称为 cepSample),创建后,我转到代码视图,从 cepSample.xml 文件中复制并粘贴代码,它给了我这个错误:“代理服务需要一个有效的名字”。
  • @Saeed 提供代理名称后,如果您切换到源视图,默认情况下会提供一些配置,其中包括名称、tarnasport。所以,您可以从这里复制代理的目标配置样本。这些都是简单的事情,您可以识别 xml 标记并查看需要添加和省略哪些标记。或者直接进入ServiceBus菜单-->Sourceview,它会列出完整的synapse配置,这里粘贴你的代理配置
【解决方案2】:

部署到存储库/部署/服务器/默认/synapseconfig/proxy 并确保将所有必要的端点和序列部署到此

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多