Tuesday, November 19, 2024
Google search engine
HomeLanguagesJavaSpring – Remoting By Burlap

Spring – Remoting By Burlap

Coucho can provide both Hessian and Burlap. Burlap is an xml-based Hessian substitute. We may use the BurlapServiceExporter and BurlapProxyFactoryBean classes to implement burlap’s remoting service.

Implementation: You need to create the following files for creating a simple burlap application:

  1. Calculation.java
  2. CalculationImpl.java
  3. web.xml
  4. burlap-servlet.xml
  5. client-beans.xml
  6. Client.java

The project structure will look as follows: 

A. File: Calculation.java

Java




// Java Program to illustrate Simple Interface
// Containing a Method
  
package com.neveropen;
  
// Interface
public interface Calculation {
    int cube(int number);
}


B. File: CalculationImpl.java

Java




// Java Program to Implement Calculation Interface
  
package com.neveropen;
  
// Class
// Implementing interface
public class CalculationImpl implements Calculation {
    
    // Method
    public int cube(int number)
    {
        // Returning cube of a number
        return number * number * number;
    }
}


C. File: web.xml

The front controller is defined in this XML file called DispatcherServlet. Any request that ends in.http will be routed to DispatcherServlet.

XML




<?xml version="1.0" encoding="UTF-8"?>
<web-app>
    
    <servlet>
    <servlet-name>burlap</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
  
<servlet-mapping>
    <servlet-name>burlap</servlet-name>
    <url-pattern>*.http</url-pattern>
</servlet-mapping>
  
</web-app>


D. File: burlap-servlet.xml

It has to be placed in the WEB-INF folder. It must be called servletname-servlet.xml. It specifies CalculationImpl and BurlapServiceExporter as beans.

XML




<?xml version="1.0" encoding="UTF-8"?>
      
    <bean id="calculationBean"
        class="com.neveropen.CalculationImpl">
    </bean>
    <bean name="/Calculation.http" class="org.springframework.remoting.caucho.BurlapServiceExporter">
        <property name="service" ref="calculationBean"></property>
        <property name="serviceInterface" value="com.neveropen.Calculation"></property>
    </bean>
  
</beans>


E. File: client-beans.xml

The bean for BurlapProxyFactoryBean is defined in this XML file. This class requires two attributes to be defined.

  1. serviceUrl
  2. serviceInterface

XML




<?xml version="1.0" encoding="UTF-8"?>
      
    <bean id="calculationBean" class="org.springframework.remoting.caucho.BurlapProxyFactoryBean">
        <property name="serviceUrl" value="http://localhost:8888/burlap/Calculation.http"></property>
        <property name="serviceInterface" value="com.neveropen.Calculation"></property>
    </bean>
</beans>


F. File: Client.java

This class gets the instance of Calculation and calls the cube method.

Java




// Java Program to Illustrate Client Class
  
package com.neveropen;
  
// Importing required classes
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
  
// Class
public class Client {
  
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an object of ApplicationContext class
        ApplicationContext context
            = new ClassPathXmlApplicationContext(
                "client-beans.xml");
        Calculation calculation
            = (Calculation)context.getBean(
                "calculationBean");
  
        // Printing cube of a random number
        System.out.println(calculation.cube(3));
    }
}


Output:

27

Note: In order to run the above code fragment to get the output:

  • Start and deploy the project, assuming that the server is listening on port 8888. Change the serviceURL in client-beans.xml if the port number is changed.
  • The Client.java file should then be compiled and run.
RELATED ARTICLES

Most Popular

Recent Comments