axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sharath reddy <>
Subject Issue with Provider-based Jax-ws service and Wsdl
Date Thu, 26 Feb 2009 10:24:37 GMT

I'm having trouble trying to deploy a Provider-based web service: 


public class SampleProvider implements Provider<Source>{ ... 

I have provided a WSDL file at the location indicated above (WsdlLocation).

When I query the service with the '?wsdl' parameter, I want to see the WSDL above, and NOT
generate the WSDL from the annotated class. In any case, we can't generate a WSDL from a Provider
class since the class does not contain port type and operation information. 

In order to do so, I had to make the following 2 changes:
1. In order to display the user-provided WSLD, I had to hack this method in AxisService to
always return TRUE, since I am not using services.xml file, need to come up with a way to
handle this for JAX-WS services.

     * User can set a parameter in services.xml saying he want to show the
     * original wsdl that he put into META-INF once someone ask for ?wsdl so if
     * you want to use your own wsdl then add following parameter into
     * services.xml <parameter name="useOriginalwsdl">true</parameter>
       public boolean isUseUserWSDL() {
		System.out.println("isUseUserWSDL: returning true");
		return true;
		/*Parameter parameter = getParameter("useOriginalwsdl");
		if (parameter != null) {
			String value = (String) parameter.getValue();
			if ("true".equals(value)) {
				return true;
		return false;*/

2. If accessing user-defined WSDL, the run-time tries to retrieve the WSDL from an Axis parameter
called  WSDLConstants.WSDL_4_J_DEFINITION. Since this parameter is not being populated for
JAx-WS services, I had to modify  the code to stuff it in there. Currently, its a bit of a

In DescriptionFactory.createAxisService() :

    ServiceDescriptionImpl serviceDescriptionImpl = 
            	(ServiceDescriptionImpl) serviceDescription;
   Definition definition = serviceDescriptionImpl.getWSDLDefinition();
   if (definition != null)
      axisService.addParameter(WSDLConstants.WSDL_4_J_DEFINITION, definition);

Is there anything I am doing wrong? Are there any working examples of using Provider-type
web services in Axis2? 



View raw message