我必须拦截APi Publisher事件到wso2 ApiManager wso2am-2.1.0 . 我写了一个像这样的观察者..

import java.io.PrintWriter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.apimgt.api.model.API;
import org.wso2.carbon.apimgt.api.model.APIStatus;
import org.wso2.carbon.apimgt.impl.observers.APIStatusObserver;

public class CustomApiObserver implements APIStatusObserver{
  private static final Log log = LogFactory.getLog(CustomApiObserver.class);

@Override
public boolean statusChanged(APIStatus previous, APIStatus current, API api) 
    {
    log.info("API status updated from: " + previous.getStatus() + " to: " +
            current.getStatus() + " for the API: " + api.getId().getApiName() + " (" + api.getId().getVersion() + ")");
    PrintWriter writer;
    try {
    writer = new PrintWriter("/opt/CustomApiObserver.log", "UTF-8");
    writer.println("The first line");
    writer.close();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return true;       
 }  
}

打包为jar并复制到[AM_HOME] / repository / lib和[AM_HOME] / repository / components / lib .

我没有发现观察员是否应该注册 . 启用Observer还有其他配置吗?

我用谷歌搜索,但我没有找到碳观测员部署的资源 .

wso2server以root身份运行,我没有找到任何记录到碳仪表板或文件wroted,甚至错误跟踪,好像它没有被触发 .

谢谢你们 .