2013-06-12 109 views
2

我喜歡爲WSO2 ESB編寫自定義介體。 我發現了一些這方面的教程,但我沒有得到它在WSO2 ESB中的工作。我想我可能在Class Mediator的路徑中有一個錯誤,但讓我解釋一切:WSO2 ESB使用自定義介體

對於編寫這個調解器,我使用WSO2開發人員Studio for Eclipse Juno。

在那裏,我創建了一個名爲「b64writer」這一內容的新ESB項目中保:

package org.wso2.carbon; 
import org.apache.synapse.MessageContext; 
import org.apache.synapse.mediators.AbstractMediator; 
public class B64Mediator extends AbstractMediator { 
    public boolean mediate(MessageContext context) { 
     // TODO Implement your mediation logic here   
     String inhalt = context.getEnvelope().toString(); 
     trace.trace("Message: " + inhalt); 
     return true; 
    } 
} 

在下一步中,我創建了一個全新的碳纖維應用程序項目,對「相關性」選擇的調解員。造成這種情況的配置是:

  • 組ID:org.wso2.carbon.b64mediator
  • 工件ID:b64mediator
  • 版本:1.0.0

我用右邊的按鈕一邊創建一個檔案。這個檔案我複製到「C:\ wso2esb \ repository \ carbonapps \ 0」。

現在我的問題:我如何使用這個調解器? 它應該這樣工作:

<class name="org.wso2.carbon.B64Mediator" /> 

但事實並非如此。 WSO2 ESB找不到該類。我的錯誤在哪裏?

回答

0

將檔案放在repository/components/dropinsrepository/components/lib (if you don't build it as an osgi bundle)目錄中。

+1

都嘗試,實在不行,我仍然得到錯誤_class不在path_發現如果我點擊_Load class_-按鈕。 – muetze

0

您應該將類​​調解器部署爲java庫工件並從類調解器中引用它們。也就是說,deply你從開發工作室創建的jar並保存在repository/components/lib文件夾中並重新啓動服務器。 然後請參考;

<class name="org.wso2.carbon.B64Mediator" /> 

從您的序列

+0

它仍然無法正常工作。 ESB無法找到該課程。請檢查我的包裹路徑,是否正確? – muetze

+0

你的包/類的名字是正確的。你打包打造這個JAR嗎?那是,當你嘗試揭示你的中介項目時,它會使一個罐子變成怪物。如果你提取並看到,你會看到類在那裏。所以,如果你把它放在提到的lib文件夾中,它應該在calsspath中可用。但是你需要重新啓動服務器。 – Ratha

+0

你對「Exposr」有什麼意思?我試圖在我的項目上右鍵單擊並將其導出爲java-jar文件。 我也嘗試導出爲可部署的WSO2 Archiv。我用這兩種方法得到了一個jar文件,但是在WSO2 ESB中找不到這個類。 – muetze

1

好吧,我有同樣的問題,因爲你,我設法通過WSO2 Developer Studio中添加爲Eclipse來製作調解庫添加調解。 (打開新的嚮導框,並選擇WSO2/Extensions/Project Types/Mediator Project)

然後創建您的介體或放入項目,並將其作爲jar文件導出到/ repository/components/lib文件夾。每次更新jar時,或者在添加jar時運行ESB,都必須重新啓動ESB。

我希望這會有所幫助。

0

我不知道你是否已經解決了你的問題。我有同樣的問題,但我可以解決它。

我使用Eclipse Kepler中的WSO2 Developer Studio「Mediator Project」創建了我的介體。接下來,我導出到Java/JAR文件,右鍵單擊我的項目,然後在屬性中選擇「導出生成的類文件和資源」。

你必須將它放在倉庫/組件/ lib文件夾,然後重新啓動JAR文件的ESB