Google with Axis C++

2005-03-15 Thread krishna
Hi
I am trying to use Axis 1.5 Alpha to access the Google Web Service.The 
programs exits with the following exception
DLOPEN FAILED in loading channel library.On doing an strace I got the 
following output.

open("/usr/lib/libhttp_channel.so", O_RDONLY) = -1 ENOENT (No such 
file or directory)
stat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
munmap(0x40677000, 22733)   = 0
futex(0x401c64b4, FUTEX_WAKE, 2147483647) = 0
futex(0x402089cc, FUTEX_WAKE, 2147483647) = 0
munmap(0x40664000, 76820)   = 0
munmap(0x4034d000, 99396)   = 0
munmap(0x4036c000, 3111548) = 0
write(1, "AXIS_FAIL-1\n", 12AXIS_FAIL-1
The libhttp_channel.so file is not found in the $AXISCPP_DEPLOY/lib 
directory too.

The program seems to be looking for the libhttp_channel.so in various 
directories ( I have not included the complete output here).On looking 
up the axiscpp.conf file I found.

#Channel_HTTP_SSL:Secure Transport channel in axis3 transport
#Channel_HTTP:Transport channel in axis3 transport
The axiscpp.conf also mentions that some of this functionality has not 
been implemented.Is the program looking for a library which has not been 
implemented?

Regards
Krishna
http://uic.edu/~krajag2




Re: server shutdown of long lived connections

2005-03-15 Thread Tim Bartley

Moved this discussion to dev list where
it should've been - sorry.

--
IBM Tivoli Access Manager Development
Gold Coast Development Lab, Australia
+61-7-5552-4001 phone
+61-7-5571-0420 fax

Fault error

2005-03-15 Thread Victor Souza
Hi,

I am experiencing a problem and I would like to know if someone can
help me, please.

I defined in my wsdl a fault message like this:



 

And I use it in an operation like this:







Doing this AxisServiceException.hpp tries to include xsd__string.hpp
(that is not found by the compiler). Also, I get the following error
compiling the code:

FilePortTypeWrapper.cpp: In member function `int
FilePortTypeWrapper::buyProduct(void*)':
FilePortTypeWrapper.cpp:92: error: `Axis_Serialize_xsd__string'
undeclared (first use this function)
FilePortTypeWrapper.cpp:92: error: (Each undeclared identifier is
reported only once for each function it appears in.)
FilePortTypeWrapper.cpp:93: error: `Axis_Delete_xsd__string'
undeclared (first use this function)
FilePortTypeWrapper.cpp:93: error: `Axis_URI_xsd__string' undeclared
(first use this function)

Can someone help me please?

Thanks,

Victor.


RE: Help with using axis C++

2005-03-15 Thread John Hawkins

Hi,

As I said before you can ignore the
attachment support warnings.
You can also ignore the anonymous type
warnings.

The ">" prefix is annoying-
this is where I revert back to "we don't support rpc as well as doc/lit".
These sorts of problems came when we upgraded the pre-reqs to Axis Java
beta  - we fixed tem in doc lit but evidently missed some in rpc !


As I said before is it possible for
you to move to doc/lit ?








"Kon Kam King, France"
<[EMAIL PROTECTED]> 
15/03/2005 15:38



Please respond to
"Apache AXIS C User List"





To
"Apache AXIS C User
List" 


cc



Subject
RE: Help with using axis
C++








John,
Things are better with 1.4 &
1.5. I don't get the error I had with 1.3.
But I am getting a warning:
C:\axis-c-1.5.0\lib\axis\wsdl2ws_complex>java
-classpath .\wsdl2ws.jar;.;%CLASSP
ATH% org.apache.axis.wsdl.wsdl2ws.WSDL2Ws copieCalculator.wsdl -o./ClientOut
-lc
++ -sclient
15 mars 2005 16:17:26 org.apache.axis.utils.JavaUtils isAttachmentSupported
ATTENTION: Unable to find required classes (javax.activation.DataHandler
and jav
ax.mail.internet.MimeMultipart). Attachment support is disabled.
ignoring anonymous type >CONTROLXMLSTART
 

Code generation completed.
The generated code is not quite
right, as there does not seem to be declaration of my complex type, and
the name of the type used in the call is prfixed ith '>',
 
 >CONTROLXMLSTART
I thing there is some bug existing.I
am attaching a run with 1.5 (nightly build).
Thanks for your help.


De : John Hawkins [mailto:[EMAIL PROTECTED]

Envoyé : mardi 15 mars 2005 10:24
À : Apache AXIS C User List
Objet : RE: Help with using axis C++


Ah ! axis 1.3 is quite an old version and we don't really support that.


Can you upgrade to either 1.4 or preferably 1.5 beta (you can just take
a nightly build from here - http://cvs.apache.org/dist/axis/nightly/)


Please be aware that rpc/encoded is not supported as well as document literal.
Is this a situation where you need to have rpc/encoded or could you move
to doc/lit? 





"Kon Kam King, France"
<[EMAIL PROTECTED]> 
14/03/2005 18:52





Please respond to
"Apache AXIS C User List"






To
"Apache AXIS
C User List" 



cc



Subject
RE: Help with using axis
C++










Here is my classpath: 
  
C:\j2sdk1.4.1_01\jre\lib;C:\axis-1_2RC2\axis-1_2RC2\lib\axis.jar;C:\axis-1_2RC2\
axis-1_2RC2\lib\commons-discovery.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\commons-log
ging.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\jaxrpc.jar;C:\axis-1_2RC2\axis-1_2RC2\li
b\saaj.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\wsdl4j.jar;C:\axis-1_2RC2\axis-1_2RC2\
lib\xml-apis.jar 
  
I am running Axis-C 1.3. 


De : John Hawkins [mailto:[EMAIL PROTECTED]

Envoyé : lundi 14 mars 2005 19:47
À : Apache AXIS C User List
Objet : RE: Help with using axis C++


This seems to work fine for me - I get the attached files produced .


My cmd line is -> 
set WSDL2WsJar=%builddir%\obj\classes\wsdl2ws.jar 
set axisJar=%PreReqsDir%\java\axis.jar 
set commonsdiscoveryJar=%PreReqsDir%\java\commons-discovery.jar

set commonsloggingjar=%PreReqsDir%\java\commons-logging.jar

set jaxrpcjar=%PreReqsDir%\java\jaxrpc.jar 
set saajjar=%PreReqsDir%\java\saaj.jar 
set wsdl4jjar=%PreReqsDir%\java\wsdl4j.jar 

rem set WSDLFile=%baseWSDLPath%\%1 
set WSDLFile=%1 
set foo=%wsdl2wsjar%;%axisJar%;%commonsdiscoveryjar%;%commonsloggingjar%;%jaxrpcjar%;%saajjar%;%wsdl4jjar%


java -classpath %foo% org.apache.axis.wsdl.wsdl2ws.WSDL2Ws -sclient  -oWSDLOutput
%WSDLFile% 

you sure you got the right level of pre-reqs? Where did you get them from?








"Kon Kam King, France"
<[EMAIL PROTECTED]> 
14/03/2005 18:13





Please respond to
"Apache AXIS C User List"






To
"Apache AXIS
C User List" 



cc



Subject
RE: Help with using axis
C++












Here it is: 
 


De : John Hawkins [mailto:[EMAIL PROTECTED]

Envoyé : lundi 14 mars 2005 19:09
À : Apache AXIS C User List
Objet : RE: Help with using axis C++


I think this should work but can you send us the WSDL to try?





"Kon Kam King, France"
<[EMAIL PROTECTED]> 
14/03/2005 18:00





Please respond to
"Apache AXIS C User List"






To
"Apache AXIS
C User List" 



cc



Subject
RE: Help with using axis
C++














When I remove the type schema declaration from my WSDL, WSDL2Ws runs to
completion. 
Is complex type allowed wih WSDL2Ws? 
I do see an example of a WSDL in the samples library with doclitfault.

Can somebody help me? 



De : Kon Kam King, France 
Envoyé : lundi 14 mars 2005 16:10
À : 'Apache AXIS C User List'
Objet : RE: Help with using axis C++

I need to pass a complex-type parameter from a C++ client  to a soap
server, for example 
 
 user1 
  pass 
   parameters

 

How is this done in Axis-c? 
I tried to use WSDL2Ws to try generating the client stubs, with a WSDL
with complex-type, and soap/literal binding, but got an exception:

ATTENTION: Unable to find required classes (javax.activation.DataHandler
and jav
ax.mail.internet.MimeMultipart). Attachment support is disabled.
java.lang.NoSuchMethod

Cannot deserialize element

2005-03-15 Thread Marc Dumontier
Hi,
I wrote a simple client against an axis (java) server.
the wsdl file is located at http://soap1.bind.ca/bind.wsdl
here is my code:
#include "BINDSOAPPort.hpp"
#include 
#include 
int main(int argc,char **argv)
{
   try {
   BINDSOAPPort port;
   cout << port.isServiceAlive() << endl;
   cout << port.getSoftwareVersion() << endl;
   } catch(AxisException& e) {
   printf("Exception : %s\n", e.what());
   printf("Exception Code: %d\n", e.getExceptionCode());
   } catch(exception& e) {
   printf("Unknown exception has occured\n");
   } catch(...) {
   printf("Unknown exception has occured\n");
   }
   return 0;
}
here is the results:
./bindsoap
0
Exception : Cannot deserialize the requested element
Exception Code: 70

here is the request:
POST /bindsoap/services/BINDSOAP HTTP/1.1
Host: localhost:9010
Content-Type: text/xml; charset=UTF-8
SOAPAction: "urn:#getSoftwareVersion"
Content-Length: 349

http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>







here is the response:
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=6DF554A70E0DC8E2CC54804D52F4DDBC; Path=/bindsoap
Content-Type: text/xml;charset=utf-8
Transfer-Encoding: chunked
Date: Tue, 15 Mar 2005 15:55:59 GMT
Server: Apache-Coyote/1.1
1dd
http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:ns1="urn:BINDSOAP">No Version 
Assigned 

0

Any help would be greatly appreciated,
Marc Dumontier




RE: Help with using axis C++

2005-03-15 Thread Kon Kam King, France



John,
Things 
are better with 1.4 & 1.5. I don't get the error I had with 
1.3.
But I 
am getting a warning:
C:\axis-c-1.5.0\lib\axis\wsdl2ws_complex>java -classpath 
.\wsdl2ws.jar;.;%CLASSPATH% org.apache.axis.wsdl.wsdl2ws.WSDL2Ws 
copieCalculator.wsdl -o./ClientOut -lc++ -sclient15 mars 2005 16:17:26 
org.apache.axis.utils.JavaUtils isAttachmentSupportedATTENTION: Unable to 
find required classes (javax.activation.DataHandler and 
javax.mail.internet.MimeMultipart). Attachment support is 
disabled.ignoring anonymous type >CONTROLXMLSTART
 
Code generation 
completed.
The 
generated code is not quite right, as there does not seem to be declaration of 
my complex type, and the name of the type used in the call is prfixed ith 
'>',
 
 >CONTROLXMLSTART
I 
thing there is some bug existing.I am attaching a run with 1.5 (nightly 
build).
Thanks 
for your help.


De : John Hawkins 
[mailto:[EMAIL PROTECTED] Envoyé : mardi 15 mars 2005 
10:24À : Apache AXIS C User ListObjet : RE: Help 
with using axis C++
Ah ! axis 1.3 is quite an old 
version and we don't really support that. Can you upgrade to either 1.4 or preferably 1.5 beta (you can just take a 
nightly build from here - http://cvs.apache.org/dist/axis/nightly/) 
Please be aware that rpc/encoded is not 
supported as well as document literal. Is this a situation where you need to 
have rpc/encoded or could you move to doc/lit? 

  
  
"Kon Kam King, France" 
  <[EMAIL PROTECTED]> 
  14/03/2005 18:52 
  


  
Please respond 
to"Apache AXIS C User List"

  


  
To
  "Apache AXIS C User 
List"  

  
cc
  

  
Subject
  RE: Help with using axis 
C++
  


  
  Here is my classpath:   
C:\j2sdk1.4.1_01\jre\lib;C:\axis-1_2RC2\axis-1_2RC2\lib\axis.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\commons-discovery.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\commons-logging.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\jaxrpc.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\saaj.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\wsdl4j.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\xml-apis.jar 
  I am 
running Axis-C 1.3. 

De : John Hawkins [mailto:[EMAIL PROTECTED] 
Envoyé : lundi 14 mars 2005 19:47À : Apache AXIS C User 
ListObjet : RE: Help with using axis C++This seems to work fine 
for me - I get the attached files produced . 
My cmd line is -> set 
WSDL2WsJar=%builddir%\obj\classes\wsdl2ws.jar set axisJar=%PreReqsDir%\java\axis.jar set 
commonsdiscoveryJar=%PreReqsDir%\java\commons-discovery.jar 
set 
commonsloggingjar=%PreReqsDir%\java\commons-logging.jar 
set 
jaxrpcjar=%PreReqsDir%\java\jaxrpc.jar set saajjar=%PreReqsDir%\java\saaj.jar set 
wsdl4jjar=%PreReqsDir%\java\wsdl4j.jar rem set WSDLFile=%baseWSDLPath%\%1 set WSDLFile=%1 set 
foo=%wsdl2wsjar%;%axisJar%;%commonsdiscoveryjar%;%commonsloggingjar%;%jaxrpcjar%;%saajjar%;%wsdl4jjar% java -classpath %foo% 
org.apache.axis.wsdl.wsdl2ws.WSDL2Ws -sclient  -oWSDLOutput 
%WSDLFile% you 
sure you got the right level of pre-reqs? Where did you get them 
from? 

  
  
"Kon Kam King, France" 
  <[EMAIL PROTECTED]> 
  14/03/2005 18:13 
  
  


  
Please respond 
to"Apache AXIS C User List"
  

  


  
To
  "Apache AXIS 
C User List"  


  
cc
  

  
Subject
  RE: Help with using axis 
C++
  


  
  Here it 
is:  

De : John Hawkins [mailto:[EMAIL PROTECTED] 
Envoyé : lundi 14 mars 2005 19:09À : Apache AXIS C User 
ListObjet : RE: Help with using axis C++I think this should work 
but can you send us the WSDL to try? 

  
  
"Kon Kam King, France" 
  <[EMAIL PROTECTED]> 
  14/03/2005 18:00 
  
  


  
Please respond 
to"Apache AXIS C User List"

  


  
To
  "Apache AXIS 
C User List"  


  
cc
  

  
Subject
  RE: Help with using axis 
C++
  


  
  When I remove 
the type schema declaration from my WSDL, WSDL2Ws runs to 
completion. Is 
complex type allowed wih WSDL2Ws? I do see an example of a WSDL in the samples library with 
doclitfault. Can somebody help me? 

De : Kon Kam King, France Envoyé : 
lundi 14 mars 2005 16:10À : 'Apache AXIS C User List'Objet 
: RE: Help with using axis C++I need to pass a complex-type parameter from a C++ client 
 to a soap server, for example   user1 
  
pass   
 parameters 
 How is this done in 
Axis-c? I 
tried to use WSDL2Ws to try generating the client stubs, with a WSDL with 
complex-

RE: server shutdown of long lived connections

2005-03-15 Thread Samisa Abeysinghe








On deciding whether to put in 1.5, we
could apply the patch and do the tests before commit for side effects, provided
the diff is against the latest CVS.

This looks to me as if it is a moderate
change (as far as amount of changes are concerned) Hence I believe we could
manage.

 

Thanks,

Samisa…

 

 

-Original Message-
From: John Hawkins
[mailto:[EMAIL PROTECTED] 
Sent: Tuesday, March 15, 2005 5:26
PM
To: Apache AXIS C User List
Subject: Re: server shutdown of
long lived connections

 


Great ! 

Can
you implement and send diffs? Perhaps this is too big a change at this late
stage in 1.5 beta - thoughts anyone? 







 
  
  Tim Bartley
  <[EMAIL PROTECTED]> 
  11/03/2005 23:07 
  
   

Please
respond to
"Apache AXIS C User List"

   
  
  
  
  
  
   

To


"Apache AXIS C User List"
 

   
   

cc


 

   
   

Subject


server shutdown of long lived connections

   
  
   
  
   

 


 

   
  
  
  
 






HTTP 1.1 (and 1.0 with Connection: Keep-Alive) permits the client to re-use a
connection for multiple requests and Axis makes use of this. 

However, if the client hasn't sent a request on that connection for a while the
server will typlically shutdown the connection. 

One server I've seen (WebSphere) does this simply by sending a FIN from it's
end. This means that the client->server half of the connection is still open
so the next client send (*m_pActiveChannel << this->getHTTPHeaders()
in HTTPTransport::flushOutput) succeeds. The server responds to this by
aborting the connection but it's not until the  the next send
(*m_pActiveChannel << this->m_strBytesToSend.c_str()) that an IO error
occurs and ultimately an exception is thrown to the client application.


Now this behaviour is a property of the transport so I think Axis should detect
that the server side has closed the connection and resend the request. This
should always be OK because an IO error on any part of the send must mean the
request has not been completely sent and therefore re-sending the request
should not be harmful. 

So I think HTTPTransport::flushOutput should have some logic like:


try { 
       *m_pActiveChannel <<
this->getHTTPHeaders(); 
       *m_pActiveChannel <<
this->strBytesToSend.c_str(); 
} 
catch (HTTPTransportException& e) {
      if (didn't just re-open the connection) {
              m_pActiveChannel->close();

               m_pActiveChannel->open();

               *m_pActiveChannel
<< this->getHTTPHeaders(); 
               *m_pActiveChannel
<< this->strBytesToSend.c_str(); 
       } 
       else { 
               throw; 
       } 
} 

We can do slightly better than this by trying to detect that the server has
closed the connection before sending at all - this saves the network bandwidth
of the first packet and saves us a bit of computation. This can be done
approximately as follows: 

bool reopenConnection; 

fd_set_t read_fds; 
fd_set_t except_fds; 
FD_ZERO(&read_fds); 
FD_ZERO(&except_fds); 
FD_SET(socket, &read_fds); 
FD_SET(socket, &except_fds); 

timepec_t t = {0}; 
int result = select(FD_SETSIZE, &read_fds, NULL, &except_fds, &t);

if (result < 0) {
      throw something; 
} 
else if (result == 0) {
      /* socket not readable - therefore not closed - ok to send
*/ 
       reopenConnection = false; 
} 
else { 
       /* socket readable or in error - see if data
available */ 
       unsigned char byte; 
       result = recv(socket, &byte, 1, MSG_PEEK);

       if (result == 0) {
              /* socket shutdown by remote
end */ 
               reopenConnection = true;

       } 
       else if (result < 0) { 
               if (errno == ECONNRESET)
{ 
                       reopenConnection
= true;         
               } 
               else { 
                       /*
Possibly this is too aggressive and reopenConnection should be set to true
irrespective of the errno value */ 
                       throw
something; 
               } 
       } 
} 

return reopenConnection 

I suggest the above logic be encapsulated in the channels and accessed through
the IChannel interface in flushOutput as something like: 

bool connectionJustReopened = false; 
if (m_bReopenConnection || m_pActiveChannel->connectionReopenRequired()) {

       m_pActiveChannel->close(); 
       m_pActiveChannel->open(); 
       connectionJustReopened = true; 
} 

bool retry; 
do { 
       retry = false; 
       try { 
               *m_pActiveChannel
<< this->getHTTPHeaders(); 
               *m_pActiveChannel
<< this->strDataBytes.c_str(); 
       } 
       catch (HTTPTransportException& e) {
              if (!connectionJustReopened) {

                       m_pActiveChannel->close();

                       m_pActiveChannel->open();

                       retry
= true; 
                       connectionJustReopened
= true; 
               } 
               else { 
                   

Re: server shutdown of long lived connections

2005-03-15 Thread John Hawkins

Great !

Can you implement and send diffs? Perhaps
this is too big a change at this late stage in 1.5 beta - thoughts anyone?








Tim Bartley <[EMAIL PROTECTED]>

11/03/2005 23:07



Please respond to
"Apache AXIS C User List"





To
"Apache AXIS C User
List" 


cc



Subject
server shutdown of long lived
connections









HTTP 1.1 (and 1.0 with Connection: Keep-Alive) permits the client to re-use
a connection for multiple requests and Axis makes use of this.


However, if the client hasn't sent a request on that connection for a while
the server will typlically shutdown the connection.


One server I've seen (WebSphere) does this simply by sending a FIN from
it's end. This means that the client->server half of the connection
is still open so the next client send (*m_pActiveChannel << this->getHTTPHeaders()
in HTTPTransport::flushOutput) succeeds. The server responds to this by
aborting the connection but it's not until the  the next send (*m_pActiveChannel
<< this->m_strBytesToSend.c_str()) that an IO error occurs and
ultimately an exception is thrown to the client application.


Now this behaviour is a property of the transport so I think Axis should
detect that the server side has closed the connection and resend the request.
This should always be OK because an IO error on any part of the send must
mean the request has not been completely sent and therefore re-sending
the request should not be harmful. 

So I think HTTPTransport::flushOutput should have some logic like:


try { 
        *m_pActiveChannel << this->getHTTPHeaders();

        *m_pActiveChannel << this->strBytesToSend.c_str();

} 
catch (HTTPTransportException& e) {
       if (didn't just re-open the connection) {
               m_pActiveChannel->close();

                m_pActiveChannel->open();

                *m_pActiveChannel
<< this->getHTTPHeaders(); 
                *m_pActiveChannel
<< this->strBytesToSend.c_str(); 
        } 
        else { 
                throw;

        } 
} 

We can do slightly better than this by trying to detect that the server
has closed the connection before sending at all - this saves the network
bandwidth of the first packet and saves us a bit of computation. This can
be done approximately as follows: 

bool reopenConnection; 

fd_set_t read_fds; 
fd_set_t except_fds; 
FD_ZERO(&read_fds); 
FD_ZERO(&except_fds); 
FD_SET(socket, &read_fds); 
FD_SET(socket, &except_fds); 

timepec_t t = {0}; 
int result = select(FD_SETSIZE, &read_fds, NULL, &except_fds, &t);

if (result < 0) {
       throw something; 
} 
else if (result == 0) {
       /* socket not readable - therefore not closed - ok
to send */ 
        reopenConnection = false;

} 
else { 
        /* socket readable or in error - see if data
available */ 
        unsigned char byte; 
        result = recv(socket, &byte, 1, MSG_PEEK);

        if (result == 0) {
               /* socket shutdown by
remote end */ 
                reopenConnection
= true; 
        } 
        else if (result < 0) {

                if (errno == ECONNRESET)
{ 
                    
   reopenConnection = true;        

                }

                else {

                    
   /* Possibly this is too aggressive and reopenConnection should
be set to true irrespective of the errno value */ 
                    
   throw something; 
                }

        } 
} 

return reopenConnection 

I suggest the above logic be encapsulated in the channels and accessed
through the IChannel interface in flushOutput as something like:


bool connectionJustReopened = false; 
if (m_bReopenConnection || m_pActiveChannel->connectionReopenRequired())
{ 
        m_pActiveChannel->close();

        m_pActiveChannel->open();

        connectionJustReopened = true;

} 

bool retry; 
do { 
        retry = false; 
        try { 
                *m_pActiveChannel
<< this->getHTTPHeaders(); 
                *m_pActiveChannel
<< this->strDataBytes.c_str(); 
        } 
        catch (HTTPTransportException& e) {
               if (!connectionJustReopened)
{ 
                    
   m_pActiveChannel->close(); 
                    
   m_pActiveChannel->open(); 
                    
   retry = true; 
                    
   connectionJustReopened = true; 
                }

                else {

                    
   throw; 
                }

        } 
} while (retry); 

Even if we implement a connectionReopenRequired interface we still need
to re-open on IO error from the send because there is a race condition
between when we test this and actually send the request - the connection
ReopenRequired interface is really just an optimization.


What do you think? 

Cheers, 

Tim
--
IBM Tivoli Access Manager Development
Gold Coast Development Lab, Australia
+61-7-5552-4001 phone
+61-7-5571-0420 fax


RE: Help with using axis C++

2005-03-15 Thread John Hawkins

Ah ! axis 1.3 is quite an old version
and we don't really support that.

Can you upgrade to either 1.4 or preferably
1.5 beta (you can just take a nightly build from here - http://cvs.apache.org/dist/axis/nightly/)

Please be aware that rpc/encoded is
not supported as well as document literal. Is this a situation where you
need to have rpc/encoded or could you move to doc/lit?






"Kon Kam King, France"
<[EMAIL PROTECTED]> 
14/03/2005 18:52



Please respond to
"Apache AXIS C User List"





To
"Apache AXIS C User
List" 


cc



Subject
RE: Help with using axis
C++








Here is my classpath:
 
C:\j2sdk1.4.1_01\jre\lib;C:\axis-1_2RC2\axis-1_2RC2\lib\axis.jar;C:\axis-1_2RC2\
axis-1_2RC2\lib\commons-discovery.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\commons-log
ging.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\jaxrpc.jar;C:\axis-1_2RC2\axis-1_2RC2\li
b\saaj.jar;C:\axis-1_2RC2\axis-1_2RC2\lib\wsdl4j.jar;C:\axis-1_2RC2\axis-1_2RC2\
lib\xml-apis.jar
 
I am running Axis-C 1.3.


De : John Hawkins [mailto:[EMAIL PROTECTED]

Envoyé : lundi 14 mars 2005 19:47
À : Apache AXIS C User List
Objet : RE: Help with using axis C++


This seems to work fine for me - I get the attached files produced .


My cmd line is -> 
set WSDL2WsJar=%builddir%\obj\classes\wsdl2ws.jar 
set axisJar=%PreReqsDir%\java\axis.jar 
set commonsdiscoveryJar=%PreReqsDir%\java\commons-discovery.jar

set commonsloggingjar=%PreReqsDir%\java\commons-logging.jar

set jaxrpcjar=%PreReqsDir%\java\jaxrpc.jar 
set saajjar=%PreReqsDir%\java\saaj.jar 
set wsdl4jjar=%PreReqsDir%\java\wsdl4j.jar 

rem set WSDLFile=%baseWSDLPath%\%1 
set WSDLFile=%1 
set foo=%wsdl2wsjar%;%axisJar%;%commonsdiscoveryjar%;%commonsloggingjar%;%jaxrpcjar%;%saajjar%;%wsdl4jjar%


java -classpath %foo% org.apache.axis.wsdl.wsdl2ws.WSDL2Ws -sclient  -oWSDLOutput
%WSDLFile% 

you sure you got the right level of pre-reqs? Where did you get them from?









"Kon Kam King, France"
<[EMAIL PROTECTED]> 
14/03/2005 18:13





Please respond to
"Apache AXIS C User List"






To
"Apache AXIS
C User List" 



cc



Subject
RE: Help with using axis
C++










Here it is: 
  


De : John Hawkins [mailto:[EMAIL PROTECTED]

Envoyé : lundi 14 mars 2005 19:09
À : Apache AXIS C User List
Objet : RE: Help with using axis C++


I think this should work but can you send us the WSDL to try?






"Kon Kam King, France"
<[EMAIL PROTECTED]> 
14/03/2005 18:00





Please respond to
"Apache AXIS C User List"






To
"Apache AXIS
C User List" 



cc



Subject
RE: Help with using axis
C++












When I remove the type schema declaration from my WSDL, WSDL2Ws runs to
completion. 
Is complex type allowed wih WSDL2Ws? 
I do see an example of a WSDL in the samples library with doclitfault.

Can somebody help me? 
 


De : Kon Kam King, France 
Envoyé : lundi 14 mars 2005 16:10
À : 'Apache AXIS C User List'
Objet : RE: Help with using axis C++

I need to pass a complex-type parameter from a C++ client  to a soap
server, for example 
 
  user1 
   pass 
    parameters

 
 
How is this done in Axis-c? 
I tried to use WSDL2Ws to try generating the client stubs, with a WSDL
with complex-type, and soap/literal binding, but got an exception:

ATTENTION: Unable to find required classes (javax.activation.DataHandler
and jav
ax.mail.internet.MimeMultipart). Attachment support is disabled.
java.lang.NoSuchMethodError: org.apache.axis.wsdl.symbolTable.SchemaUtils.getUni
onNode(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
      at org.apache.axis.wsdl.symbolTable.SymbolTable.addTypes(SymbolTable.jav
a:953)
      at org.apache.axis.wsdl.symbolTable.SymbolTable.addTypes(SymbolTable.jav
a:1092)
      at org.apache.axis.wsdl.symbolTable.SymbolTable.addTypes(SymbolTable.jav
a:1092)
      at org.apache.axis.wsdl.symbolTable.SymbolTable.addTypes(SymbolTable.jav
a:1092)
      at org.apache.axis.wsdl.symbolTable.SymbolTable.addTypes(SymbolTable.jav
a:1092)
      at org.apache.axis.wsdl.symbolTable.SymbolTable.populateTypes(SymbolTabl
e.java:895)
      at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:693)
      at org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:531
)
      at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:506)
      at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:483)
      at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:356)
      at java.lang.Thread.run(Thread.java:536)
org.apache.axis.wsdl.wsdl2ws.WrapperFault: the service does not exists
      at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.getServiceEntry(WSDL2Ws.java:523
)
      at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.perprocess(WSDL2Ws.java:121)
      at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.genarateWrappers(WSDL2Ws.java:46
8)
      at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.main(WSDL2Ws.java:805)

 
Code generation failed. Please see errors above. 
I look at the doc/lit examples in the samples but there are no WSDL.

How was the wrappers in these examples generated?