Skip to main content

Deploying Axis2 web service as ROOT application on Tomcat

By default Axis2 services are available on http://host:8080/axis2/services/*. If you want to remove axis2/services part from the service endpoint and access your service by http://host:8080/serviceName/*

1. Overide default Axis2 servlet mapping services in web.xml file.

 AxisServlet
 /serviceName/*

2. Remove an application name value by deploying axis2 implementation (from war distribution axis2-1.X.X-war.zip) as ROOT application.

Info: War distribution contains application with above structure:
axis2-web
META-INF
org
WEB-INF
    classes
    conf
    lib
    modules
    services
        put here *.aar files to deploy WS
    web.xml (manually created)

web.xml file







    Apache-Axis2
    
        AxisServlet
        Apache-Axis Servlet
        org.apache.axis2.transport.http.AxisServlet
        
        
        
        
        
        
        
        
        
        
        1
    
    
        AxisAdminServlet
        Apache-Axis AxisAdmin Servlet (Web Admin)
        
            org.apache.axis2.webapp.AxisAdminServlet
    
    
    
    
    
        AxisServlet
        /servlet/AxisServlet
    

    
        AxisServlet
        *.jws
    

    
        AxisServlet
        /serviceName/*
     
 
    
        AxisAdminServlet
        /axis2-admin/*
    

    
    
    
        inc
        text/plain
    

   
      index.jsp
      index.html
      /axis2-web/index.jsp
    

    
      404
      /axis2-web/Error/error404.jsp
    

    
        500
        /axis2-web/Error/error500.jsp
    

Comments

Popular posts from this blog

Convert Source to String

import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; import javax.xml.transform.Source; import javax.xml.transform.sax.SAXSource; import org.xml.sax.InputSource; public class DataSourceTest { public static void main(String[] args) throws IOException { // created Source InputSource inputSource = new InputSource(new StringReader( " \n \n \n ")); Source source = new SAXSource(inputSource); // read Source SAXSource saxSource = (SAXSource) source; InputSource inputSourceReader = saxSource.getInputSource(); Reader reader = inputSourceReader.getCharacterStream(); BufferedReader buffereRreader = new BufferedReader(reader); String read = null; while ((read = buffereRreader.readLine()) != null) { System.out.println(read); } } }

ShutDownHook - the last breath of an application

ShutDownHook allows you to perform operations (e.g. close opened resources, remove temporary files and so on) just before virtual machine shuts down. A documentation says that JVM may shut down in two cases: program finishes execution normally when all threads finishes their work (except deamon-threads like garbage collector) virtual machine receives a termination signal (for example after sending kill signal under unix or ctrl + C key combination under windows) Below is an example which will start endless loop which do nothing. But an important thing in this code is a part where shutDownHook is added. When an termination signal will be send to JVM a code from a run() method will be executed just before JVM shuts down. public class ShutDownHook { public static void main(String[] args) { Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { System.out.println("Close opened resources"); } }); while (true) { // do nothing } } }