Ведение журнала мыла оси 2

Я создал java-клиентов с использованием wsdl2java, используя axis2. Мои клиентские программы могут успешно подключаться к веб-сервису. Я хочу зарегистрировать исходящий запрос мыла, чтобы прочитать сообщение мыла.

Может ли кто-нибудь направить меня к статье, объясняющей, как я могу регистрировать мыльные сообщения в Axis2.


person AmbGup    schedule 28.12.2010    source источник
comment
кто-нибудь знает, как регистрировать SOAP запрос-ответ на стороне клиента, используя заглушки оси 2?   -  person Jayesh    schedule 07.11.2013


Ответы (4)


Я понимаю, что это старый вопрос, но если он кому-то поможет, вы можете включить ведение журнала, поместив этот тег в разделы <requestFlow> и <responseFlow> вашего globalConfig в файле server-config.wsdd:

<handler type="java:org.apache.axis.handlers.LogHandler"/>
person noah10    schedule 17.06.2011
comment
Это актуально для Axis 1.x, но вопрос именно по Axis2. - person Andreas Veithen; 15.11.2011

вы можете дополнительно рассмотреть возможность написания собственного модуля оси для ведения журнала — проверьте http://axis.apache.org/axis2/java/core/docs/modules.html для получения дополнительной информации.

person kalyan vad    schedule 03.08.2011

Если вы используете привязку данных Axis2, то все автоматически сгенерированные классы для ваших веб-сервисов будут подклассами ADBBean. Вы можете использовать что-то вроде следующего, чтобы преобразовать ADBBean в строку, а затем записать строку.

public static String
writeADBBean(ADBBean aBean) throws XMLStreamException {
    if (null == aBean)
        return "null";
    OMElement omElement;
    try
    {
        // The preferred way of serializing objects generated by Axis2's
        // WSDL2JAVA involves methods that are named the same on every
        // class but that aren't inherited from any base class. So, use
        // reflection to find them.
        QName qname;
        try {
            Field qnameField = aBean.getClass().getField("MY_QNAME");
            qname = (QName)qnameField.get(aBean);
        } catch (Exception e) {
            // Some Axis2-generated objects don't have QNames. Supply
            // one based on the object's class.
            qname = new QName(aBean.getClass().getCanonicalName());
        }
        Method getOMElement = aBean.getClass().getMethod("getOMElement", QName.class, OMFactory.class);
        omElement = (OMElement)getOMElement.invoke(aBean, qname, OMAbstractFactory.getOMFactory());
    } catch (Exception e) {
        log.warn("Reflection failed for " + aBean.toString() + ": " + e.toString());
        throw new XMLStreamException("Cannot serialize " + aBean.toString(), e);
    } catch (NoClassDefFoundError e) {
        log.error("NoClassDefFoundError while serializing " + aBean.toString() + ": " + e.toString());
        throw new XMLStreamException("Cannot serialize " + aBean.toString(), e);
    }
    String serialized = omElement.toStringWithConsume();
    return serialized;
}
person Kenster    schedule 11.05.2011

См. шаг 6 здесь: Axis2 Hello world. Кроме того, вы можете проверить SoapUI

person Lukasz    schedule 28.12.2010