You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by Sathya Raghunathan <pa...@gmail.com> on 2007/09/27 06:41:10 UTC
Question on user defined faults and multithreading (Please clarify this urgently for me)
Hi
1) I can understand that multithreading is taken care of by
axis2_http_server after reading one of the mailing lists. For a new request,
a worker thread is created. I would like to know if the number of threads
can be configured or not.
Should i modify any parameter in the httpd.conf for this?
2) I read from one of your mailing list that user defined soap faults can be
sent as an element as part of soap Body by using the
AXIS2_ERROR_SET_STATUS_CODE(env->error, AXIS2_FAILURE); and
AXIS2_ERROR_SET_ERROR_NUMBER(env->error, AXIS2_ERROR_FOO);
But how and where can we create this AXIS2_ERROR_FOO with a custom error
message? Which function to call, to create the error number for
AXIS2_ERROR_FOO? I saw that axis error.c file has all the axis related error
messages defined. Similarly where to define the the AXIS2_ERROR_FOO?
Please clarify
Thank you so much for all the support you have given till now
Regards
Sathya
On 9/26/07, Sathya Raghunathan <pa...@gmail.com> wrote:
>
> Hi
>
> 1) How to build a multithreaded service using axis2c? Can wsdl2c tool
> generate C code with multithreading functionality? If not, what is the way
> to implement multithreading?
> 2) Can we give user defined faults in wsdl file? How will wsdl2c generate
> code corresponding to the faults? Will the code generate any structures for
> these fault types? I have an example wsdl for this. But i am not able to
> generate code, because wsdl2c errors out saying "No element type is defined
> for message faultMethodRequest"
> Please clarify.
>
>
> Below is the wsdl for user defined faults service which takes a single
> integer and generates faults based on that integer value:
>
>
> <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/
> " xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="
> http://schemas.xmlsoap.org/wsdl/" xmlns:tns="
> http://www.roguewave.com/rwsf/webservice/fault" targetNamespace="http://www.roguewave.com/rwsf/webservice/fault
> " name="Fault">
> <message name="faultMethodRequest">
> <part name="in1" type="xsd:int"/>
> </message>
> <message name="faultMethodResponse">
> <part name="return" type="xsd:int"/>
> </message>
> <message name="InvalidRequest">
> <part name="data" type="xsd:int"/>
> </message>
> <message name="WrongParameter">
> <part name="part1" type="xsd:int"/>
> <part name="part2" type="xsd:int"/>
> </message>
> <portType name="Fault">
> <operation name="faultMethod" parameterOrder="in1">
> <input message="tns:faultMethodRequest"/>
> <output message="tns:faultMethodResponse"/>
> <fault name="InvalidRequest" message="tns:InvalidRequest"/>
> <fault name="WrongParameter" message="tns:WrongParameter"/>
> </operation>
> </portType>
> <binding name="Fault" type="tns:Fault">
> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/
> <http://schemas.xmlsoap.org/soap/http%22/>>
> <operation name="faultMethod">
> <soap:operation soapAction="faultMethod" style="document"/>
> <input>
> <soap:body use="literal" namespace="
> http://www.roguewave.com/rwsf/webservice/"/<http://www.roguewave.com/rwsf/webservice/%22/>
> >
> </input>
> <output>
> <soap:body use="literal" namespace="
> http://www.roguewave.com/rwsf/webservice/"/<http://www.roguewave.com/rwsf/webservice/%22/>
> >
> </output>
> <fault name="InvalidRequest">
> <soap:fault name="InvalidRequest" use="literal"/>
> </fault>
> <fault name="WrongParameter">
> <soap:fault name="WrongParameter" use="literal"/>
> </fault>
> </operation>
> </binding>
> <service name="Fault">
> <port name="Fault" binding="tns:Fault">
> <soap:address location="http://localhost:8090/fault/Fault"/
> <http://localhost:8090/fault/Fault%22/>>
> </port>
> </service>
> </wsdl:definitions>
>
>
> Thanks
> Sathya
>
>
>
Re: Question on user defined faults and multithreading (Please clarify this urgently for me)
Posted by Dimuthu Gamage <di...@gmail.com>.
On 9/28/07, Dimuthu Gamage <di...@gmail.com> wrote:
>
>
>
> On 9/27/07, Sathya Raghunathan < pappu.raghunathan@gmail.com> wrote:
> >
> > Hi
> >
> > 1) I can understand that multithreading is taken care of by
> > axis2_http_server after reading one of the mailing lists. For a new request,
> > a worker thread is created. I would like to know if the number of threads
> > can be configured or not.
> > Should i modify any parameter in the httpd.conf for this?
> >
>
> AFAIK you can not configure threads or connections with simple axis2
> server. but you can do it with in apache (with axis2 module)
>
> 2) I read from one of your mailing list that user defined soap faults can
> > be sent as an element as part of soap Body by using the
> > AXIS2_ERROR_SET_STATUS_CODE(env->error, AXIS2_FAILURE); and
> > AXIS2_ERROR_SET_ERROR_NUMBER(env->error, AXIS2_ERROR_FOO);
> >
> > But how and where can we create this AXIS2_ERROR_FOO with a custom error
> > message? Which function to call, to create the error number for
> > AXIS2_ERROR_FOO? I saw that axis error.c file has all the axis related
> > error messages defined. Similarly where to define the the AXIS2_ERROR_FOO?
> >
> > Please clarify
> >
> > Thank you so much for all the support you have given till now
> >
> > Regards
> > Sathya
> >
> > On 9/26/07, Sathya Raghunathan <pappu.raghunathan@gmail.com > wrote:
> > >
> > > Hi
> > >
> > > 1) How to build a multithreaded service using axis2c? Can wsdl2c tool
> > > generate C code with multithreading functionality? If not, what is the way
> > > to implement multithreading?
> > > 2) Can we give user defined faults in wsdl file?
> > >
> >
> Yes, It is as in the sample wsdl you attached. (Please see the comment
> inline inside the wsdl)
>
>
> How will wsdl2c generate code corresponding to the faults?
> > >
> >
> Currently WSDL2C code generation doesnt not support on customized fault
> messages.
>
Anyway you can edit the "axis2_svc_skel_xxxx_on_fault" funciton on the
generated file "axis2_svc_skel_xxxx.c" to build a custom soap fault.
Thanks
Dimuthu
Will the code generate any structures for these fault types? I have an
> > > example wsdl for this. But i am not able to generate code, because wsdl2c
> > > errors out saying "No element type is defined for message
> > > faultMethodRequest"
> > > Please clarify.
> > >
> >
> The wsdl is wrong in following places..
>
>
>
> Below is the wsdl for user defined faults service which takes a single
> > > integer and generates faults based on that integer value:
> > >
> > >
> > > <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
> > > xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/ " xmlns:xsd="
> > > http://www.w3.org/2001/XMLSchema" xmlns:wsdl="
> > > http://schemas.xmlsoap.org/wsdl/" xmlns:tns="
> > > http://www.roguewave.com/rwsf/webservice/fault" targetNamespace="http://www.roguewave.com/rwsf/webservice/fault
> > > " name="Fault">
> > > <message name="faultMethodRequest">
> > > <part name="in1" type="xsd:int"/>
> > > </message>
> > > <message name="faultMethodResponse">
> > > <part name="return" type="xsd:int"/>
> > > </message>
> > > <message name="InvalidRequest">
> > > <part name="data" type="xsd:int"/>
> > >
> >
> You should have an element="some_schema_element" attribute if it is a doc
> style wsdl,
> i.e above should be changed to
> <part name="data" element="some_schema_element"/>
>
>
> </message>
> > > <message name="WrongParameter">
> > > <part name="part1" type="xsd:int"/>
> > > <part name="part2" type="xsd:int"/>
> > >
> >
> Always part of fault message should associated with an element (element in
> a valid schema) both in rpc and doc styles.
>
> Thanks
> Dimuthu
>
> </message>
> > > <portType name="Fault">
> > > <operation name="faultMethod" parameterOrder="in1">
> > > <input message="tns:faultMethodRequest"/>
> > > <output message="tns:faultMethodResponse"/>
> > > <fault name="InvalidRequest" message="tns:InvalidRequest"/>
> > > <fault name="WrongParameter" message="tns:WrongParameter"/>
> > > </operation>
> > > </portType>
> > > <binding name="Fault" type="tns:Fault">
> > > <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/
> > > <http://schemas.xmlsoap.org/soap/http%22/>>
> > > <operation name="faultMethod">
> > > <soap:operation soapAction="faultMethod" style="document"/>
> > > <input>
> > > <soap:body use="literal" namespace=" http://www.roguewave.com/rwsf/webservice/"/
> > > <http://www.roguewave.com/rwsf/webservice/%22/>>
> > > </input>
> > > <output>
> > > <soap:body use="literal" namespace="
> > > http://www.roguewave.com/rwsf/webservice/"/<http://www.roguewave.com/rwsf/webservice/%22/>
> > > >
> > > </output>
> > > <fault name="InvalidRequest">
> > > <soap:fault name="InvalidRequest" use="literal"/>
> > > </fault>
> > > <fault name="WrongParameter">
> > > <soap:fault name="WrongParameter" use="literal"/>
> > > </fault>
> > > </operation>
> > > </binding>
> > > <service name="Fault">
> > > <port name="Fault" binding="tns:Fault">
> > > <soap:address location=" http://localhost:8090/fault/Fault"/
> > > <http://localhost:8090/fault/Fault%22/>>
> > > </port>
> > > </service>
> > > </wsdl:definitions>
> > >
> > >
> > > Thanks
> > > Sathya
> > >
> > >
> > >
> >
> >
>
Re: Question on user defined faults and multithreading (Please clarify this urgently for me)
Posted by Dimuthu Gamage <di...@gmail.com>.
On 9/27/07, Sathya Raghunathan < pappu.raghunathan@gmail.com> wrote:
>
> Hi
>
> 1) I can understand that multithreading is taken care of by
> axis2_http_server after reading one of the mailing lists. For a new request,
> a worker thread is created. I would like to know if the number of threads
> can be configured or not.
> Should i modify any parameter in the httpd.conf for this?
>
AFAIK you can not configure threads or connections with simple axis2 server.
but you can do it with in apache (with axis2 module)
2) I read from one of your mailing list that user defined soap faults can be
> sent as an element as part of soap Body by using the
> AXIS2_ERROR_SET_STATUS_CODE(env->error, AXIS2_FAILURE); and
> AXIS2_ERROR_SET_ERROR_NUMBER(env->error, AXIS2_ERROR_FOO);
>
> But how and where can we create this AXIS2_ERROR_FOO with a custom error
> message? Which function to call, to create the error number for
> AXIS2_ERROR_FOO? I saw that axis error.c file has all the axis related
> error messages defined. Similarly where to define the the AXIS2_ERROR_FOO?
>
> Please clarify
>
> Thank you so much for all the support you have given till now
>
> Regards
> Sathya
>
> On 9/26/07, Sathya Raghunathan <pappu.raghunathan@gmail.com > wrote:
> >
> > Hi
> >
> > 1) How to build a multithreaded service using axis2c? Can wsdl2c tool
> > generate C code with multithreading functionality? If not, what is the way
> > to implement multithreading?
> > 2) Can we give user defined faults in wsdl file?
> >
>
Yes, It is as in the sample wsdl you attached. (Please see the comment
inline inside the wsdl)
How will wsdl2c generate code corresponding to the faults?
> >
>
Currently WSDL2C code generation doesnt not support on customized fault
messages.
Will the code generate any structures for these fault types? I have an
> > example wsdl for this. But i am not able to generate code, because wsdl2c
> > errors out saying "No element type is defined for message
> > faultMethodRequest"
> > Please clarify.
> >
>
The wsdl is wrong in following places..
Below is the wsdl for user defined faults service which takes a single
> > integer and generates faults based on that integer value:
> >
> >
> > <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/ "
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="
> > http://schemas.xmlsoap.org/wsdl/" xmlns:tns="
> > http://www.roguewave.com/rwsf/webservice/fault" targetNamespace="http://www.roguewave.com/rwsf/webservice/fault
> > " name="Fault">
> > <message name="faultMethodRequest">
> > <part name="in1" type="xsd:int"/>
> > </message>
> > <message name="faultMethodResponse">
> > <part name="return" type="xsd:int"/>
> > </message>
> > <message name="InvalidRequest">
> > <part name="data" type="xsd:int"/>
> >
>
You should have an element="some_schema_element" attribute if it is a doc
style wsdl,
i.e above should be changed to
<part name="data" element="some_schema_element"/>
</message>
> > <message name="WrongParameter">
> > <part name="part1" type="xsd:int"/>
> > <part name="part2" type="xsd:int"/>
> >
>
Always part of fault message should associated with an element (element in a
valid schema) both in rpc and doc styles.
Thanks
Dimuthu
</message>
> > <portType name="Fault">
> > <operation name="faultMethod" parameterOrder="in1">
> > <input message="tns:faultMethodRequest"/>
> > <output message="tns:faultMethodResponse"/>
> > <fault name="InvalidRequest" message="tns:InvalidRequest"/>
> > <fault name="WrongParameter" message="tns:WrongParameter"/>
> > </operation>
> > </portType>
> > <binding name="Fault" type="tns:Fault">
> > <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/
> > <http://schemas.xmlsoap.org/soap/http%22/>>
> > <operation name="faultMethod">
> > <soap:operation soapAction="faultMethod" style="document"/>
> > <input>
> > <soap:body use="literal" namespace=" http://www.roguewave.com/rwsf/webservice/"/
> > <http://www.roguewave.com/rwsf/webservice/%22/>>
> > </input>
> > <output>
> > <soap:body use="literal" namespace="
> > http://www.roguewave.com/rwsf/webservice/"/<http://www.roguewave.com/rwsf/webservice/%22/>
> > >
> > </output>
> > <fault name="InvalidRequest">
> > <soap:fault name="InvalidRequest" use="literal"/>
> > </fault>
> > <fault name="WrongParameter">
> > <soap:fault name="WrongParameter" use="literal"/>
> > </fault>
> > </operation>
> > </binding>
> > <service name="Fault">
> > <port name="Fault" binding="tns:Fault">
> > <soap:address location=" http://localhost:8090/fault/Fault"/
> > <http://localhost:8090/fault/Fault%22/>>
> > </port>
> > </service>
> > </wsdl:definitions>
> >
> >
> > Thanks
> > Sathya
> >
> >
> >
>
>
Re: Question on user defined faults and multithreading (Please clarify this urgently for me)
Posted by Sathya Raghunathan <pa...@gmail.com>.
Hi Dimuthu, Please clarify the below questions for me.
Sathya
On 9/27/07, Sathya Raghunathan <pa...@gmail.com> wrote:
>
> Hi
>
> 1) I can understand that multithreading is taken care of by
> axis2_http_server after reading one of the mailing lists. For a new request,
> a worker thread is created. I would like to know if the number of threads
> can be configured or not.
> Should i modify any parameter in the httpd.conf for this?
>
> 2) I read from one of your mailing list that user defined soap faults can
> be sent as an element as part of soap Body by using the
> AXIS2_ERROR_SET_STATUS_CODE(env->error, AXIS2_FAILURE); and
> AXIS2_ERROR_SET_ERROR_NUMBER(env->error, AXIS2_ERROR_FOO);
>
> But how and where can we create this AXIS2_ERROR_FOO with a custom error
> message? Which function to call, to create the error number for
> AXIS2_ERROR_FOO? I saw that axis error.c file has all the axis related
> error messages defined. Similarly where to define the the AXIS2_ERROR_FOO?
>
> Please clarify
>
> Thank you so much for all the support you have given till now
>
> Regards
> Sathya
>
> On 9/26/07, Sathya Raghunathan <pa...@gmail.com> wrote:
> >
> > Hi
> >
> > 1) How to build a multithreaded service using axis2c? Can wsdl2c tool
> > generate C code with multithreading functionality? If not, what is the way
> > to implement multithreading?
> > 2) Can we give user defined faults in wsdl file? How will
> > wsdl2c generate code corresponding to the faults? Will the code generate any
> > structures for these fault types? I have an example wsdl for this. But i am
> > not able to generate code, because wsdl2c errors out saying "No element type
> > is defined for message faultMethodRequest"
> > Please clarify.
> >
> >
> > Below is the wsdl for user defined faults service which takes a single
> > integer and generates faults based on that integer value:
> >
> >
> > <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/ "
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="
> > http://schemas.xmlsoap.org/wsdl/" xmlns:tns="
> > http://www.roguewave.com/rwsf/webservice/fault" targetNamespace="http://www.roguewave.com/rwsf/webservice/fault
> > " name="Fault">
> > <message name="faultMethodRequest">
> > <part name="in1" type="xsd:int"/>
> > </message>
> > <message name="faultMethodResponse">
> > <part name="return" type="xsd:int"/>
> > </message>
> > <message name="InvalidRequest">
> > <part name="data" type="xsd:int"/>
> > </message>
> > <message name="WrongParameter">
> > <part name="part1" type="xsd:int"/>
> > <part name="part2" type="xsd:int"/>
> > </message>
> > <portType name="Fault">
> > <operation name="faultMethod" parameterOrder="in1">
> > <input message="tns:faultMethodRequest"/>
> > <output message="tns:faultMethodResponse"/>
> > <fault name="InvalidRequest" message="tns:InvalidRequest"/>
> > <fault name="WrongParameter" message="tns:WrongParameter"/>
> > </operation>
> > </portType>
> > <binding name="Fault" type="tns:Fault">
> > <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/
> > <http://schemas.xmlsoap.org/soap/http%22/>>
> > <operation name="faultMethod">
> > <soap:operation soapAction="faultMethod" style="document"/>
> > <input>
> > <soap:body use="literal" namespace=" http://www.roguewave.com/rwsf/webservice/"/
> > <http://www.roguewave.com/rwsf/webservice/%22/>>
> > </input>
> > <output>
> > <soap:body use="literal" namespace="
> > http://www.roguewave.com/rwsf/webservice/"/<http://www.roguewave.com/rwsf/webservice/%22/>
> > >
> > </output>
> > <fault name="InvalidRequest">
> > <soap:fault name="InvalidRequest" use="literal"/>
> > </fault>
> > <fault name="WrongParameter">
> > <soap:fault name="WrongParameter" use="literal"/>
> > </fault>
> > </operation>
> > </binding>
> > <service name="Fault">
> > <port name="Fault" binding="tns:Fault">
> > <soap:address location=" http://localhost:8090/fault/Fault"/
> > <http://localhost:8090/fault/Fault%22/>>
> > </port>
> > </service>
> > </wsdl:definitions>
> >
> >
> > Thanks
> > Sathya
> >
> >
> >
>
>