Hi,

  I have few questions regarding the service end point in a wsdl: (I'm
using Axis2 1.1.1 version)

My initial endpoint for UserService was
http://localhost:8080/Comergent/services/UserService, and things worked
fine. I have Axis2 installed as an embedded webapp. I wanted my service
endpoint to point to
http://localhost:8080/Comergent/ws/matrix/services/UserService instead.
My wsdl is updated to reflect this change. I have a custom wsdl that is
part of the UserService.aar file and the services.xml has the
'useOriginalwsdl' property set. On the browser when i point to
http://localhost:8080/Comergent/ws/matrix/services/UserService?wsdl the
wsdl obtained is different from the custom wsdl. The auto-generated wsdl
has two bindings one for Soap11 and another for Soap12. The Soap11
binding for some reason points to my initial endpoint
( http://localhost:8080/Comergent/services/UserService ), but the Soap12
binding has the newer end point. 

     1. Although the custom wsdl has both bindings pointing to the newer
        URL, why does the auto-generated wsdl use different binding for
        Soap11? And why doesnt the 'useOriginalwsdl' property though set
        to true, not work in my case?
     2. Are there any changes to be made on the server side in-order to
        map the updated URL to service archive file? (Other than the
        necessary modifications to web.xml to include the
        servlet-mapping for updated URL)


The client stub has the following line to set the appropriate Soap
version;


_serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);


Even then, when i run my client with the newer endpoint, I hit the
following problem;

 org.apache.axis2.AxisFault: Service not found operation terminated !!
     [java]     at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:271)
     [java]     at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:202)


I have setup SOAPMonitor on the server side and I dont see any request
coming in at all. This leads me to believe that the in pre-dispatch
phase none of the dispatchers are able to locate the operation within
the service.

However, when the client is run with the older endpoint, the server is
still able to honor the request and send back the response. This
behavior leads to another set of questions I have:

 3. What information is used by the dispatchers to verify the existence
of an operation within a service?

 4. I have a scenario, where in the service endpoint is determined at
runtime based on location of the incoming request. Given this scenario,
how does one map the service class to multiple end points. The wsdl
location is generated at runtime and the client then invokes the
operation defined within the service. On the server-side, how do we
handle this in terms of verifying the service location?


Thanks in advance.

vedha




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

Reply via email to