0

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

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

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

并将 RegistryService-0.1.jar 放入GREG_HOME/repository/components/dropins

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 作为扩展,但我仍然得到这个异常。

4

1 回答 1

0

根据错误,您的 RegistryService-0.1.jar 未正确设置为类路径。如果 jar 文件不是 OSGI 包,则应将 jar 文件放入“GREG_HOME/repository/components/lib”目录。

-阿吉特

于 2013-04-04T19:31:34.750 回答