Hi,

I would like to invoke a web service operation without using the stub generator, to that goal I am using the woden parser to parse the WSDL file and generate the request message accordingly. But it crashes (I am testing this on Windows). While debugging I have found the following situation:

file: /c/woden/src/wsdl/documentable.c

I see that:

    documentable_impl_l = NULL

woden_documentable_resolve_methods(
    woden_documentable_t *documentable,
    const axis2_env_t *env,
    woden_documentable_t *documentable_impl,
    axis2_hash_t *methods)
{
[...]
    documentable->ops->add_documentation_element = axis2_hash_get(methods, <-- after this, add_documentation_element = NULL
            "add_documentation_element", AXIS2_HASH_KEY_STRING);
    if (!documentable->ops->add_documentation_element && documentable_impl_l) <-- it does not enter here
        documentable->ops->add_documentation_element =
            documentable_impl_l->documentable.ops->add_documentation_element;
[...]
}

after the execution of this function, the operation
add_documentation_element = NULL, then in the following function it fails:


file: /c/woden/src/builder/wsdl10_reader.c
static void *
parse_interface_op(
    void *reader,
    const axis2_env_t *env,
    axiom_node_t *op_el_node,
    void *desc,
    void *parent)
{
[...]
        if (AXIS2_TRUE == axis2_qname_util_matches(env,
                q_elem_documentation, temp_el_node))
        {
            void *documentation = NULL;

            documentation = parse_documentation(reader, env, temp_el_node, desc);
            op = woden_interface_op_to_documentable(op, env);
            WODEN_DOCUMENTABLE_ADD_DOCUMENTATION_ELEMENT(op, env, documentation); <-- Fails here
        }

[...]
}


The call to
WODEN_DOCUMENTABLE_ADD_DOCUMENTATION_ELEMENT fails, because the method add_documentation_element is null.

I have tested this with my own code, as well as with the test_woden sample program (which is very similar to my code), using different wsdl files, for example the googlesearch.wsdl file, and the result was always the same.

Can this be a bug or am I doing something wrong?

Thanks & regards,

jms.



Reply via email to