WSO2治理注册表-正在添加服务通知



我按照链接中列出的示例添加自定义电子邮件通知。

在我的maven项目"RegistryService"中:我创建了EmailTransformHandler,并使用maven创建了RegisterService-0.1.jar。我还通过添加处理程序修改了GREG_HOME/repository/conf/axis2/axis2.xml

<handler name="EmailTransformHandler"
                 class="com.registration.example.service.EmailTransformHandler"/>

并在GREG_HOME/repository/components/dropins 中丢弃RegistryService-0.1.jar

package com.registration.example.service;
import java.util.ArrayList;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.engine.Handler;
import org.apache.axis2.handlers.AbstractHandler;
public class EmailTransformHandler extends AbstractHandler implements Handler {
    private String name;
    public String getName() {
        return name;
    }
    @Override
    public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
        if (msgContext.getTo() != null && msgContext.getTo().getAddress().startsWith("mailto:")) {
            try {
                SOAPEnvelope env = msgContext.getEnvelope();
                AXIOMXPath xPath = new AXIOMXPath("//ns:text");
                xPath.addNamespace("ns", "registry_example");
                OMElement element = (OMElement) ((ArrayList) xPath.evaluate(env)).get(0);
                element.setText(element.getText().replace("--", "This message intercepted by Terminator"));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return InvocationResponse.CONTINUE;
    }
}

当我转到GREG_HOME/bin并启动服务器时,我得到以下异常:

2013-02-08 12:05:00,952] FATAL {org.wso2.carbon.core.init.CarbonServerManager} -  WSO2 Carbon initialization Failed
org.apache.axis2.AxisFault: Exception occured while loading the Axis configuration from GREG_HOME/wso2/wso2greg-4.5.3/repository/conf/axis2/axis2.xml
    at org.wso2.carbon.core.CarbonAxisConfigurator.getAxisConfiguration(CarbonAxisConfigurator.java:190)
    at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
    at org.wso2.carbon.core.CarbonConfigurationContextFactory.createNewConfigurationContext(CarbonConfigurationContextFactory.java:65)
    at org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:398)
    at org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:290)
    at org.wso2.carbon.core.init.PreAxis2ConfigItemListener.bundleChanged(PreAxis2ConfigItemListener.java:118)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: org.apache.axis2.deployment.DeploymentException: com.registration.example.service.EmailTransformHandler
    at org.apache.axis2.deployment.util.Utils.loadHandler(Utils.java:149)
    at org.apache.axis2.deployment.AxisConfigBuilder.processPhaseList(AxisConfigBuilder.java:549)
    at org.apache.axis2.deployment.AxisConfigBuilder.processPhaseOrders(AxisConfigBuilder.java:584)
    at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:150)
    at org.wso2.carbon.core.CarbonAxisConfigurator.populateAxisConfiguration(CarbonAxisConfigurator.java:308)
    at org.wso2.carbon.core.CarbonAxisConfigurator.getAxisConfiguration(CarbonAxisConfigurator.java:188)
    ... 8 more
Caused by: java.lang.ClassNotFoundException: com.registration.example.service.EmailTransformHandler
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at org.apache.axis2.util.Loader.loadClass(Loader.java:261)
    at org.apache.axis2.util.Loader.loadClass(Loader.java:229)
    at org.apache.axis2.deployment.util.Utils.loadHandler(Utils.java:116)
    ... 13 more

我缺少什么配置?在谷歌上搜索这个错误并没有产生任何相关的结果(除了一些对我帮助不大的俄罗斯论坛)。我甚至尝试通过WSO2管理控制台添加jar作为扩展,但我仍然遇到了这个异常。

根据错误,您的RegistryService-0.1.jar没有正确设置为类路径。如果jar文件不是OSGI捆绑包,那么该jar文件应该放在"GREG_HOME/repository/components/lib"目录中。

-Ajith

最新更新