Re: request always calls the first operation defined in server-config.wsdd

2006-08-16 Thread Richard Jones
 SingleGUID(guid);
>>service.articleUpdateNotification(sguid);
>> }
>>
>> these in turn call the relevant operations on the port type (The
>> xxx_BindingImpl class).
>>
>> When either of the above methods are called in the client, the server
>> /always/ processes the request to "requestFileDetails".  I discovered
>> that I could fix this so that it always processed the request to
>> "articleUpdateNotification" by reversing the order that these two
>> operations are specified in the server-config.wsdd:
>>
>> >  qname="ArticleUpdateNotification" mep="oneway" >
>>>>xmlns:pns="http://[...]/SpiralWebService/"; 
type="tns:>SingleGUID"

>>xmlns:tns="http://[...]/SpiralWebService/"/>
>> 
>> >  returnQName="retNS:RequestFileDetailsResponse"
>>  xmlns:retNS="http://[...]/SpiralWebService/";
>>  returnType="rtns:>RequestFileDetailsResponse"
>>  xmlns:rtns="http://[...]/SpiralWebService/"; >
>>>xmlns:pns="http://[...]/SpiralWebService/";
>>type="tns:>SingleGUID"
>>xmlns:tns="http://[...]/SpiralWebService/"/>
>> 
>>
>> I upped log4j to DEBUG, and observed that the body of the request 
seems

>> only to contain the data type, not the operation name:
>>
>> 2006-08-11 12:39:00,795 DEBUG 
org.apache.axis.providers.java.RPCProvider

>> @ body is http://[...]/SpiralWebService/";>> xmlns="">1234567890
>>
>> The two above methods both take the SingleGUID data type as an 
argument,

>> so I defined this type in the WSDL and re-used it all over the place.
>> My current guess (and it is only a guess) is that Axis is just looking
>> for the first operation that takes this data type, and executing 
it, no

>> matter which operation it was intended for.
>>
>> Can anyone see what I might have done wrong?  Am I misappropriating 
the

>> data types and the way that axis uses them, or have I missed something
>> in the way to call the web service, or is there something else?
>>
>> Any help much appreciated,
>>
>> Cheers


--
Richard
---
Richard Jones
Web and Database Technology Specialist
Imperial College London
t: +44 (0)20 759 41815
e: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: request always calls the first operation defined in server-config.wsdd

2006-08-14 Thread Richard Jones

Hi Anne,


Please post the WSDL.


Please find attached.  This was written in Eclipse using the Web Tools 
plugin.


Thanks for your help,

Richard


Hi Folks,

I am starting to really get to grips with my web services now, with much
thanks to Axis.  This morning, though, I have encountered a problem
which I can't work out whether is my fault (likely) or a potential 
problem.


I have two requests defined (in the scope of this problem):

public void requestFileDetails(String guid)
   throws ServiceException, RemoteException
{
   // make the request
   SpiralTestSoapService service = getService();
   SingleGUID sguid = new SingleGUID(guid);
   RequestFileDetailsResponse response =
 service.requestFileDetails(sguid);
}

public void articleUpdateNotification(String guid)
   throws ServiceException, RemoteException
{
   // make the request
   SpiralTestSoapService service = getService();
   SingleGUID sguid = new SingleGUID(guid);
   service.articleUpdateNotification(sguid);
}

these in turn call the relevant operations on the port type (The
xxx_BindingImpl class).

When either of the above methods are called in the client, the server
/always/ processes the request to "requestFileDetails".  I discovered
that I could fix this so that it always processed the request to
"articleUpdateNotification" by reversing the order that these two
operations are specified in the server-config.wsdd:


   http://[...]/SpiralWebService/"; type="tns:>SingleGUID"
   xmlns:tns="http://[...]/SpiralWebService/"/>

http://[...]/SpiralWebService/";
 returnType="rtns:>RequestFileDetailsResponse"
 xmlns:rtns="http://[...]/SpiralWebService/"; >
   http://[...]/SpiralWebService/";
   type="tns:>SingleGUID"
   xmlns:tns="http://[...]/SpiralWebService/"/>


I upped log4j to DEBUG, and observed that the body of the request seems
only to contain the data type, not the operation name:

2006-08-11 12:39:00,795 DEBUG org.apache.axis.providers.java.RPCProvider
@ body is http://[...]/SpiralWebService/";>1234567890

The two above methods both take the SingleGUID data type as an argument,
so I defined this type in the WSDL and re-used it all over the place.
My current guess (and it is only a guess) is that Axis is just looking
for the first operation that takes this data type, and executing it, no
matter which operation it was intended for.

Can anyone see what I might have done wrong?  Am I misappropriating the
data types and the way that axis uses them, or have I missed something
in the way to call the web service, or is there something else?

Any help much appreciated,

Cheers

--
Richard
---
Richard Jones
Web and Database Technology Specialist
Imperial College London
t: +44 (0)20 759 41815
e: [EMAIL PROTECTED]



--
Richard
---
Richard Jones
Web and Database Technology Specialist
Imperial College London
t: +44 (0)20 759 41815
e: [EMAIL PROTECTED]

http://schemas.xmlsoap.org/wsdl/soap/";
	xmlns:tns="http://[...]/SpiralWebService/";
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="SpiralWebService"
	targetNamespace="http://[...]/SpiralWebService/";>
	
		http://[...]/SpiralWebService/";
			xmlns:xsd="http://www.w3.org/2001/XMLSchema";
			xmlns:tns="http://[...]/SpiralWebService/";>
			

	
		
			

	

			
		
	

			
			

	
		
		
	

			
			

	
		
		
		
		
		
		
	

			
			
	
		
			
			
			

	
		
	

			
		
	

			

	
		
			

	

			
		
	

			

	
		
			
			
			
			
		
	


	
		
			
			
		
	


	
		
			
			
			
			
		
	

		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
		
	
	
		
			
			
		
		
			
			
		
		
			
			
		
		
			
			
		
		
			
			
		
		
			
			
		
		
			
			
		
	
	
		http://schemas.xmlsoap.org/soap/http"; />
		
			
			

			
			

			
		
		
			
			

			
		
		
			
			

			
			

			
		
		
			
			

			
			

			
		
		
			
			

			
			

			
		
		
			
			

			
			

			
		
		
			
			

			
			

			
		
	
	
		
			http://[...]/soap/SpiralSoap"; />
		
	

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Re: request always calls the first operation defined in server-config.wsdd

2006-08-11 Thread Richard Jones

Hi Anne,


Each operation must have a unique signature, i.e., you must specify a
different qname for your two input parameters. (They can be the same
type, but they must have different names.)


I'm not sure I understand, sorry.  Each operation in my WSDL has a 
different name, but some of them take the same argument (I didn't see a 
reason to define a bunch of different data types to encapsulate the same 
information).  According to my WSDD file, the operations do have unique 
signatures/qnames:


>> >  qname="ArticleUpdateNotification" mep="oneway" >

>> Likewise, the server implementation has fully unique methods 
implementing each of these operations.


I think the confusion is something to do with actually sending the 
request, rather than the server end.  So for some reason the client code 
is not making it clear what the operation being requested is. 
Unfortunately, I don't understand the way that Axis produces the request 
in the first place, and none of the tools that should help me monitor it 
seem to work at my end (e.g. SOAPMonitor).


Cheers,

Richard


Hi Folks,

I am starting to really get to grips with my web services now, with much
thanks to Axis.  This morning, though, I have encountered a problem
which I can't work out whether is my fault (likely) or a potential 
problem.


I have two requests defined (in the scope of this problem):

public void requestFileDetails(String guid)
   throws ServiceException, RemoteException
{
   // make the request
   SpiralTestSoapService service = getService();
   SingleGUID sguid = new SingleGUID(guid);
   RequestFileDetailsResponse response =
 service.requestFileDetails(sguid);
}

public void articleUpdateNotification(String guid)
   throws ServiceException, RemoteException
{
   // make the request
   SpiralTestSoapService service = getService();
   SingleGUID sguid = new SingleGUID(guid);
   service.articleUpdateNotification(sguid);
}

these in turn call the relevant operations on the port type (The
xxx_BindingImpl class).

When either of the above methods are called in the client, the server
/always/ processes the request to "requestFileDetails".  I discovered
that I could fix this so that it always processed the request to
"articleUpdateNotification" by reversing the order that these two
operations are specified in the server-config.wsdd:


   http://[...]/SpiralWebService/"; type="tns:>SingleGUID"
   xmlns:tns="http://[...]/SpiralWebService/"/>

http://[...]/SpiralWebService/";
 returnType="rtns:>RequestFileDetailsResponse"
 xmlns:rtns="http://[...]/SpiralWebService/"; >
   http://[...]/SpiralWebService/";
   type="tns:>SingleGUID"
   xmlns:tns="http://[...]/SpiralWebService/"/>


I upped log4j to DEBUG, and observed that the body of the request seems
only to contain the data type, not the operation name:

2006-08-11 12:39:00,795 DEBUG org.apache.axis.providers.java.RPCProvider
@ body is http://[...]/SpiralWebService/";>1234567890

The two above methods both take the SingleGUID data type as an argument,
so I defined this type in the WSDL and re-used it all over the place.
My current guess (and it is only a guess) is that Axis is just looking
for the first operation that takes this data type, and executing it, no
matter which operation it was intended for.

Can anyone see what I might have done wrong?  Am I misappropriating the
data types and the way that axis uses them, or have I missed something
in the way to call the web service, or is there something else?

Any help much appreciated,

Cheers

--
Richard
---
Richard Jones
Web and Database Technology Specialist
Imperial College London
t: +44 (0)20 759 41815
e: [EMAIL PROTECTED]



--
Richard
---
Richard Jones
Web and Database Technology Specialist
Imperial College London
t: +44 (0)20 759 41815
e: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



request always calls the first operation defined in server-config.wsdd

2006-08-11 Thread Richard Jones

Hi Folks,

I am starting to really get to grips with my web services now, with much 
thanks to Axis.  This morning, though, I have encountered a problem 
which I can't work out whether is my fault (likely) or a potential problem.


I have two requests defined (in the scope of this problem):

public void requestFileDetails(String guid)
  throws ServiceException, RemoteException
{
  // make the request
  SpiralTestSoapService service = getService();
  SingleGUID sguid = new SingleGUID(guid);
  RequestFileDetailsResponse response =
service.requestFileDetails(sguid);
}

public void articleUpdateNotification(String guid)
  throws ServiceException, RemoteException
{
  // make the request
  SpiralTestSoapService service = getService();
  SingleGUID sguid = new SingleGUID(guid);
  service.articleUpdateNotification(sguid);
}

these in turn call the relevant operations on the port type (The 
xxx_BindingImpl class).


When either of the above methods are called in the client, the server 
/always/ processes the request to "requestFileDetails".  I discovered 
that I could fix this so that it always processed the request to 
"articleUpdateNotification" by reversing the order that these two 
operations are specified in the server-config.wsdd:



  http://[...]/SpiralWebService/"; type="tns:>SingleGUID"
  xmlns:tns="http://[...]/SpiralWebService/"/>

http://[...]/SpiralWebService/";
returnType="rtns:>RequestFileDetailsResponse"
xmlns:rtns="http://[...]/SpiralWebService/"; >
  http://[...]/SpiralWebService/";
  type="tns:>SingleGUID"
  xmlns:tns="http://[...]/SpiralWebService/"/>


I upped log4j to DEBUG, and observed that the body of the request seems 
only to contain the data type, not the operation name:


2006-08-11 12:39:00,795 DEBUG org.apache.axis.providers.java.RPCProvider 
@ body is http://[...]/SpiralWebService/";>xmlns="">1234567890


The two above methods both take the SingleGUID data type as an argument, 
so I defined this type in the WSDL and re-used it all over the place. 
My current guess (and it is only a guess) is that Axis is just looking 
for the first operation that takes this data type, and executing it, no 
matter which operation it was intended for.


Can anyone see what I might have done wrong?  Am I misappropriating the 
data types and the way that axis uses them, or have I missed something 
in the way to call the web service, or is there something else?


Any help much appreciated,

Cheers

--
Richard
---
Richard Jones
Web and Database Technology Specialist
Imperial College London
t: +44 (0)20 759 41815
e: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: "No such operation" error

2006-07-31 Thread Richard Jones

Hi Paul,


Can you post some code? Its hard to figure this out from the
description. It looks as if its incorrectly using SingleGUID as an
operation name instead of the requestFileDetails which should be the
op name.


I am an idiot, sorry.  In the process of pulling the code apart to send 
you the relevant bits I discovered that the server-config.wsdd was being 
pulled from an old copy, and not the most recently generated one!  D'oh.


Thanks very much for your response, though, and thanks also to all you 
folks who are working on Axis.  I'm pretty new to web services, and it's 
making my life a whole lot easier.


All the best,

--
Richard
---
Richard Jones
Web and Database Technology Specialist
Imperial College London
t: +44 (0)20 759 41815
e: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



"No such operation" error

2006-07-31 Thread Richard Jones

Hi Folks,

I am trying to get a test client to connect to my new service using Axis 
at both ends, but have encountered a problem which I can't understand. 
When I make a request, using a data type called "SingleGUID", I get an 
AxisFault thus:


Exception in thread "main" AxisFault
 faultCode: {http://xml.apache.org/axis/}Client
 faultSubcode:
 faultString: No such operation 'SingleGUID'
 faultActor:
 faultNode:
 faultDetail:
{http://xml.apache.org/axis/}hostname:[...deleted...]

No such operation 'SingleGUID'

This error message is accurate enough in so much as there isn't an 
operation called SingleGUID, but I never asked it to perform such an 
operation, AFAICT.  The code that invokes this, and thus causes the 
problem is:


MyServiceWrapper service = getService();
SingleGUID sguid = new SingleGUID(guid);
RequestFileDetailsResponse response = service.requestFileDetails(sguid);

Any ideas what I might have done wrong?

I wanted to take a look at the SOAP message, to see if it looks like 
what I expected it to look like, but SOAPMonitor seems not to want to 
connect to my server (something to do with not supporting a "list" 
operation).


Any help gratefully received.

Cheers,

--
Richard
---
Richard Jones
Web and Database Technology Specialist
Imperial College London
t: +44 (0)20 759 41815
e: [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]