You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Matthieu Cargnelli <ma...@lri.fr> on 2004/07/02 12:47:01 UTC

A bug in axis ?

Hi,

I'm having a problem with Axis (tomcat/java) which I can neither explain 
nor workaround.

As I don't know if it's a bug in my program or in Axis, I send this
message to both mailing list...


As a reserch project, I'm writing a web services which I want to be able
to communicate binary data between themself. Basicaly at this stage my
goal is to have multiple web servers, each one running an instance of my
web service (WorkerWS), and have them communicate data via 2 functions :
getData and PullData (the names may be not so well chosen).

-getData takes a path to the file to send as a parameter and returns a
DataHandler for that file.
-pullData takes the same argument plus the url of the web server from
which to ask for the file (ie pullData will call the "getData" function
of the given url).

Here is my problem : I have coded these functions and deployed my web
service. I have also programmed a client to test these functions
independantly before making them communicate between 2 web services.
Important to know : the Client pullData function and the Worker pullData
function are strictly the same (copy/paste).

The Client works fine : it can get the file it asks from the WorkerWS,
and the file is ok (I tryed on the local machine and on a remote machine).
But when I do the same call between the 2 web services, I have a "nested
IOFileNotFoundException" with a StackTrace of dozens of lines.

I tryed both JAX-RPC and SAAJ, and both give me an exception (I coded
the classes starting from the "attachments" example given in Axis).

The weird thing is that, using the tcpmon utility, I see exactly the
same message when calling getData from the Client or from the local
WorkerWS (well, the attachement reference and date are not the same, of
course), which means that the response from the remote WorkerWS is fine
in both cases. But it seems that the client manages to recept it and the
local WorkerWS doesn't (and it's the same function for both).

When using JAX-RPC the Exception occurs during the "call.invoke()" call,
so, considering the fact that this call is well formed (as it works for
the Client program), I assume this "bug" occurs during the call itself,
ie inside Axis (or maybe other java classes). Maybe the problem comes
from environment variables but both tomcat and the client run with the
same uid (and both started from console), so I suppose these variables
are the same for both.

If somebody knows about such problem or have an idea about how to
workaround, I would greatly appreciate it.

Regards,

Matthieu Cargnelli

Re: A bug in axis ?

Posted by Matthieu Cargnelli <ma...@lri.fr>.
>> are u using 1.2 nightly. Please try that. 
>> In fact,for the webservice
>> call that you make from within another web service should try to use
>> the async api (org.apache.axis.client.async.*, example -
>> test.client.TestAsyncCall).

Hi again,

I did use the async API, it seems to work fine :)

Thanks a lot, again

Matthieu

Re: A bug in axis ?

Posted by Matthieu Cargnelli <ma...@lri.fr>.
Davanum Srinivas wrote:
> Matthieu,
> 
> are u using 1.2 nightly. Please try that. 

No, I'm using the axis-1.1 release. I will try the nightly then.

> In fact,for the webservice
> call that you make from within another web service should try to use
> the async api (org.apache.axis.client.async.*, example -
> test.client.TestAsyncCall).

Ok, I will look toward theses classes

 > If you still have problems, open up a bug
> report with a test case.
> 
> thanks,
> dims

thanks for your help.

Matthieu

Re: A bug in axis ?

Posted by Davanum Srinivas <da...@gmail.com>.
Matthieu,

are u using 1.2 nightly. Please try that. In fact,for the webservice
call that you make from within another web service should try to use
the async api (org.apache.axis.client.async.*, example -
test.client.TestAsyncCall). If you still have problems, open up a bug
report with a test case.

thanks,
dims

On Fri, 02 Jul 2004 12:47:01 +0200, Matthieu Cargnelli
<ma...@lri.fr> wrote:
> 
> Hi,
> 
> I'm having a problem with Axis (tomcat/java) which I can neither explain
> nor workaround.
> 
> As I don't know if it's a bug in my program or in Axis, I send this
> message to both mailing list...
> 
> As a reserch project, I'm writing a web services which I want to be able
> to communicate binary data between themself. Basicaly at this stage my
> goal is to have multiple web servers, each one running an instance of my
> web service (WorkerWS), and have them communicate data via 2 functions :
> getData and PullData (the names may be not so well chosen).
> 
> -getData takes a path to the file to send as a parameter and returns a
> DataHandler for that file.
> -pullData takes the same argument plus the url of the web server from
> which to ask for the file (ie pullData will call the "getData" function
> of the given url).
> 
> Here is my problem : I have coded these functions and deployed my web
> service. I have also programmed a client to test these functions
> independantly before making them communicate between 2 web services.
> Important to know : the Client pullData function and the Worker pullData
> function are strictly the same (copy/paste).
> 
> The Client works fine : it can get the file it asks from the WorkerWS,
> and the file is ok (I tryed on the local machine and on a remote machine).
> But when I do the same call between the 2 web services, I have a "nested
> IOFileNotFoundException" with a StackTrace of dozens of lines.
> 
> I tryed both JAX-RPC and SAAJ, and both give me an exception (I coded
> the classes starting from the "attachments" example given in Axis).
> 
> The weird thing is that, using the tcpmon utility, I see exactly the
> same message when calling getData from the Client or from the local
> WorkerWS (well, the attachement reference and date are not the same, of
> course), which means that the response from the remote WorkerWS is fine
> in both cases. But it seems that the client manages to recept it and the
> local WorkerWS doesn't (and it's the same function for both).
> 
> When using JAX-RPC the Exception occurs during the "call.invoke()" call,
> so, considering the fact that this call is well formed (as it works for
> the Client program), I assume this "bug" occurs during the call itself,
> ie inside Axis (or maybe other java classes). Maybe the problem comes
> from environment variables but both tomcat and the client run with the
> same uid (and both started from console), so I suppose these variables
> are the same for both.
> 
> If somebody knows about such problem or have an idea about how to
> workaround, I would greatly appreciate it.
> 
> Regards,
> 
> Matthieu Cargnelli
> 


-- 
Davanum Srinivas - http://webservices.apache.org/~dims/

Re: A bug in axis ?

Posted by Davanum Srinivas <da...@gmail.com>.
Matthieu,

are u using 1.2 nightly. Please try that. In fact,for the webservice
call that you make from within another web service should try to use
the async api (org.apache.axis.client.async.*, example -
test.client.TestAsyncCall). If you still have problems, open up a bug
report with a test case.

thanks,
dims

On Fri, 02 Jul 2004 12:47:01 +0200, Matthieu Cargnelli
<ma...@lri.fr> wrote:
> 
> Hi,
> 
> I'm having a problem with Axis (tomcat/java) which I can neither explain
> nor workaround.
> 
> As I don't know if it's a bug in my program or in Axis, I send this
> message to both mailing list...
> 
> As a reserch project, I'm writing a web services which I want to be able
> to communicate binary data between themself. Basicaly at this stage my
> goal is to have multiple web servers, each one running an instance of my
> web service (WorkerWS), and have them communicate data via 2 functions :
> getData and PullData (the names may be not so well chosen).
> 
> -getData takes a path to the file to send as a parameter and returns a
> DataHandler for that file.
> -pullData takes the same argument plus the url of the web server from
> which to ask for the file (ie pullData will call the "getData" function
> of the given url).
> 
> Here is my problem : I have coded these functions and deployed my web
> service. I have also programmed a client to test these functions
> independantly before making them communicate between 2 web services.
> Important to know : the Client pullData function and the Worker pullData
> function are strictly the same (copy/paste).
> 
> The Client works fine : it can get the file it asks from the WorkerWS,
> and the file is ok (I tryed on the local machine and on a remote machine).
> But when I do the same call between the 2 web services, I have a "nested
> IOFileNotFoundException" with a StackTrace of dozens of lines.
> 
> I tryed both JAX-RPC and SAAJ, and both give me an exception (I coded
> the classes starting from the "attachments" example given in Axis).
> 
> The weird thing is that, using the tcpmon utility, I see exactly the
> same message when calling getData from the Client or from the local
> WorkerWS (well, the attachement reference and date are not the same, of
> course), which means that the response from the remote WorkerWS is fine
> in both cases. But it seems that the client manages to recept it and the
> local WorkerWS doesn't (and it's the same function for both).
> 
> When using JAX-RPC the Exception occurs during the "call.invoke()" call,
> so, considering the fact that this call is well formed (as it works for
> the Client program), I assume this "bug" occurs during the call itself,
> ie inside Axis (or maybe other java classes). Maybe the problem comes
> from environment variables but both tomcat and the client run with the
> same uid (and both started from console), so I suppose these variables
> are the same for both.
> 
> If somebody knows about such problem or have an idea about how to
> workaround, I would greatly appreciate it.
> 
> Regards,
> 
> Matthieu Cargnelli
> 


-- 
Davanum Srinivas - http://webservices.apache.org/~dims/