欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

ejb3 第6講--開發(fā)具有本地接口的無狀態(tài)bean

系統(tǒng) 1640 0

?

?

理解:

?

1.當(dāng)ejb的服務(wù)器端和客戶端不再一個(gè)jvm上的時(shí)候,也就是部署在不同的機(jī)器上的時(shí)候,我們必須使用遠(yuǎn)程接口調(diào)用ejb,這時(shí)候我們就需要使用iiop協(xié)議,socket完成ejb客戶端和ej服務(wù)器的通訊。

?

2.當(dāng)ejb的服務(wù)器和ejb的客戶端在同一個(gè)jvm的時(shí)候,也就是不數(shù)載相同的機(jī)器上的時(shí)候,我們可以使用ejb的本地接口來調(diào)用ejb,不需要走網(wǎng)絡(luò)通信,直接在jvm級(jí)別完成ejb的調(diào)用。

?

3.我們?cè)趯?shí)際的開發(fā)過程中,要根據(jù)情況選擇是通過本地接口調(diào)用ejb還是使用遠(yuǎn)程接口來調(diào)用ejb

?

?

實(shí)驗(yàn):

?

我們現(xiàn)在模擬一個(gè)ejb,它有遠(yuǎn)程接口,也有本地接口,使用兩個(gè)客戶端調(diào)用這個(gè)ejb,一個(gè)在eclipse中寫一個(gè)main方法,讓它充當(dāng)ejb的客戶端,則他和ejb是不在一個(gè)jvm里,我們使用遠(yuǎn)程接口調(diào)用ejb,在寫一個(gè)web工程,吧她部署在jboss中,她和ejb在一個(gè)jvm,或者容器中,我們使用 遠(yuǎn)程接口來調(diào)用ejb。

?

步驟:

?

?1.ejb遠(yuǎn)程接口

    package cn.com.xinli.ejb3;

public interface HelloWorld
{
	public String sayHello(String name);
}

  

?

2.ejb本地接口 只需要繼承遠(yuǎn)程接口即可

    package cn.com.xinli.ejb3;

public interface HelloWorldLocal extends HelloWorld
{
	
}

  

?

?3.實(shí)現(xiàn)

    package cn.com.xinli.ejb3.impl;

import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateful;

import cn.com.xinli.ejb3.HelloWorld;
import cn.com.xinli.ejb3.HelloWorldLocal;


/*表明這個(gè)ejb是無狀態(tài)的會(huì)話bean*/
@Stateful
/*聲明這個(gè)ejb的遠(yuǎn)程接口是HelloWorld,必須要寫這個(gè)注解,否則調(diào)用的時(shí)候會(huì)報(bào)錯(cuò)*/
/*聲明這個(gè)ejb的本地接口是HelloWorldLocal,必須要寫這個(gè)注解,否則調(diào)用的時(shí)候會(huì)報(bào)錯(cuò)*/
@Local(HelloWorldLocal.class)
@Remote(HelloWorld.class)
public class HelloWorldBean implements HelloWorld,HelloWorldLocal
{

	public String sayHello(String name)
	{
		return name+",你好,世界!我的ejb3的第一個(gè)例子!";
	}
	
}

  

?

4.不再一個(gè)jvm的客戶端

?

    package cn.com.xinli.ejb3.test;
import java.util.Hashtable;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;

import cn.com.xinli.ejb3.HelloWorld;
public class EjbClient
{
	public static void main(String[] args)
	{
		Hashtable evn = new Hashtable();
		evn.put(Context.PROVIDER_URL, "127.0.0.1:1099");
		evn.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
		
//		Properties properties=new Properties();
//		properties.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
//		properties.setProperty("java.naming.provider.url", "localhost:1099");
	
		try
		{
			InitialContext context=new InitialContext(evn);
			/**
			 * ejb3比ejb2有可地方比較好,就是在jndi查找的時(shí)候不用我們?cè)趯慹jb-jar.xml
			 * 只要我們按照jndi名字的查找規(guī)范就可以找到遠(yuǎn)程接口了
			 * 
			 */                                              
			HelloWorld helloword=(HelloWorld)context.lookup("HelloWorldBean/remote");
			System.out.println(helloword.sayHello("huxl"));
		} catch (Exception e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

  

?

5.和ejb在一個(gè)jvm的客戶端,主要是建立一個(gè)web項(xiàng)目,然后他引用 ejb那個(gè)項(xiàng)目。部署在jboss里,寫一個(gè)jsp頁面,里面用<%%>的形式寫一個(gè)客戶端,完成本地接口的調(diào)用

test.jsp

?

    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="javax.naming.InitialContext"%>
<%@page import="cn.com.xinli.ejb3.HelloWorldLocal"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert titlsse here</title>
</head>
<body>


<%



try
{
	
	//由于是本地調(diào)用,不需要在設(shè)置本地的屬性配置,它會(huì)從上下文中找jndi信息
	//這樣做也體現(xiàn)了跨平臺(tái),比如從jbss->websphere 屬性配置是不一樣的
	
	
	InitialContext context=new InitialContext();
	                                              
	HelloWorldLocal helloword=(HelloWorldLocal)context.lookup("HelloWorldBean/local");
	
	out.println(helloword.sayHello("huxl"));
	
} catch (Exception e)
{
	// TODO Auto-generated catch block
	e.printStackTrace();
}


%>
</body>
</html>
  

?

?

?6.打包ejb,然后通過main方法調(diào)用遠(yuǎn)程接口成功,使用test.jsp調(diào)用本地接口也成功!

?

?

?

?

?

ejb3 第6講--開發(fā)具有本地接口的無狀態(tài)bean


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 2021国产精品一区二区在线 | 亚洲成人综合视频 | 亚洲五月综合网色九月色 | 性做久久久久久 | 国产原创视频在线 | xvideos korean| 日韩欧美一区二区不卡 | 黄色片av | 91免费大全 | 国产三级一区二区三区 | 欧美一区二区三区久久 | 欧美特黄a级高清免费大片 精品日本三级在线观看视频 | www.色网站| 特黄aaaaaa久久片 | 偷拍自拍视频在线观看 | 欧美日韩色综合网站 | 久草在线视频免费看 | 成人性视频免费网站 | 爱人同志国语免费观看全集 | 在线观看h片| 日本高清天码一区在线播放 | 国产精品va在线观看无 | 极品美女aⅴ高清在线观看 一级片片 | 久久久青青草 | 精品一区二区三区免费站 | 成人在线视频免费观看 | 亚洲性生活免费视频 | 开心伊人 | 精品久久久久久免费影院 | 免费黄色av| 女人裸体让男人桶全过程 | 日韩三级网 | 日韩avav| 国产精品冒白浆免费视频 | 麻豆精品国产自产在线 | 四虎永久免费网站入口2020 | 欧美中文字幕一区二区 | 一区二区在线不卡 | 精品久久久影院 | 精品在线视频一区 | 激情五月综合婷婷 |