成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何通過(guò)遠(yuǎn)程客戶端跨JVM遠(yuǎn)程訪問(wèn)EJB

開(kāi)發(fā) 后端
文章先對(duì)本地客戶端,遠(yuǎn)程客戶端和web服務(wù)客戶端進(jìn)行簡(jiǎn)單比較,然后通過(guò)實(shí)例討論了EJB的遠(yuǎn)程客戶端及客戶端與Bean在不同的JVM中的調(diào)用方式。

對(duì)于EJB主要指(SessionBean)大體上有三種客戶端,即本地客戶端,遠(yuǎn)程客戶端和web服務(wù)客戶端。

 所謂本地客戶端,就是其必須與所要訪問(wèn)的的Bean在同一個(gè)JVM中,對(duì)于遠(yuǎn)程客戶端無(wú)此限制,可以在同一個(gè)JVM中,也可以不在同一個(gè)JVM中。Web服務(wù)客戶端也可以以兩種方式來(lái)訪問(wèn)Bean,但僅限于無(wú)狀態(tài)會(huì)話Bean,消息驅(qū)動(dòng)Bean則不可以。而對(duì)于客戶端的形式,則無(wú)要求,可以是web客戶端,普通java應(yīng)用客戶端或其他的Bean。

 本次討論的是EJB的遠(yuǎn)程客戶端,且客戶端與Bean在不同的JVM中的調(diào)用方式。環(huán)境為兩個(gè)xp,MyEclipse6.0,JBoss5。還是簡(jiǎn)單的Hello World的例子。不是Hello fancy !呼呼 !

 

 1.首先寫(xiě)遠(yuǎn)程接口如下:

package test;

import javax.ejb.Remote;

@Remote
public interface HelloWorldRemote {

 public String sayHello(String name);
}

2.寫(xiě)B(tài)ean類(lèi)實(shí)現(xiàn)遠(yuǎn)程接口:

package test;

import javax.ejb.Stateless;


@Stateless
public class HelloWorld implements HelloWorldRemote{

 public String sayHello(String name){
 
  return "Hello ,"+name;
 }
}

3.利用MyEclipse打包,將遠(yuǎn)程接口和Bean類(lèi)打成helloworld.jar

 

4.部署EJB,即將helloworld.jar直接copy到D:\jboss5\server\default\deploy下。

 

5.寫(xiě)客戶端代碼如下:

package client;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import test.HelloWorldRemote;

 /**
 *
 * javac -d . *.java                              ---編譯命令
 *
 * java -Djava.ext.dirs=D:\clientLib TestHello    ---運(yùn)行命令,

-Djava.ext.dirs=D:\clientLib指定了外部jar包目錄
 *
 *
 * @author rainsunneau
 *
 */

public class TestHello {

 public static void main(String[] args){

  ClassLoader loader = TestHello.class.getClassLoader();
  InputStream in = loader.getResourceAsStream("context-config.properties");
  Properties props = new Properties();
  try {
   props.load(in);
   try {
    InitialContext ctx = new InitialContext(props);
    HelloWorldRemote hello = (HelloWorldRemote)ctx.lookup("HelloWorld/remote");  
    System.out.println(hello.sayHello("fancy!"));
   } catch (NamingException e) {
    e.printStackTrace();
   }
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

 6.創(chuàng)建JNDI配置文件context-config.properties如下:

 java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=192.168.1.108:1099
java.naming.factory.pakgs=org.jboss.naming:org.jnp.interfaces

7.在IDE中直接運(yùn)行客戶端測(cè)試程序,輸出如下:

Hello ,fancy!

8.將客戶端程序連同配置文件一同打包,并連同所需jar包,放到另外一臺(tái)xp上測(cè)試。

 java -Djava.ext.dirs=D:\clientlib client.TestHello

 結(jié)果拋如下異常:

javax.naming.CommunicationException [java.rmi.ConnectException: Connection refused to host。。。

根據(jù)前輩的帖子指點(diǎn):

 客戶端程序向服務(wù)端請(qǐng)求一個(gè)對(duì)象的時(shí)候,返回的stub對(duì)象里面包含了服務(wù)器的hostname,客戶端的后續(xù)操作根據(jù)這個(gè)

 hostname來(lái)連接服務(wù)器端。

 解決方式如下:

(1).修改hostname.

        vi /etc/hosts

         將 127.0.0.1 改為真實(shí)地址,如:192.168.100.72。

這樣客戶端就能得到真實(shí)的ip了。

 

 

(2)在啟動(dòng)jboss時(shí)顯示指定hostname.

       如:nohup ./run.sh --host="192.168.100.72" &

 我用了(2),因?yàn)槲业氖莤p嗎。第一種方式對(duì)應(yīng)到windows/system32/drivers/etc/hosts文件,怎么修改都不好用。

 第二種方式可行:?jiǎn)?dòng)JBoss命令如下:

run -b192.168.1.108 或 run --host=192.168.1.108。

結(jié)果在另一臺(tái)xp上看到:

Hello ,fancy!

至此終于實(shí)現(xiàn)了跨JVM遠(yuǎn)程訪問(wèn)EJB。

【編輯推薦】

  1. Java虛擬機(jī)(JVM)中的內(nèi)存設(shè)置詳解
  2. JVM的垃圾回收機(jī)制詳解和調(diào)優(yōu)
  3. 基于JVM的語(yǔ)言正在開(kāi)始流行
  4. Java技術(shù):嵌入式LINUX中的JVM研究
  5. 使用JRuby生成JVM代碼
責(zé)任編輯:仲衡 來(lái)源: CSDN博客
相關(guān)推薦

2022-11-28 14:15:03

2010-03-16 15:50:59

Java遠(yuǎn)程控制

2012-03-08 09:37:21

遠(yuǎn)程數(shù)據(jù)中心分布式環(huán)境遠(yuǎn)程管理

2020-07-31 10:17:17

物聯(lián)網(wǎng)傳感器技術(shù)

2012-04-26 10:48:48

遠(yuǎn)程控制分布式環(huán)境

2009-09-24 13:16:31

虛擬桌面安全軟件客戶端安全

2023-03-05 18:36:52

ChatGpt跨平臺(tái)ORM

2013-11-27 10:21:44

遠(yuǎn)程控制軟件

2017-02-08 08:56:22

2022-09-16 14:46:54

人工智能遠(yuǎn)程醫(yī)療

2011-01-18 18:09:21

GmailThunderbird

2012-09-06 09:34:19

微軟Win 8遠(yuǎn)程桌面

2011-04-19 17:10:12

UbuntuServer遠(yuǎn)程連接

2009-11-07 14:57:00

2010-10-11 17:46:01

mysql客戶端

2009-02-04 17:39:14

ibmdwWebSphereDataPower

2009-09-02 15:08:47

2010-11-02 17:01:09

DB2客戶端遠(yuǎn)程連接

2016-12-12 14:55:20

向日葵遠(yuǎn)程控制

2011-08-04 09:56:04

TMG ISA新浪微博
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: jdav视频在线观看免费 | 久久中文免费视频 | 亚洲永久免费观看 | 免费在线一区二区三区 | 国产欧美视频一区二区三区 | 欧美日韩a | 国产精品欧美一区二区三区不卡 | 欧美日韩亚洲一区 | 一道本不卡视频 | 我想看国产一级毛片 | 午夜视频在线观看视频 | 综合五月婷 | 午夜激情视频在线 | 日本又色又爽又黄又高潮 | 成人一区二区三区在线 | 久久久99国产精品免费 | 日韩精品一区二区三区中文在线 | 国产目拍亚洲精品99久久精品 | 亚洲a网 | 91精品国产综合久久久久久蜜臀 | 亚洲激情第一页 | 亚洲成人一区 | 欧美日韩久 | 91在线视频免费观看 | 久久久一二三 | 国产激情片在线观看 | 欧美男人天堂 | 天天干天天操天天射 | 亚洲91av | 日韩一区二区在线视频 | 国产精品一区二区在线 | 免费黄视频网站 | 欧美日韩在线视频观看 | 一区在线播放 | 激情小视频 | 中文字幕一区二区三区四区 | 国产精品久久久久9999鸭 | 久干网 | 99久久免费精品 | 中文字幕一区在线观看视频 | 中文字幕在线观 |