1. Define web service interface class

package ws;
public interface HelloWorldService {
String sayHelloWorld();
}

2. Write web service implement class

package ws;
public class HelloWorldServiceImpl implements HelloWorldService {
public String sayHelloWorld() {
return "Hello World!";
}
}


3. Write web service endpoint class

package ws;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
public class HelloWorldServiceEndpoint extends ServletEndpointSupport implements HelloWorldService{
private HelloWorldService service;

protected void onInit() {
this.service = (HelloWorldService) getWebApplicationContext().getBean("helloWorldService");
}

public String sayHelloWorld() {
return service.sayHelloWorld();
}
}


4. Define bean in spring configuration file.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
default-lazy-init="true">
<bean id="helloWorldService" class="ws.HelloWorldServiceImpl"/>
</beans>


5. Define AxisServlet in web.xml file

    <servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/axis/*</url-pattern>
</servlet-mapping>


6. Define wsdl file web/WEB-INF/server-config.wsdd

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="adminPassword" value="admin" />
<parameter name="sendXsiTypes" value="true" />
<parameter name="sendMultiRefs" value="true" />
<parameter name="sendXMLDeclaration" value="true" />
<parameter name="axis.sendMinimizedElements" value="true" />
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session" />
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request" />
<parameter name="extension" value=".jwr" />
</handler>
</requestFlow>
</globalConfiguration>
<handler name="Authenticate"
type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />
<handler name="LocalResponder"
type="java:org.apache.axis.transport.local.LocalResponder" />
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />
<service name="AdminService" provider="java:MSG">
<parameter name="allowedMethods" value="AdminService" />
<parameter name="enableRemoteAdmin" value="false" />
<parameter name="className" value="org.apache.axis.utils.Admin" />
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<service name="HelloWorldService" provider="java:RPC">
<parameter name="allowedMethods" value="*" />
<parameter name="className" value="ws.HelloWorldServiceEndpoint" />
</service>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion" />
<parameter name="className" value="org.apache.axis.Version" />
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper" />
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
</requestFlow>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder" />
</responseFlow>
</transport>
</deployment>


7. Write client side class to test web service

package ws;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class HelloWorldClient {
public static void main(String[] args) throws Exception {
String endpoint = "http://localhost:9000/axis/HelloWorldService";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("sayHelloWorld");
String s = (String) call.invoke(new Object[] {});
System.out.println(s);
}
}


8. Start web container and access wsdl url: http://localhost:9000/axis/HelloWorldService?wsdl


9. Run client