Java版的源碼太少了,自己學(xué)習(xí)了兩個(gè)月,才學(xué)會(huì)了一小部分,現(xiàn)在自己這兩個(gè)月學(xué)習(xí)做出來(lái) 的一些東西和大家一起分分享,主要功能有:點(diǎn)選查詢(xún),圓選查詢(xún),多邊形查詢(xún),矩形查詢(xún),模糊查詢(xún),周邊查詢(xún),元素定位,元素信息查看,鷹眼視圖,打印,保存為位圖。
ArcGIS Engine9.2
作者email:ahanflw@gmail.com
如有問(wèn)題可以加QQ群:36144791
源碼下載地址:http://www.hfbook.net/eBooks/47.aspx
服務(wù)器端代碼:
HelloWorld.java:
1
import javax.ejb.Remote;
2
3
@Remote
4
public interface HelloWorld
{
5
public String sayHello(String s);
6
}
7
HelloWorldBean.java
1
import javax.ejb.Stateless;
2
3
import org.jboss.annotation.ejb.Clustered;
4
5
import cn.HelloWorld;
6
7
@Stateless
8
@Clustered
9
public class HelloWorldBean implements HelloWorld
{
10
11
public String sayHello(String s)
{
12
System.out.println(s);
13
return s;
14
}
15
16
}
上面第8行的@Clustered是必須的,因?yàn)槲覀冃枰褂肧tateless Bean的集群功能。
分別在IP地址為:192.168.1.88和192.168.1.99機(jī)器上面安裝JBOSS4.0.5GA,JBOSS4.0.5可以去下載文件名為jboss-installer-1.2.0.GA.jar的安裝,安裝的時(shí)候選擇ejb3-clustered,再下面有一步時(shí)選擇Advance,再在Name輸入框輸入all,其它默認(rèn)就可以了。
兩臺(tái)機(jī)器上面都安裝好之后,分別在兩臺(tái)機(jī)器上面啟動(dòng)jboss,啟動(dòng)的時(shí)候需要加參數(shù):如IP為192.168.1.88的機(jī)器啟動(dòng)JBOSS,則為:run -c all -b 192.168.1.88
當(dāng)兩臺(tái)機(jī)器的JBOSS都正常啟動(dòng)后,將上面的Stateless Bean打包成jar包,發(fā)布到其中一臺(tái)%JBOSS_HOME%\server\all\farm目錄下面,這樣集群中的其它結(jié)點(diǎn)將自動(dòng)發(fā)布這個(gè)jar包。
當(dāng)發(fā)布完成之后,我們編寫(xiě)客戶(hù)端:
Client.java
1
import java.util.Properties;
2
3
import javax.naming.InitialContext;
4
import javax.naming.NamingException;
5
6
public class Client
{
7
8
public static void main(String[] args)
{
9
Properties prop = new Properties();
10
prop.setProperty("java.naming.factory.initial",
11
"org.jnp.interfaces.NamingContextFactory");
12
prop.setProperty("java.naming.factory.url.pkgs",
13
"org.jboss.naming:org.jnp.interfaces");
14
prop.setProperty("java.naming.provider.url",
15
"192.168.1.88:1099,192.168.1.99:1099");
16
17
try
{
18
InitialContext ict = new InitialContext(prop);
19
HelloWorld helloWorld = (HelloWorld) ict
20
.lookup("HelloWorldBean/remote");
21
for (int i = 0; i < 10; i++)
{
22
helloWorld.sayHello("HelloWorld");
23
}
24
} catch (NamingException e)
{
25
e.printStackTrace();
26
}
27
}
28
}
29
上面這個(gè)客戶(hù)端配置了JBOSS服務(wù)器IP地址及端口,調(diào)用遠(yuǎn)程接口的HelloWorldBean,并連續(xù)調(diào)用10次sayHello方法。在JBOSS控制臺(tái)上面可以看到打印出HelloWorld。
程序運(yùn)行結(jié)果發(fā)現(xiàn):在192.168.1.88 的JBOSS控制臺(tái)上面打印出4個(gè)HelloWorld,另一個(gè)JBOSS控制臺(tái)上面則打印出6個(gè)HelloWorld。加起來(lái)正好10個(gè)HelloWorld,可以發(fā)現(xiàn)兩臺(tái)JBOSS已經(jīng)實(shí)現(xiàn)了負(fù)載均衡。
集群中的任何一個(gè)結(jié)點(diǎn)掛掉之后,程序都可以正常運(yùn)行,