Aayush: weblog

Creating,building,deploying and testing projects with Mobicents JAIN SLEE 2.x.y Series

Posted by Aayush Bhatnagar on March 10, 2010


Introduction:

Mobicents 2.x.y series of the JAIN SLEE platform is fully compliant to JSR-240 specification. It has been released to the community recently and I have observed frequent queries by the community on creating and deploying JAIN SLEE services on this platform.

Some of the queries are a common concern to many community members.

Therefore, I decided to write this tutorial for providing a step-by-step process for developing and deploying components on the JAIN SLEE 2.x.y series of the Mobicents platform.

This post assumes that you have basic working experience with tools such as Eclipse and Maven and you are using the JAIN SLEE 2.0.0GA binary distribution. For getting JAIN SLEE 2.0.0 GA, please visit this link: JAIN SLEE 2.0.0 GA Download

This post will cover the following topics:

a) Setting up your environment.

b) Installing necessary plugins and software.

c) Developing a JAIN SLEE project using maven archetypes.

d) Launching Maven builds from command line and from eclipse.

e) Deploying and testing your JAIN SLEE services using an IMS client.

Setting up your environment and software installation:


Before you start, you need to set up your environment properly and need to download and install the requisite software. This includes the following steps:

1. Download the Java Development Kit and install it on your machine.

You can get the JDK from this link: JDK Download

Select the appropriate package depending upon your operating system and set the JAVA_HOME environment variable and set the PATH variable properly. Follow the instructions given on the SUN website for the same.

2. Download and install Maven-2 or higher.

All Mobicents components are ‘mavenized’. You need to get Maven 2 or higher and install it on your machine. Please download and install maven and set the required environment variables (M2, M2_HOME and M2_REPO). Also set the PATH correctly.

You can get maven 2 from this link: MAVEN2

3. Download and install Mobicents Maven plugins.

Mobicents provides some plugins for development. Even though these components are for the JAIN SLEE 1.x.y application components at the time of this post, the maven plugins for JAIN SLEE 2.x.y are expected to be released soon for use with the JAIN SLEE 2.x.y series.

You can download and install these plugins from here:

a. Mobicents maven library plugin

b. Mobicents maven DU plugin

4. Install Maven archetypes and configure the Maven archetype catalog

You need to get the archetypes from the link provided:

a. Mobicents maven archetypes

Now the archetype-catalog.xml file needs to be configured to include these installed archetypes. This is done by including their entries in this file. This file should be present in the .m2 directory of  your installation.  An example file is shown below:

<?xml version=”1.0″ encoding=”UTF-8″?>
<archetype-catalog>
<archetypes>
<archetype>
<groupId>org.mobicents.tools.maven.archetype.slee</groupId>
<artifactId>jain-slee-11-service</artifactId>
<version>1.0.0.BETA2-SNAPSHOT</version>
</archetype>
<archetype>
<groupId>org.mobicents.tools.maven.archetype.slee</groupId>
<artifactId>jain-slee-11-library</artifactId>
<version>1.0.0.BETA2-SNAPSHOT</version>
</archetype>
<archetype>
<groupId>org.mobicents.tools.maven.archetype.slee</groupId>
<artifactId>jain-slee-11-ra</artifactId>
<version>1.0.0.BETA2-SNAPSHOT</version>
</archetype>
<archetype>
<groupId>org.mobicents.tools.maven.archetype.slee</groupId>
<artifactId>jain-slee-11-profile</artifactId>
<version>1.0.0.BETA2-SNAPSHOT</version>
</archetype>
</archetypes>
</archetype-catalog>
Please note, that at the time of writing this post, the jain-slee-11-service archetype is not present in the SVN.  It will be committed in the SVN in the future though. You can use the jain-slee-basic-service archetype for Mobicents 1.x.y and edit the descriptors to make it work with the 2.x.y series.

5. Download and install Eclipse Galileo

Please use Eclipse Galileo, as it supports launching MAVEN builds from inside eclipse and you will not need to use the command line interface. Eclipse Galileo can be downloaded from here:

Eclipse Download

Open eclipse and configure your default workbench location. You should see a screen like this for a new installation:

6. Install the m2Eclipse plugin

After downloading eclipse, you need to install the m2eclipse plugin for maven integration with eclipse.

You can use the update site URL given on this link to install this plugin: m2eclipse

Refer to the screenshot on how to do this below.

Go to help —> install new software and then add the update site url as shown below:

7. Download and install Mobicents JAIN SLEE 2.0.0 GA

Download and install the mobicents container from the link given earlier in this post.

8. Download and install a SIP/IMS client

For testing purposes for the sample project explained later in this post, you will need a SIP or IMS client. I have used the Mercuro IMS client for testing. It is freely available here

Creating a basic Mobicents JAIN SLEE project:

1. Create an maven eclipse project:

Create a new maven project in eclipse by going to File —> New —> Other –> Maven Project. The project wizard launched will guide you in the project creation progress as shown in the screenshot below. You can select the archetypes you need for module creation. You may click on the “configure” button to select your archetype-catalog.xml file to see a list of available archetypes.

In this example, we are using the jain-slee-basic-service archetype, as at the time of writing this post the jain-slee-11-archetype is not ready in SVN.

The project modules created will be of the following structure:

|-du
|—src
|—–main
|——-resources
|———services
|-sbb
|—src
|—–main
|——-java
|———…
|——-resources
|———META-INF

If you look in the filesystem, the project parent (root) will have the following content:

It will contain a parent POM file and two modules by the name of “sbb” and “du”

The parent POM file of our example project looks like this:

<project xmlns=”http://maven.apache.org/POM/4.0.0&#8243; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd”&gt;

<modelVersion>4.0.0</modelVersion>

<packaging>pom</packaging>

<artifactId>mobicents-tutorial-parent</artifactId>

<groupId>org.tutorial</groupId>

<version>0.0.1-SNAPSHOT</version>

<modules>

<module>sbb</module>

<module>du</module>

</modules>

<properties>

<!– JBOSS APP SERVER CONFIG RUNNING MOBICENTS –>

<jboss.config>default</jboss.config>

<mobicents.resources.sip11.version>2.0.0.GA</mobicents.resources.sip11.version>

<mobicents.servers.jainslee.version>2.0.0.GA</mobicents.servers.jainslee.version>

</properties>

<dependencyManagement>

<dependencies>

<!–

IMPORTS MOBICENTS JAIN SLEE SERVER

DEPENDENCY MANAGEMENT

–>

<dependency>

<groupId>org.mobicents.servers.jainslee.core</groupId>

<artifactId>mobicents-slee-core</artifactId>

<version>2.0.0-SNAPSHOT</version>

</dependency>

</dependencies>

</dependencyManagement>

<build>

<plugins>

<!– MOBICENTS MAVEN ECLIPSE PLUGIN – use “mvn mobicents:eclipse” to generate eclipse project files –>

<plugin>

<artifactId>maven-eclipse-plugin</artifactId>

<groupId>org.mobicents.tools</groupId>

<version>1.0.0.BETA2</version>

<inherited>false</inherited>

<executions />

</plugin>

<!– JAVA COMPILER CONFIG –>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.5</source>

<target>1.5</target>

<debug>true</debug>

</configuration>

</plugin>

<!– JARS MANIFEST FILE SETUP –>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-jar-plugin</artifactId>

<configuration>

<archive>

<manifest>

<addDefaultSpecificationEntries>

true

</addDefaultSpecificationEntries>

<addDefaultImplementationEntries>

true

</addDefaultImplementationEntries>

</manifest>

</archive>

</configuration>

</plugin>

</plugins>

</build>

<!– JBOSS MAVEN REPOSITORIES –>

<repositories>

<repository>

<id>jboss</id>

<name>JBoss Repository</name>

<url>http://repository.jboss.org/maven2</url&gt;

<snapshots>

<enabled>false</enabled>

</snapshots>

</repository>

<repository>

<id>jboss-snapshots</id>

<name>JBoss Snapshot Repository</name>

<url>http://snapshots.jboss.org/maven2</url&gt;

<releases>

<enabled>false</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>

</repositories>

<pluginRepositories>

<pluginRepository>

<id>jboss</id>

<name>JBoss Plugin Repository</name>

<url>http://repository.jboss.org/maven2</url&gt;

<snapshots>

<enabled>false</enabled>

</snapshots>

</pluginRepository>

<pluginRepository>

<id>jboss-snapshots</id>

<name>JBoss Snapshot Plugin Repository</name>

<url>http://snapshots.jboss.org/maven2</url&gt;

<releases>

<enabled>false</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</pluginRepository>

</pluginRepositories>

</project>

This POM files lists its two child modules, the JBOSS repository URLs, the configuration of the target JBOSS AS in which we want to deploy our components, the java compiler configurations and the plugins we need for generating the eclipse files for mobicents projects.

The SBB module will have the following content:

It consists of the src folder. Inside this folder we have a hierarchy. The src/main/java folder contains your source code. The src/main/resources folder contains your sbb-jar.xml deployment descriptor file.

The pom file of the SBB module is as follows:

<project xmlns=”http://maven.apache.org/POM/4.0.0&#8243; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd”&gt;

<modelVersion>4.0.0</modelVersion>

<parent>

<artifactId>mobicents-tutorial-parent</artifactId>

<groupId>org.tutorial</groupId>

<version>0.0.1-SNAPSHOT</version>

</parent>

<artifactId>mobicents-tutorial-sbb</artifactId>

<dependencies>

<dependency>

<groupId>org.mobicents.resources</groupId>

<artifactId>sip11-ratype</artifactId>

<version>2.0.0.BETA2</version>

<scope>runtime</scope>

</dependency>

</dependencies>

</project>

The deployable unit module will have the following structure:

It will consist of the src folder just like the sbb module did. Under the src/main/resources/services folder you will have your JAIN SLEE service.xml file.

The pom file looks like this for this module:

<project xmlns=”http://maven.apache.org/POM/4.0.0&#8243; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd”&gt;
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<parent>
<artifactId>mobicents-tutorial-parent</artifactId>
<groupId>org.tutorial</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>mobicents-tutorial-du</artifactId>
<dependencies>
<dependency>
<artifactId>mobicents-tutorial-sbb</artifactId>
<groupId>${pom.groupId}</groupId>
<version>${pom.version}</version>
</dependency>
</dependencies>

<build>

<plugins>
<plugin>
<groupId>org.mobicents.tools</groupId>
<artifactId>maven-du-plugin</artifactId>
<extensions>true</extensions>
<configuration />
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>deploy-DU</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<copy overwrite=”true” file=”target/${project.build.finalName}.jar” todir=”${jboss.home}/server/${node}/deploy” />
</tasks>
</configuration>
</execution>
<execution>
<id>undeploy-DU</id>
<phase>clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete file=”${jboss.home}/server/${node}/deploy/${project.build.finalName}.jar” />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

The project structure is shown below:

2. Populate your SBB code:

Now, we are ready to do some coding. This example contains two event handler methods. The first event handler method is called when the service is first started by the JAIN SLEE container. It is marked as the onServiceStartedEvent (args).

In this event we check whether it is our service that is starting and attach to the service activity if that is the case.

This event is declared in the sbb-jar.xml file as follows:

<event event-direction=”Receive” initial-event=”True”>

<event-name>ServiceStartedEvent</event-name>

<event-type-ref>

<event-type-name>javax.slee.serviceactivity.ServiceStartedEvent</event-type-name>

<event-type-vendor>javax.slee</event-type-vendor>

<event-type-version>1.1</event-type-version>

</event-type-ref>

<initial-event-select variable=”ActivityContext” />

</event>

The source code for this event is generated by the maven plugin.

The second event handler of our project is the onRegisterEvent. This event is supposed to send back a 200 OK for the incoming request on the SIP server transaction activity and then construct and send a MESSAGE to the SIP client on the client transaction activity.

This method is declared in the sbb-jar.xml as follows:

<event event-direction=”Receive” initial-event=”True”>

<event-name>RegisterEvent</event-name>

<event-type-ref>

<event-type-name>javax.sip.message.Request.REGISTER</event-type-name>

<event-type-vendor>net.java.slee</event-type-vendor>

<event-type-version>1.2</event-type-version>

</event-type-ref>

<initial-event-select variable=”ActivityContext” />

</event>

The source code for this method is as follows:

public void onRegisterEvent(RequestEvent event, ActivityContextInterface ac)

{

tracer.info(“REGISTER REQUEST RECEIVED AT MY SBB”);

Request register = event.getRequest();

ServerTransaction st = event.getServerTransaction();

FromHeader from = (FromHeader) register.getHeader(FromHeader.NAME);

ContactHeader contact = (ContactHeader)register.getHeader(ContactHeader.NAME);

tracer.info(“SENDING REPONSE TO THE REGISTER REQUEST”);

try{

st.sendResponse(messageFactory.createResponse(Response.OK, register));

tracer.info(“SENDING AN INSTANT MESSAGE TO THE CLIENT”);

Address fromNameAddress = addressFactory

.createAddress(“sip:mobicents-jain-slee@mobicents.org”);

fromNameAddress.setDisplayName(“Mobicents JAIN SLEE 2.0.0”);

FromHeader fromHeader = headerFactory.createFromHeader(

fromNameAddress, Utils.getInstance().generateTag());

List<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(1);

ListeningPoint listeningPoint = provider.getListeningPoints()[0];

ViaHeader viaHeader = provider.getHeaderFactory()

.createViaHeader(listeningPoint.getIPAddress(),

listeningPoint.getPort(),

listeningPoint.getTransport(), null);

viaHeaders.add(viaHeader);

ContentTypeHeader contentTypeHeader = headerFactory

.createContentTypeHeader(“text”, “plain”);

CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(2L,

Request.MESSAGE);

MaxForwardsHeader maxForwardsHeader = headerFactory

.createMaxForwardsHeader(70);

provider.getNewClientTransaction(messageFactory.createRequest(contact.getAddress().getURI(),

Request.MESSAGE, headerFactory.createCallIdHeader(“mobicents”+System.currentTimeMillis()),

cSeqHeader, fromHeader, headerFactory.createToHeader(from.getAddress(),null),

viaHeaders, maxForwardsHeader, contentTypeHeader, “Welcome to Mobicents JAIN SLEE 2.0 series”))

.sendRequest();

}catch(Exception ex){

ex.printStackTrace();

}

tracer.info(“REQUEST GREETING SENT..”);

}

The other important method of this SBB is the setSbbContext method. This is where we populate the resources being used in the SBB including JAIN SLEE facilities and Resource Adapter factories.

The code for this method looks like this:

/**
* Called when an sbb object is instantied and enters the pooled state.
*/
public void setSbbContext(SbbContext context) {
this.sbbContext = context;
this.tracer = context.getTracer(RootSbb.class.getSimpleName());
try {
sbbEnv = (Context) new InitialContext().lookup(“java:comp/env”);
provider = (SleeSipProvider) sbbEnv.lookup(“slee/resources/jainsip/1.2/provider”);
messageFactory = provider.getMessageFactory();
headerFactory = provider.getHeaderFactory();
addressFactory = provider.getAddressFactory();
tracer.info(“setSbbContext(…)”);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

3. Deployment descriptors:

There are two major deployment descriptors: sbb-jar.xml and service.xml

The sbb-jar.xml file looks like the one shown below. It contains the events that the SBB listens to and the SIP resource adapter configuration:

<?xml version=”1.0″?>

<!DOCTYPE sbb-jar PUBLIC “-//Sun Microsystems, Inc.//DTD JAIN SLEE SBB 1.1//EN”

http://java.sun.com/dtd/slee-sbb-jar_1_1.dtd”&gt;

<sbb-jar>

<sbb>

<description />

<sbb-name>mobicents-tutorial SBB</sbb-name>

<sbb-vendor>org.tutorial</sbb-vendor>

<sbb-version>0.0.1-SNAPSHOT</sbb-version>

<sbb-classes>

<sbb-abstract-class reentrant=”False”>

<sbb-abstract-class-name>org.tutorial.mobicents_tutorial.RootSbb</sbb-abstract-class-name>

</sbb-abstract-class>

</sbb-classes>

<event event-direction=”Receive” initial-event=”True”>

<event-name>RegisterEvent</event-name>

<event-type-ref>

<event-type-name>javax.sip.message.Request.REGISTER</event-type-name>

<event-type-vendor>net.java.slee</event-type-vendor>

<event-type-version>1.2</event-type-version>

</event-type-ref>

<initial-event-select variable=”ActivityContext” />

</event>

<event event-direction=”Receive” initial-event=”True”>

<event-name>ServiceStartedEvent</event-name>

<event-type-ref>

<event-type-name>javax.slee.serviceactivity.ServiceStartedEvent</event-type-name>

<event-type-vendor>javax.slee</event-type-vendor>

<event-type-version>1.1</event-type-version>

</event-type-ref>

<initial-event-select variable=”ActivityContext” />

</event>

<resource-adaptor-type-binding>

<resource-adaptor-type-ref>

<resource-adaptor-type-name>

JAIN SIP

</resource-adaptor-type-name>

<resource-adaptor-type-vendor>

javax.sip

</resource-adaptor-type-vendor>

<resource-adaptor-type-version>

1.2

</resource-adaptor-type-version>

</resource-adaptor-type-ref>

<activity-context-interface-factory-name>

slee/resources/jainsip/1.2/acifactory

</activity-context-interface-factory-name>

<resource-adaptor-entity-binding>

<resource-adaptor-object-name>

slee/resources/jainsip/1.2/provider

</resource-adaptor-object-name>

<resource-adaptor-entity-link>

SipRA

</resource-adaptor-entity-link>

</resource-adaptor-entity-binding>

</resource-adaptor-type-binding>

</sbb>

</sbb-jar>

The JAIN SLEE service.xml descriptor looks like the one shown below:

<?xml version=”1.0″ encoding=”utf-8″?>

<!DOCTYPE service-xml PUBLIC “-//Sun Microsystems, Inc.//DTD JAIN SLEE Service 1.1//EN”

http://java.sun.com/dtd/slee-service-xml_1_1.dtd”&gt;

<service-xml>

<service>

<description/>

<service-name>mobicents-tutorial SLEE Service</service-name>

<service-vendor>org.tutorial</service-vendor>

<service-version>1.1</service-version>

<root-sbb>

<description/>

<sbb-name>mobicents-tutorial SBB</sbb-name>

<sbb-vendor>org.tutorial</sbb-vendor>

<sbb-version>0.0.1-SNAPSHOT</sbb-version>

</root-sbb>

<default-priority>0</default-priority>

</service>

</service-xml>

4. Build your code:

For building the project, make sure JBOSS_HOME is set. Then right click on mobicents-tutorial-parent and go to run-as. Now click on maven install.

As a result of this operation, the DU will be compiled and deployed in the JBOSS AS.

Refer to the screenshot below:


5. Deploy your binaries:

If you JBOSS_HOME variable is not set, then the binaries will be copied to the mobicents-tutorial-parent\du\${jboss.home}\server\${node}\deploy directory. You can manually copy and paste this binary to the /deploy directory of JBOSS AS.

6. Test the service:

Use an IMS or a SIP client. I have used Mercuro. Configure 127.0.0.1:5060 as the outbound proxy for the client and then register with Mobicents JAIN SLEE server.

For Mercuro, you will see the result as shown in the screenshot below:


Conclusion:

If you have right tools by your side, then creating projects, developing, deploying and testing your logic can be a smooth process.

If you found this post useful, then please let me know. Your feedback is valuable.


Advertisements

40 Responses to “Creating,building,deploying and testing projects with Mobicents JAIN SLEE 2.x.y Series”

  1. Great tutorial Aayush!

    Me and some coworkers maintain a blog in Brazil called ensinar (http://ensinar.wordpress.com), and we are starting a series of posts about mobicents, I’d like to ask you if we can translate this post to portuguese and post in our blog? We will make reference and give credits to you

    Thank you very much!

  2. whitelassiblog said

    Great initiative Antonio. Please go ahead with translating the post on your blog. I am glad you liked it.

  3. Rajat said

    Thanks tons for this information. It was very helpful and convenient.

  4. Great work Aayush, thanks for another precious contribution to the Mobients / JAIN SLEE community.

    By the way, the JAIN SLEE 1.1 Maven Archetypes and documentation around Mobicents 2.x Maven plugins will be updated soon.

  5. whitelassiblog said

    Most welcome Eduardo. We all love JAIN SLEE !

  6. baranowb said

    1.1 service will join after weekend.

  7. whitelassiblog said

    Great news. I will update this post after monday then.

  8. Just landed on this post via Google research. I love it. This post change my perception and I am obtaining the RSS feeds. Cheers Up.

  9. Didi said

    This post was very useful as it showed me some new things and made it easy to create and integrate with eclipse. Thanks man

  10. whitelassiblog said

    Most welcome guys.

  11. Namal said

    Thanks a lot Aayush……..

    Great work……..

    I’m new to mobicents and this will be a good starting point for me ……

  12. whitelassiblog said

    you are most welcome Namal.

  13. […] Comments whitelassiblog on Creating,building,deploying an…Namal on Creating,building,deploying an…whitelassiblog on 3G Auctions in India:Business […]

  14. RK said

    Hi Aayush,

    I was trying to setup a jslee project using the newer jain-slee-11-service artifact, It creates the parent, the sbb, event, library, and du. However, when I try and use maven install on the project i get the following error.
    [ERROR] Failed to execute goal org.mobicents.tools:maven-du-plugin:2.0.0.BETA3:create (default) on project cbr2-du: Error assembling DU: failed to parse service descriptor services\service.xml: NullPointerException -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.mobicents.tools:maven-du-plugin:2.0.0.BETA3:create (default) on project cbr2-du: Error assembling DU
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:585)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:121)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Error assembling DU

    Any help would be great.

    Regards,

    RK

  15. whitelassiblog said

    Hi…can you please post this info….and also your service.xml on the mobicents public group: http://groups.google.com/group/mobicents-public

    thanks

  16. Dear Whitelassiblog

    I got introduced to Jain Slee/ Mobicents by a friend in SA , however i need stuffs to get me started on understanding the benefits of technlogy. I appreciate your help

  17. whitelassiblog said

    Hi Sola,

    Please let me know, how I can be of help.

  18. Sola Salami said

    Thanks for your prompt reply, I need sample tutorials (Real life Examples) that demonstrate the use of JAIN SLEE and Mobicents.

  19. whitelassiblog said

    Hi !

    You can find loads of examples on this link regarding Mobicents JAIN SLEE applications:

    http://mobicents.googlecode.com/svn/trunk/servers/jain-slee/examples/

  20. Syedin said

    Hi, Thanks a lot sir. great work.

    I want to develop a browser based java soft phone for my website where user don’t have to install anything. Can anyone help?

  21. Anish Sneh said

    Hi

    @syendin I’m also interested in the same please let me know if we could work on the same line.

    — Anish Sneh

  22. shanti said

    Thanks for the post, if you download “mss-1.4.0.FINAL-jboss-jdk6-5.1.0.GA-1010191930.zip” do you also need to download all the other, JAIN SLEE Server, Diameter etc that you would need?

    Shanti

  23. shanti said

    Hi

    Trying to run the example even though I have all the imports, I sometimes get the following error
    :\demo\mobicentService-parent\sbb\src\main\java\org\tutorial\mobicentService\RootSbb.java:[195,15] cannot find symbol
    symbol : class SleeSipProvider

    Also even if it does build and create a sbb jar file, this does not seem to get included in the du jar, and so the jmx console finds the sbb MISSING.

    Any help is greatly appreciated.

    Thanks for your time

  24. whitelassiblog said

    Do two things:
    ————–
    1. In the /sbb module, add the following dependency to the pom file:

    javax.slee, jain-slee, 1.1

    Similarly, if you are using SIP in the sbb you need to add the appropriate dependencies to the sbb module.

    ———————————————–

    2. In the /du maven module, add a dependency of the sbb module so that it gets included. Also make sure that in the POM file of the DU, the following plugins are mentioned:

    maven-du-plugin
    maven-antrun-plugin

    Also, you can post these doubts on the mobicents public forums where you can get community feedback.

  25. shanti said

    Hi Ayush

    Thanks for the quick response, I do have those in my POM,

    for javax.slee ( I did not have the version) will try that.
    For the maven.du.plugin, i have version as 1.0.0.BETA3, will try without that.

    Thanks
    Shanti

  26. whitelassiblog said

    Regarding the other question on MSS, you do not need to download JAIN SLEE or diameter projects if you are using MSS.

  27. shanti said

    Hi

    So I got it to build however there is still a missing dependency.

    09:42:54,840 INFO [DeployableUnit] Missing dependencies for mobicentService-du-0.0.1-SNAPSHOT.jar:
    +– EventTypeID[name=javax.slee.serviceactivity.ServiceStartedEvent,vendor=javax.slee,version=1.0]
    +– SbbID[name=mobicentService SBB,vendor=org.tutorial,version=0.0.1-SNAPSHOT]
    09:42:54,840 WARN [DeploymentManager] Unable to INSTALL mobicentService-du-0.0.1-SNAPSHOT.jar right now. Waiting for dependencies to be resolved.

  28. whitelassiblog said

    So now your sbb jar file is included in the DU jar ?

    Change the version of the service started event to 1.1 in the sbb-jar.xml file. I am assuming that you are using JAIN SLEE 1.1 container (2.x.y series).

    Also check that in the service.xml, the root sbb has been mentioned.

  29. shanti said

    Thanks again, yess the sbb jar was in the DU jar, I will try you suggestion

    Thanks for quick responses and patience, I am new to Mobicents

  30. shanti said

    made the change to SLEE 1.1 now I run into the problem again of

    C:\demo\mobicentService-parent\sbb\src\main\java\org\tutorial\mobicentService\RootSbb.java:[195,15] cannot find symbol
    symbol : class SleeSipProvider
    location: class org.tutorial.mobicentService.RootSbb

    I have the import
    net.java.slee.resource.sip.SleeSipProvider;

    Thanks
    Shanti

  31. whitelassiblog said

    Please share the following files:

    1. POM xml file of /sbb module
    2. POM xml file of /du module
    3. sbb-jar.xml
    4. service.xml

    Join the group here and post them on a thread — http://groups.google.com/group/mobicents-public

  32. shanti said

    Trying to upload files, have trouble with the groups -> add file.

    Will keep trying

  33. shanti said

    Hi

    Have not had any luck trying to post the files. Is there a better option for me.

    Thanks Shanti

  34. shanti said

    Hi
    Succeded in adding the files it is called buildFailed.zip.
    Thanks a lot for all your help.

    Shanti

  35. shanti said

    Hi

    I uploaded a zip file with all the pom files, but cannot seem to access the link. Wondering how to resolve this. Would like to get to the bottom of my build problem.
    THanks for all the help.

    SHanti

  36. Olalekan Samuel said

    Greate tutorial Ayush. Keep it up

  37. rashi said

    Hi,
    i am new to java slee application and also not aware of maven tool.

    I have installed mobicents-diameter-1.3.3.FINAL and tried to create helloWorld by doing the steps mentioned above.Have doubt on step ” 3. Download and install Mobicents Maven plugins. ”

    Can u tell me how can i install Maven plugins using the mentioned links?

    Rashi

  38. rashi said

    Sorry,

    Have mentioned Jain Slee server version incorrectly

    It is mobicents-jainslee-2.3.0.FINAL-jboss-5.1.0.GA

    Thanks in advance

  39. slieer said

    mobicents-jainslee-2.4.1 ,
    mobicents – http://mobicents.googlecode.com/svn/downloads/eclipse-update-site/ 2.0beta4

    many class not find 。such as RequestEvent .

  40. Vimmi Arora said

    Hello Whitelassiblog,

    I am trying to deploy a JSLEE service on mobicents platform. However it only installs the root SBB successfully and not the service.
    I have created service.xml and in the DU.jar service.xml is present. Please let me know what step am i missing?

    -Vimmi

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: