SAR (Service Archive) file in JBoss
SAR (Service Archive)
This tips explains how to create and deploy the SAR file in the JBoss application server. SAR files are only used in the JBoss application server. It cannot be used in the other application server environments. Before looking into creating a SAR file, first let you know what is SAR file.
What is SAR file?
SAR file is created with the .sar extenstion same like how other archive files (JAR, WAR, EAR) created. But the purpose of the SAR file is differenet from the other archive files. It is used for deploying a service component in the application server without dependent on other componenets. You can create a seperate componenet as a SAR file and deploy it in the server. When application server starts, the component will be deployed and started running independently. Most of the times these SAR files are used for writing thread related components which has to be running independently.
JBoss's service archive architecture is based on the Java Extension Management (JMX). During the server bootup process, the service archive deployer (SARDeployer) instantiates the JBoss service classes and exposes them as manageable beans through JMX. You can view all of registered JBoss service components in the JBoss JMX Console web application.
Create SAR file
In this section we will see how to create the SAR file. The following are the steps required to create a SAR file:
Add JAR Files
Jakarta Commons IO, Jakarta Commons Logging, jboss-common.jar, jboss-jmx.jar ,jboss-system.jar, jboss-xml-binding.jar
Create MBean interface as Follows :
public interface JavaBeatMBean implements ServiceMBean{ public void start(); public void stop(); }
Create MBean implementation class as Follows :
public class JavaBeat{ public void start(){ System.out.println("Test Start"); } public void stop(){ System.out.println("Test Stop"); } }
Create a new implementation class, JavaBeat, that implements JavaBeatMBean. As prescribed by the standard MBean specs, the implemented class must have the same name as the MBean interface minus the "MBean" suffix. Now we have created the service componenet, its time to package and deploy the componenet.
Create jboss-service.xml as follows:
<server> <mbean code="JavaBeat" name="service.javabeat:service=JavaBeat"/> </server>
This file should be kept inside the META-INF folder.
Build and create SAR file
When you build and creating the SAR file, it should be in the following package structure: javabeat-service.sar->META-INF/jboss-service.xml javabeat-service.sar->JavaBeat.class javabeat-service.sar->JavaBeatMBean.class javabeat-service.sar->JAR files
when you deploy this SAR file, application server will deploy the componenet and start the JavaBeat class's start methods. start is a callback method in the MBean interfaces.