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 Fri, 09 Nov 2007 00:01:42 GMT
***********************
Warning: Your file, sample.tar.gz, contains more than 32 files after decompression and cannot
be scanned.
***********************


Hey Dimuthu,

I tried using your wsdl, and I'm also able to properly generate the
source, so I guess it must be something else about my WSDL that is causing
this strange behavior.

Let me be more specific about what I have.  I have 3 files.  I have a
"fooservice.wsdl" that defines a binding and a service.  I have a
"foo.wsdl" with a set of definitions.  Finally I have a foo.xsd that
defines all of my data types.

Any thoughts?

They look something like this:
fooservice.wsdl
  <?xml version="1.0" ?>
- <definitions name="Foo" targetNamespace="http://.ibm.com/fooservice"
xmlns:WS="http://ibm.com/fooservice" xmlns:soap="
http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="
http://schemas.xmlsoap.org/wsdl/mime/" xmlns:WSP="http://ibm.com/foodefs"
xmlns="http://schemas.xmlsoap.org/wsdl/">
  <import namespace="http://ibm.com/foodefs" location="foo.wsdl" />
- <binding name="FooBinding" type="WSP:Foo">
  <soap:binding style="rpc" transport="
http://schemas.xmlsoap.org/soap/http" />
- <operation name="foo">
  <documentation>Perform a foo</documentation>
  <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>
  </binding>
- <service name="FooService">
- <port name="Foo" binding="WS:FooBinding">
  <soap:address location="http://localhost:9080/Foo" />
  </port>
  </service>
  </definitions>

Foo.wsdl looks like this:
  <?xml version="1.0" ?>
- <definitions name="Foo" targetNamespace="http://ibm.com/foodefs"
xmlns:WSP="http://ibm.com/foodefs" xmlns:WSX="http://ibm.com/schema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="
http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/
">
- <types>
- <schema xmlns="http://www.w3.org/2001/XMLSchema">
  <import namespace="http://ibm.com/schema" schemaLocation="foo.xsd" />
  </schema>
  </types>
- <message name="error-fault">
  <part name="fault" element="WSX:error-fault" />
  </message>
- <message name="foo-request">
  <part name="body" type="WSX:FooRequest" />
  </message>
- <message name="foo-response">
  <part name="body" type="WSX:FooResponse" />
  </message>
- <portType name="Foo">
- <operation name="foo">
  <documentation>Do a foo</documentation>
  <input message="WSP:foo-request" />
  <output message="WSP:foo-response" />
  <fault name="fault" message="WSP:error-fault" />
  </operation>
  </portType>
  </definitions>



Thanks,
Mike

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



"Dimuthu Gamage" <dimuthuc@gmail.com>
11/06/2007 11:00 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







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

Hi Michael,
I also try checking out the snaphost - SNAPSHOT  Built on : Nov 06, 2007
(12:46:42 GMT+00:00)  and it was generating soap action correctly!. I made
sure I dont have anything other than the *.jars  in my CLASSPATH. I m
using Sun Java - Java(TM) SE Runtime Environment (build 1.6.0_02-b05)

The generated code for RPC/lit and DOC/lit is attached here. They both
have soap action correctly, so It is not a problem specific to RPC wsdls!

You better checkout whether there are old jars in your classpath.

Thanks
Dimuthu

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

I switched back to the official 1.3 release, and the soapAction strings
were generated properly.  I then downloaded the nightly snapshot from
today, and again, it was producing "\"\"" intead of the soapAction string.
 This appears to be a regression.

I also tried doing the same thing on the Adder4.wsdl, but there were no
problems in either case.  I wonder if that has something to do with the
fact that I'm using style="rpc", not style="document"?

 - Mike

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


Michael Mole/Lexington/IBM@IBMUS
11/05/2007 09:19 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









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

---------------------------------------------------------------------
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