axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Mole <mjm...@us.ibm.com>
Subject Re: Axis2C: WSDL2C not properly handling attributes
Date Mon, 05 Nov 2007 14:19:26 GMT
Hey Dimuthu,

My WSDL does specify a soapAction.  Also, this was working until I moved 
to the nightly snapshot from last week.

My WSDL looks something like this:
    <operation name="foo">
      <soap:operation soapAction="http://ibm.com/foo"/>
      <input>
        <soap:body parts="body" use="literal"
            namespace="http://ibm.com/fooservice"
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body parts="body" use="literal"
            namespace="http://ibm.com/fooservice"
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
      <fault name="fault">
        <soap:fault name="fault" use="literal"
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </fault>
    </operation>

Thanks again,
Mike

Michael J Molé
Software Engineer
IBM Software Group - Rational
(781)676-2710



"Dimuthu Gamage" <dimuthuc@gmail.com> 
11/02/2007 10:10 PM
Please respond to
"Apache AXIS C User List" <axis-c-user@ws.apache.org>


To
"Apache AXIS C User List" <axis-c-user@ws.apache.org>
cc

Subject
Re: Axis2C: WSDL2C not properly handling attributes






Hi Michael,
This happens when the soapAction in the WSDL is empty or just doesn't 
exist. E.g. <soap:operation soapAction="" style="document"/>

In this case it doesnt matter either the soap_action = "\"\"" or 
soap_action = "" , axis2/c always sends the SOAPAction: ""  in the http 
headers in the soap request. So I think it is not a bug:).


Thanks
Dimuthu

On 11/3/07, Michael Mole < mjmole@us.ibm.com> wrote:

Hey Dimuthu, 

One other thing I'm noticing now is that the soap_action in my method 
stubs is being set to "\"\"".  Is this something specific to the snapshot 
I downloaded or is this a new bug? 

Here is a slightly modified listing of one of my method stubs: 
         /** 
          * auto generated method signature 
          * for "foo|[DELETED]" operation. 
          * @param foo 
          * @return 
          */ 
          
                    adb_fooResponse_t* axis2_stub_FooService_foo( 
axis2_stub_t *stub, const axutil_env_t *env, 
                                              adb_foo_t* foo) 
         { 
            axis2_svc_client_t *svc_client = NULL; 
            axis2_options_t *options = NULL; 
            axiom_node_t *ret_node = NULL; 

            const axis2_char_t *soap_action = NULL; 
            axutil_qname_t *op_qname =  NULL; 
            axiom_node_t *payload = NULL; 
            axis2_bool_t is_soap_act_set = AXIS2_TRUE; 
 
            axutil_string_t *soap_act = NULL; 
 
                    adb_fooResponse_t* ret_val = NULL; 
 
                            payload = adb_foo_serialize(foo, env, NULL, 
AXIS2_TRUE); 
                        


            options = axis2_stub_get_options( stub, env); 
            if ( NULL == options ) 
            { 
              AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "options is null in 
stub: Error code:" 
                    " %d :: %s", env->error->error_number, 
                    AXIS2_ERROR_GET_MESSAGE(env->error)); 
              return NULL; 
            } 
            svc_client = axis2_stub_get_svc_client(stub, env ); 
            soap_action = axis2_options_get_action( options, env ); 
            if (NULL == soap_action) 
            { 
              is_soap_act_set = AXIS2_FALSE; 
              soap_action = "\"\""; 
 
              soap_act = axutil_string_create(env, "\"\""); 
              axis2_options_set_soap_action(options, env, soap_act);     
 
              axis2_options_set_action( options, env, soap_action ); 
            } 
 
            axis2_options_set_soap_version(options, env, AXIOM_SOAP11 ); 
 
            op_qname = axutil_qname_create(env, 
                                        "foo" , 
                                        "[DELETED]", 
                                        NULL); 
            ret_node =  axis2_svc_client_send_receive_with_op_qname( 
svc_client, env, op_qname, payload); 
  
            if (!is_soap_act_set) 
            { 
 
              axis2_options_set_soap_action(options, env, NULL);     
 
              axis2_options_set_action( options, env, NULL); 
            } 

 
                    if ( NULL == ret_node ) 
                    { 
                        return NULL; 
                    } 
                    ret_val = adb_execute_foo_create(env); 

                    adb_execute_foo_deserialize(ret_val, env, ret_node ); 
                    return ret_val; 
 
        } 
        

Thanks, 
Mike 

Michael J Molé
Software Engineer
IBM Software Group - Rational
(781)676-2710 


Michael Mole/Lexington/IBM@IBMUS 
11/02/2007 04:04 PM 


Please respond to
"Apache AXIS C User List" <axis-c-user@ws.apache.org>


To
"Apache AXIS C User List" <axis-c-user@ws.apache.org> 
cc

Subject
Re: Axis2C: WSDL2C not properly handling attributes









Hey Dimuthu, 

You are right.  I was using the 1.3 release version, but the latest 
snapshot has resolved this issue. 

Thanks! 

Michael J Molé
Software Engineer
IBM Software Group - Rational
(781)676-2710 

"Dimuthu Gamage" <dimuthuc@gmail.com> 
11/01/2007 12:11 AM 

Please respond to
"Apache AXIS C User List" <axis-c-user@ws.apache.org>



To
"Apache AXIS C User List" <axis-c-user@ws.apache.org> 
cc

Subject
Re: Axis2C: WSDL2C not properly handling attributes









***********************
Warning: Your file, case2.tar.gz, contains more than 32 files after 
decompression and cannot be scanned.
***********************


Hi Michael,
This problem was there for sometime back. And I thought I fixed it. May be 
it is not for all the cases.
I m attaching the testcase I used to test attribute. 

WSDL: case2/res/Adder4.wsdl
Generated stub code: case2/stub 
Generated skel code: case2/skel

And if you find your generated code is different, please try with the 
latest snapshot. 
http://people.apache.org/dist/axis2/nightly/axis2-SNAPSHOT-bin.zip 

Thanks
Dimuthu

On 11/1/07, Michael Mole <mjmole@us.ibm.com > wrote: 

I have an xsd that defines a complex type with an attribute.  When I 
generate adb databindings using WSDL2C, the generated serialize method 
will crash when I run it.  It appears that this is because the attribute 
is added using  a call to axiom_element_add_attribute.  However, the 
element being passed to axiom_element_add_attribute is of type 
axutil_stream_t, and the element tags had already been written anyway 
using axutil_stream_write. 

I can't imagine that I'm the first one to try to use adb_bindings with an 
element that has an attribute.  Has anyone else ever run into a problem 
like this or been successful?  Should I raise a JIRA? 
      

Thanks,
Mike 

Michael J Molé
Software Engineer
IBM Software Group - Rational
(781)676-2710 
[attachment "case2.tar.gz" deleted by Michael Mole/Lexington/IBM] 
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org 


Mime
View raw message