【问题标题】:Deployng Class Mediator and Artifact by CAR archive通过 CAR 存档部署 Class Mediator 和 Artifact
【发布时间】:2015-08-05 17:46:39
【问题描述】:

我正在使用 WSO2 Developer Studio 3.5。 我在 synapse-config 项目中开发了一系列配置工件。

然后我开发了自己的自定义类中介。

最终我创建了一个复合应用程序项目。在它的 pom 中,我选择了配置项目和类中介。

使用 mvn clean install 命令我创建了 CAR 存档。

我进入管理控制台,通过 carbon app 部分添加了汽车文件。查看我的 wso2 esb 4.8.1 日志,我看到了一些异常:

[2015-05-23 23:52:58,900] ERROR - CappAxis2Deployer Error while deploying carbon application C:\CodeHome\WSO2ES~1.1\bin\..\repository\deployment\server\carbonapps\Diogene-WSO2CAR_1.0.0.car
org.apache.synapse.deployers.SynapseArtifactDeploymentException: Error while backing up the artifact: DynamicEndpointConfigurationTask-1.0.0.xml
    at org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.handleSynapseArtifactDeploymentError(AbstractSynapseArtifactDeployer.java:473)
    at org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.backupFile(AbstractSynapseArtifactDeployer.java:517)
    at org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.deploy(AbstractSynapseArtifactDeployer.java:197)
    at org.wso2.carbon.application.deployer.synapse.SynapseAppDeployer.deployArtifacts(SynapseAppDeployer.java:100)
    at org.wso2.carbon.application.deployer.internal.ApplicationManager.deployCarbonApp(ApplicationManager.java:251)
    at org.wso2.carbon.application.deployer.CappAxis2Deployer.deploy(CappAxis2Deployer.java:114)
    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.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:79)
    at org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:124)
    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:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException: Failed to delete original file 'C:\CodeHome\WSO2ES~1.1\bin\..\repository\carbonapps\work\1432417976326Diogene-WSO2CAR_1.0.0.car\DynamicEndpointConfigurationTask_1.0.0\DynamicEndpointConfigurationTask-1.0.0.xml' after copy to 'C:\CodeHome\wso2esb-4.8.1\repository\carbonapps\work\1432417976326Diogene-WSO2CAR_1.0.0.car\DynamicEndpointConfigurationTask_1.0.0\DynamicEndpointConfigurationTask-1.0.0.xml.back'
    at org.apache.commons.io.FileUtils.moveFile(FileUtils.java:2109)
    at org.apache.synapse.deployers.AbstractSynapseArtifactDeployer.backupFile(AbstractSynapseArtifactDeployer.java:515)
    ... 22 more

确实,似乎没有加载类调解器。我尝试了不同的时间,但我总是得到相同的结果。 当我尝试添加我的类调解器时,通过单击代理的设计视图上的加载类按钮来确认此结果:“在路径中找不到类”。 手动复制到 components/lib 文件夹是向我的 wso2 esb 添加自定义类中介的唯一方法吗?

【问题讨论】:

  • 上述异常是文件删除尝试失败。您是否尝试过手动删除它?事实上,我会清理整个“工作”目录

标签: deployment wso2 osgi wso2esb mediator


【解决方案1】:

中介类应该打包在一个jar文件中并放在<installdir>/repository/components/lib的服务器上。

此外,您的错误表明汽车文件的部署有误。您是先从管理控制台取消部署,还是重新部署?还是从 Developer Studio 部署?

【讨论】:

  • 第一次部署时出现错误。我写了一个多模块 maven 项目。它的模块是类调解器,突触配置项目,最后是汽车项目。这样,类调解器作为 jar 文件构建并安装在本地 repo 中。最终结果是一个包含 xml 工件和 jar 文件的汽车文件。我试图通过以管理员身份登录的管理控制台安装它。我的目标是瞄准一个汽车文件,通过它安装配置工件和类中介 jar。
  • 需要手动添加jar文件到服务器,使用car文件部署不行。
  • 但是 afak wso2 esb 是 osgi,所以不能安装中介作为插件吗?
【解决方案2】:

创建一个中介项目并在其中编写您自己的自定义类。从你的中介项目的 pom.xml 创建存档并将其放置在里面 /repository/components/lib

接下来在你的 CAR 项目中通过添加你的中介项目的依赖来更改 POM,然后最后创建汽车文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多