You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by Samisa Abeysinghe <sa...@yahoo.com> on 2004/05/26 12:38:51 UTC

Re: The Stub base class

Roshan,
   I commited the Stub class.
   The test application is in tests/client/stubTest/stubBase folder.
   Stub.h is in include/axis/client and Stub.cpp in src/engine/client

   Please use the test sample and improve the Stub class until the java tool is updated. (add
get/remove methods)
   
   Soap body attributes, transport timeouts etc. could be made to set at stub level using this
Stub class. 

   I tested the class on Linux and it worked, however there were problems adding content into a
header. Also I did not test this on Windows, hence please test on windows.

Thanks,
Samisa...

--- Samisa Abeysinghe <sa...@yahoo.com> wrote:
> Hi All,
>    At last, here it is!!! (see below)
>    I had to do many changes like adding copy constructors to get this stub working.
>    The hard part was not to write this stub class, but to get the rest of the code behave in a
> way
> to support setting SOAP/Transport headers.
>    I have commited the changes to other classes but not this Stub class.
> 
>    I tested this and it works. This means that at the stub level, HTTP headers, SOAP headers
> could
> be set.
> Sample usage:
>     InteropTestPortType ws(endpoint); //create stub object
>     ws.setEndPoint( "http://localhost:8080/axis/services/echo" );
>     ws.setTransportProperty( "Accept-Language", " da, en-gb;q=0.8, en;q=0.7" );
>     IHeaderBlock* phb = ws.createHeaderBlock( "Trans", "m", "http://ws.apache.org/axisCppTest/"
> );
> 
>    However there remains much more work: change stub generation to inherit from this class; add
> get/remove methods for SOAP/HTTP header manipulation etc...
> 
>    Your comments on this are welcome.
> Thanks,
> Samisa...
> 
> class Stub
> {
> public:
>         Stub(const char* pchEndpointUri);
>         virtual ~Stub();
>         int initilizeCall();
>         void setEndPoint(char* pcEndPoint);
>         void setTransportProperty(const char* pcKey, const char* pcValue);
>         IHeaderBlock* createHeaderBlock(AxisChar *pachLocalName,
>                 AxisChar *pachPrefix, AxisChar *pachUri);
> 
> protected:
>         void setTransportProperties();
>         void setSOAPHeaders();
>         Call* m_pCall;
>         vector <char*> m_vKeys;
>         vector <char*> m_vValues;
>         vector <IHeaderBlock*> m_vSOAPHeaderBlocks;
> 
> };
> 
> 
> 
> 	
> 		
> __________________________________
> Do you Yahoo!?
> Friends.  Fun.  Try the all-new Yahoo! Messenger.
> http://messenger.yahoo.com/ 



	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/ 

Re: The Stub base class

Posted by Roshan Weerasuriya <ro...@opensource.lk>.
hi samisa,

This is a good approach which you have come up to live with existing stuff, 
for the moment. I added few thing to let this code run on windows, and few 
required methods.

 >    Soap body attributes, transport timeouts etc. could be made to set at 
stub level using this
 > Stub class

added setting method attributes.

 >however there were problems adding content into a
 > header

Fixed it.

 >Also I did not test this on Windows, hence please test on windows.

Tested.

rgds,
Roshan


rgds,
Roshan

rgds,
Roshan

At 05:42 AM 5/26/2004 -0700, you wrote:
>I updated the WSDL2WS tool to eneble the generated stub to inherit from 
>Stub base class.
>I only changed the java code for cpp and cpp/literal client stub generation.
>The Stub class should be wrapped for the C services to expose the set/get 
>interface for SOAP/HTTP
>headers. This task is still TODO.
>
>Thanks,
>Samisa...
>
>--- Samisa Abeysinghe <sa...@yahoo.com> wrote:
> > Roshan,
> >    I commited the Stub class.
> >    The test application is in tests/client/stubTest/stubBase folder.
> >    Stub.h is in include/axis/client and Stub.cpp in src/engine/client
> >
> >    Please use the test sample and improve the Stub class until the java 
> tool is updated. (add
> > get/remove methods)
> >
> >    Soap body attributes, transport timeouts etc. could be made to set 
> at stub level using this
> > Stub class.
> >
> >    I tested the class on Linux and it worked, however there were 
> problems adding content into a
> > header. Also I did not test this on Windows, hence please test on windows.
> >
> > Thanks,
> > Samisa...
> >
> > --- Samisa Abeysinghe <sa...@yahoo.com> wrote:
> > > Hi All,
> > >    At last, here it is!!! (see below)
> > >    I had to do many changes like adding copy constructors to get this 
> stub working.
> > >    The hard part was not to write this stub class, but to get the 
> rest of the code behave in a
> > > way
> > > to support setting SOAP/Transport headers.
> > >    I have commited the changes to other classes but not this Stub class.
> > >
> > >    I tested this and it works. This means that at the stub level, 
> HTTP headers, SOAP headers
> > > could
> > > be set.
> > > Sample usage:
> > >     InteropTestPortType ws(endpoint); //create stub object
> > >     ws.setEndPoint( "http://localhost:8080/axis/services/echo" );
> > >     ws.setTransportProperty( "Accept-Language", " da, en-gb;q=0.8, 
> en;q=0.7" );
> > >     IHeaderBlock* phb = ws.createHeaderBlock( "Trans", "m",
> > "http://ws.apache.org/axisCppTest/"
> > > );
> > >
> > >    However there remains much more work: change stub generation to 
> inherit from this class;
> > add
> > > get/remove methods for SOAP/HTTP header manipulation etc...
> > >
> > >    Your comments on this are welcome.
> > > Thanks,
> > > Samisa...
> > >
> > > class Stub
> > > {
> > > public:
> > >         Stub(const char* pchEndpointUri);
> > >         virtual ~Stub();
> > >         int initilizeCall();
> > >         void setEndPoint(char* pcEndPoint);
> > >         void setTransportProperty(const char* pcKey, const char* 
> pcValue);
> > >         IHeaderBlock* createHeaderBlock(AxisChar *pachLocalName,
> > >                 AxisChar *pachPrefix, AxisChar *pachUri);
> > >
> > > protected:
> > >         void setTransportProperties();
> > >         void setSOAPHeaders();
> > >         Call* m_pCall;
> > >         vector <char*> m_vKeys;
> > >         vector <char*> m_vValues;
> > >         vector <IHeaderBlock*> m_vSOAPHeaderBlocks;
> > >
> > > };
> > >
> > >
> > >
> > >
> > >
> > > __________________________________
> > > Do you Yahoo!?
> > > Friends.  Fun.  Try the all-new Yahoo! Messenger.
> > > http://messenger.yahoo.com/
> >
> >
> >
> >
> >
> > __________________________________
> > Do you Yahoo!?
> > Friends.  Fun.  Try the all-new Yahoo! Messenger.
> > http://messenger.yahoo.com/
>
>
>
>
>
>__________________________________
>Do you Yahoo!?
>Friends.  Fun.  Try the all-new Yahoo! Messenger.
>http://messenger.yahoo.com/




Re: The Stub base class

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
I updated the WSDL2WS tool to eneble the generated stub to inherit from Stub base class.
I only changed the java code for cpp and cpp/literal client stub generation.
The Stub class should be wrapped for the C services to expose the set/get interface for SOAP/HTTP
headers. This task is still TODO.

Thanks,
Samisa...

--- Samisa Abeysinghe <sa...@yahoo.com> wrote:
> Roshan,
>    I commited the Stub class.
>    The test application is in tests/client/stubTest/stubBase folder.
>    Stub.h is in include/axis/client and Stub.cpp in src/engine/client
> 
>    Please use the test sample and improve the Stub class until the java tool is updated. (add
> get/remove methods)
>    
>    Soap body attributes, transport timeouts etc. could be made to set at stub level using this
> Stub class. 
> 
>    I tested the class on Linux and it worked, however there were problems adding content into a
> header. Also I did not test this on Windows, hence please test on windows.
> 
> Thanks,
> Samisa...
> 
> --- Samisa Abeysinghe <sa...@yahoo.com> wrote:
> > Hi All,
> >    At last, here it is!!! (see below)
> >    I had to do many changes like adding copy constructors to get this stub working.
> >    The hard part was not to write this stub class, but to get the rest of the code behave in a
> > way
> > to support setting SOAP/Transport headers.
> >    I have commited the changes to other classes but not this Stub class.
> > 
> >    I tested this and it works. This means that at the stub level, HTTP headers, SOAP headers
> > could
> > be set.
> > Sample usage:
> >     InteropTestPortType ws(endpoint); //create stub object
> >     ws.setEndPoint( "http://localhost:8080/axis/services/echo" );
> >     ws.setTransportProperty( "Accept-Language", " da, en-gb;q=0.8, en;q=0.7" );
> >     IHeaderBlock* phb = ws.createHeaderBlock( "Trans", "m",
> "http://ws.apache.org/axisCppTest/"
> > );
> > 
> >    However there remains much more work: change stub generation to inherit from this class;
> add
> > get/remove methods for SOAP/HTTP header manipulation etc...
> > 
> >    Your comments on this are welcome.
> > Thanks,
> > Samisa...
> > 
> > class Stub
> > {
> > public:
> >         Stub(const char* pchEndpointUri);
> >         virtual ~Stub();
> >         int initilizeCall();
> >         void setEndPoint(char* pcEndPoint);
> >         void setTransportProperty(const char* pcKey, const char* pcValue);
> >         IHeaderBlock* createHeaderBlock(AxisChar *pachLocalName,
> >                 AxisChar *pachPrefix, AxisChar *pachUri);
> > 
> > protected:
> >         void setTransportProperties();
> >         void setSOAPHeaders();
> >         Call* m_pCall;
> >         vector <char*> m_vKeys;
> >         vector <char*> m_vValues;
> >         vector <IHeaderBlock*> m_vSOAPHeaderBlocks;
> > 
> > };
> > 
> > 
> > 
> > 	
> > 		
> > __________________________________
> > Do you Yahoo!?
> > Friends.  Fun.  Try the all-new Yahoo! Messenger.
> > http://messenger.yahoo.com/ 
> 
> 
> 
> 	
> 		
> __________________________________
> Do you Yahoo!?
> Friends.  Fun.  Try the all-new Yahoo! Messenger.
> http://messenger.yahoo.com/ 



	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/