i used this jshooter code and i distribute my application with it.
i enjoyed this because i don’t need to transfer additional interfaces between the client and the server
but how this is possible, and i want to see why no need to use additional interfaces like RMI and JMS
file name: maplet.tld
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>maplet</shortname>
<tag>
<name>Service</name>
<tagclass>org.j2os.shine.maplet.tag.Service</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
</attribute>
</tag>
<tag>
<name>SecureService</name>
<tagclass>org.j2os.shine.maplet.tag.SecureService</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
</attribute>
</tag>
<tag>
<name>ErrorService</name>
<tagclass>org.j2os.shine.maplet.tag.ErrorService</tagclass>
<bodycontent>JSP</bodycontent>
</tag>
</taglib>
==================================
server side code
file name : Server.java
package ServerSide;
public class Server
{
//the definition of method lay here
public void PrintName(String Name)
{
System.out.print("Dear user Your name is "+Name);
System.out.print("<br>");
}
public int Plus(int val1,int val2)
{
int res = val1 + val2 ;
System.out.print(val1+" + "+val2+" is equal "+res+"");
System.out.print("<br>");
return res;
}
private void private_Method()
{
System.out.print("Peivate Method is invoked");
System.out.print("<br>");
}
}
==================================
Client side code
file name : Client.java
package ClientSide;
import ServerSide.Server;
import org.j2sos.shine.jshooter.*;
import java.util.ArrayList;
public class Client
{
//call the method from server side
//1- get method type
//2- invoke a method
//3- newInstat
//4- get fild type
public static void main(String arg[])throws Exception
{
ServerApplication Client_Obj = new Application().receive("Rokhsana","CommunityName");
Client_Obj.newInstance("ServerSide.Server");
ArrayList method_array = Client_Obj.getMethodsNames();
int i = 0;
while(method_array.size()!=i)
{
System.out.println(method_array.get(i));
i ++;
}
}
}
==================================
engine code on the server
file name : Core.java
package Engin;
import org.j2sos.shine.jshooter.Application;
public class Core
{
//distribute server class for client
public static void main(String arg[])throws Exception
{
Application distrubuted_Obj = new Application();
distrubuted_Obj.distribute(1099,"CommunityName");
System.out.print("~~~~~~~~~~Core isrunning~~~~~~~~~~~~~~");
}
}
==================================
jshooter sample.rar