2015-05-23 25 views
-1

我使用的是WSO2 Developer Studio 3.5。 我在synapse-config項目中開發了一系列配置工件。Deployng Class Mediator和神器由CAR歸檔

然後我開發了我自己的自定義類中介。

最終我創建了一個複合應用程序項目。在它的內部,我選擇了配置項目和類中介。

使用mvn clean install命令我創建了CAR存檔。

我進入了管理控制檯,並通過碳應用部分添加了汽車文件。在我的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 

確實似乎沒有被加載的類中介。我嘗試了不同的時間,但我總是得到相同的結果。 當我嘗試添加我的類中介時,單擊我的代理的設計視圖上的加載類按鈕可確認此結果:「在路徑中找不到類」。 是手動複製到組件/ lib文件夾中添加自定義類調解器到我的wso2 esb的唯一方法?

+0

上述例外是文件移除嘗試失敗。你有沒有試圖手動刪除它?我清理整個「工作」目錄,實際上是 – user3714601

回答

0

調解類應打包在一個jar文件中並放入服務器<installdir>/repository/components/lib中。

此外,您的錯誤表明汽車文件的錯誤部署。您是從管理控制檯首先取消部署還是重新部署?還是從Developer Studio部署?

+0

第一次部署時發生錯誤。我寫了一個multimodule maven項目..其中的模塊是類調解器,突觸配置項目,最後是汽車項目。這種方式類中介是建立和安裝在本地回購作爲jar文件。最終的結果是一個包含xml工件和jar文件的汽車文件。我試圖通過以admin身份登錄的管理控制檯進行安裝。我的目標是瞄準一個安裝config artifact和class mediator jar的汽車文件。 – Alex

+0

您需要手動將jar文件添加到服務器,使用car文件部署它不起作用。 –

+0

但是afak wso2 esb是osgi,所以不可能將插入器安裝爲插件? – Alex

0

WSO2 ESB基於osgi。因此你可以添加一個自定義的類中介作爲一個osgi包。你可以參考文章[1] [2]。在這裏你必須編寫你自己的pom.xml文件作爲包裝。創建項目之後,您必須使用maven構建它,並將jar文件放置在$ ESB_HOME/repository/components/dropins目錄中。

另一種簡單的方法是創建一個maven項目並編寫一個類中介。然後構建項目並將jar文件放置在$ ESB_HOME/repository/components/lib目錄下。然後運行時會將該jar文件作爲osgi包並在運行時將其部署到服務器。

[1] https://docs.wso2.com/display/ESB403/Writing+a+WSO2+ESB+Mediator
[2] http://wso2.com/library/2898/

感謝&問候,

0

創建一箇中介項目,這裏面寫烏爾自己的自定義類。從ur mediator項目的pom.xml中創建存檔,並將其放入 /repository/components/lib

接下來在您的CAR項目中,通過添加ur mediator項目的依賴來更改POM,最後創建car文件。