日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EJB通过ANT提高EJB应用程序的开发效率、无状态发展本地接口bean、开发状态bean...

發布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EJB通过ANT提高EJB应用程序的开发效率、无状态发展本地接口bean、开发状态bean... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該jboss集成到eclipse

關掉Jboss控制臺新聞Ctrl+c,在MyEclipse→Servers→Jboss可配置JBoss。


通過ANT提高EJB應用的開發效率

在HelloWorld 增加ANT,右擊項目新建xml:build.xml,右擊打開方式選擇Ant ..

相應用進行編譯、打包、公布、解公布

?

<?

xml version="1.0" encoding="UTF-8"?

> <!--basedirz項目所在路徑,.代表在build.xml的所在路徑--> <project name="HelloWorld" basedir="."> <property name="src.dir" value="${basedir}\src"></property> <!--指的是系統變量--> <property environment="env"></property> <property name="jboss.home" value="${env.JBOSS_HOME}"></property> <!--用于指定眼下JBoss使用的配置項--> <property name="jboss.server.config" value="default"></property> <!--用于編譯源文件class類存放的文件夾--> <property name="build.dir" value="${basedir}\build"></property> <!--ejb依賴的jar文件--> <path id="build.classpath"> <fileset dir="${jboss.home}\client"> <include name="*.jar"/> </fileset> <pathelement location="${build.dir}"/> </path> <target name="prepare"> <delete dir="${build.dir}"></delete> <mkdir dir="${build.dir}"></mkdir> </target> <target name="compile" depends="prepare" description="編譯"> <!--對源文件進行編譯。destdir編譯后class存放文件夾--> <javac srcdir="${src.dir}" destdir="${build.dir}"> <!--編譯依賴的jar文件--> <classpath refid="build.classpath"></classpath> </javac> </target> <target name="EJBjar" depends="compile" description="創建EJB公布包"> <!--${ant.project.name}就是上面的name HelloWorld--> <jar jarfile="${basedir}\${ant.project.name}.jar"> <fileset dir="${build.dir}" > <include name="**/*.class"/> </fileset> </jar> </target> <target name="deploy" depends="EJBjar" description="公布EJB"> <copy file="${basedir}\${ant.project.name}.jar" todir="${jboss.home}\server\${jboss.server.config}\deploy"></copy> </target> <target name="undeploy" description="卸載ejb"> <delete file="${jboss.home}\server\${jboss.server.config}\deploy\${ant.project.name}.jar"></delete> </target> </project>

?

公布:在servers視圖啟動Jboss。然后在build.xml的大綱視圖右擊deploy→run as → Ant ..

(發現編碼問題我項目是GBK,把項目改成UTF-8就可以);

?

卸載EJB,要先停止Jboss在運行undeploy就可以;

開發具有本地接口的無狀態bean

???????? 之前我們介紹過遠程接口。通過一個遠程接口調用EJB的過程。首先client須要與EJB建立socket通信。在通信管道上它們須要來回發送IIOP協議信息,由于數據要在網絡進行傳輸,存放數據的Java對象必須要進行序列化。在這個過程。有網絡通信的開銷、協議解析的開銷、對象序列化的開銷等。由于EJB是分布式技術。它同意client與EJB應用在不同機器上。所以這些性能開銷也是必定的。

???????? 可是在實際開發中,client與EJB應用執行在同一個JBoss中。

這時候client訪問EJB是否有必要走上面的網絡通信呢?據我們所知,這時候client與EJB是在同一個JVM內,他們之間全然能夠通過內存進行交互,這樣就能夠避免網絡通信的性能開銷。既然我們都想到了這一點,EJB專家組也想到了這一點,所以引入了本地接口。通過本地接口調用EJB,直接在內存中交互。這樣就能避免因網絡通信所造成的各種性能開銷。可是有一點。大家必須注意,僅僅有client與EJB應用在同一個JVM內執行的時候,我們才干調用本地接口,否則僅僅能調用遠程接口。

僅僅要client與EJB公布在同一個JBoss內。我們就覺得他們是在同一個JVM。

????????

?

client和EJB部署到同機器上面

將HelloWorldBean指定為本地接口(@Remote改動為@Local):

@Stateless

@Local(HelloWorld.class)

public classHelloWorldBean implementsHelloWorld {

?

本地接口的無狀態bean已經被開發出來了。

通過Ant的deploy部署到EJB中。

?

新建一個web Project 做為EJB的client。而且部署到Jboss中,這樣client和EJB就在同一個jvm中了。

新建Web Projcet:EJBClient,部署到Jboss。

在用jsp調用EJB。新建test.jsp,將編碼格式換成utf-8,這樣就能夠通過本地接口訪問EJB了(把HelloWorld項目引用進來:右擊項目Build Path→Conf…→Projects→add):

?

<%@ pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

<%@ pageimport="javax.naming.*,cn.hqu.ejb3.*"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

?

<!DOCTYPEHTMLPUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">

<html>

? <head>

??? <basehref="<%=basePath%>">

???

??? <title>My JSP'test.jsp' starting page</title>

???

??? <metahttp-equiv="pragma"content="no-cache">

??? <metahttp-equiv="cache-control"content="no-cache">

??? <metahttp-equiv="expires"content="0">???

??? <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">

??? <metahttp-equiv="description"content="This is my page">

??? <!--

??? <linkrel="stylesheet" type="text/css"href="styles.css">

??? -->

?

? </head>

?

? <body>

????? <%

?????? try {

?????????? InitialContextctx = new InitialContext();

?????????? HelloWorldhelloworld = (HelloWorld) ctx

????????????????? .lookup("HelloWorldBean/local");

?????????? out.println(helloworld.sayHello("本地的蘇志達"));

?????? }catch (NamingException e) {

?????????? e.printStackTrace();

?????? }

??? %>

? </body>

</html>

?

client應用開發完了。導出war文件,將war文件復制到Jboss的公布文件夾下,看控制臺發現應用公布成功了(能夠通過MyEclipse部署項目到Jboss,啟動Jboss就可以公布)

http://localhost:8080/EJBClient/test.jsp

?

通過本地接口調用EJB成功了。web應用和EJB部署到同一個Jboss中的。在同一個jvm中。能夠進行訪問。

?

client和EJB部署到不同機器上面。

新建一個本地接口,在HelloWorld項目新建HelloWorldLocal接口。繼承遠程接口HelloWorld。

HelloWorldBean實現HelloWorldLocal和HelloWorld接口。

?

@Stateless

@Remote(HelloWorld.class)

@Local(HelloWorldLocal.class)

public class HelloWorldBean implements HelloWorld,HelloWorldLocal {

??? @Override

??? public StringsayHello(String name) {

??????? return name+"說:你好!

";

??? }

}

?

部署同一個機器上的時候優先調用本地,不同機器上我們僅僅能通過遠程接口訪問。

本地調用:部署啟動JBoss執行http://localhost:8080/EJBClient/test.jsp

遠程調用:

將HelloWorld的EJBClient類改為遠程接口:

HelloWorldhelloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");

部署公布:執行Ant deploy,啟動Jboss執行main方法。

在client通過遠程接口調用EJB,如今他們是在不同JVM內的,僅僅能通過遠程接口訪問,執行EJBCLient的mian方法。成功訪問到。

?

在實際應用中我們最好把本地接口和遠程借口都實現出來。主要是能夠解決能夠公布在同一個Jboss或者不同Jboss都能夠使用。

開發有狀態bean

僅僅須要改動@Stateless為@Stateful就能夠標注為有狀態bean

@Stateful

@Remote(HelloWorld.class)

@Local(HelloWorldLocal.class)

public class HelloWorldBean implementsHelloWorld,HelloWorldLocal {

??? @Override

??? public StringsayHello(String name) {

??????? return name+"說:你好。";

??? }

}

?

Ant deploy部署

?

有狀態和無狀態在代碼上需然區別不大。可是採用對bean的管理的技術的不一樣的.

Bean實例的兩種管理技術

1.無狀態bean使用實例池技術管理bean

2.有狀態bean使用激活(activation)管理bean

???????? 每一個用戶都有自己的Bean實例,相當于有多少個用戶就有多少個Bean實例為之服務。假設不採取不論什么機制,這樣必定會導致server資源嚴重消耗,最后落個down機罷工。

為了解決問題。EJB引入了激活機系統。該機構的原理來實現,這是,在EJBserver如果有必要,節約資源。從內存中恢復bean示例。將舉行它的會話狀態序列化到磁盤,他們占用內存釋放。如果此時client正確EJB再次發起請求,EJB再次實例化一個容器Bean示例,并從硬盤的狀態恢復在先前。

碼:http://pan.baidu.com/s/1gdGIi8V

轉載于:https://www.cnblogs.com/yxwkf/p/5042703.html

總結

以上是生活随笔為你收集整理的EJB通过ANT提高EJB应用程序的开发效率、无状态发展本地接口bean、开发状态bean...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国偷自产av一区二区三区 | 亚洲久久色 | 国产精品视频123 | 免费观看成人av | 欧美成人午夜精品免费 | www射| 日日爱av| 精品xxxxx | 亚洲av电影天堂男人的天堂 | 污视频在线观看免费 | 亚洲a一区二区 | 国产成人在线观看免费 | 亚洲欧美变态另类丝袜第一区 | 国产睡熟迷奷系列精品视频 | 少妇一级视频 | 在线视频观看一区 | 欧美日韩一区在线播放 | 丰满人妻一区二区三区53视频 | 加勒比日韩 | 风韵丰满熟妇啪啪区老熟熟女 | 欧美日韩综合一区二区三区 | 极品少妇av | 一级黄色性片 | 国产精品天干天干 | 欧美一区二区在线观看 | 久久精品www| 2025韩国大尺度电影 | 亚洲天堂8 | 国产成人亚洲欧洲在线 | 91蝌蚪视频在线观看 | ass日本粉嫩pics珍品 | 在线免费精品 | 九九看片 | 99热99热 | 黄色生活毛片 | 精品久久一| yy4138理论片动漫理论片 | 夜夜久久久 | 激情欧美一区 | 国产精品视频h | 欧美激情网站 | 91桃色免费视频 | 久久美利坚 | 精品国产一区二区三区无码 | 亚洲色成人一区二区三区小说 | 麻豆乱码国产一区二区三区 | 美女靠逼视频网站 | 欧洲女同同性吃奶 | 草草草在线视频 | 亚洲免费观看高清在线观看 | 1024国产视频 | 波多野结衣一区二区三区高清 | 欧美精品免费看 | 理论片在线观看理伦片 | 2019中文字幕在线视频 | 日本一区二区三区欧美 | 久久久久久97 | 国产视频在线观看网站 | 激情瑟瑟| 久久天天躁狠狠躁夜夜躁 | 国产精品久久国产 | 日韩黄色片免费看 | 免费看av在线 | 欧洲亚洲女同hd | 日本亚洲一区 | 亚洲精品久久久蜜桃 | 亚洲午夜影视 | 日韩在线视频一区二区三区 | 国产女主播在线一区二区 | 久久尤物| 国产成人无码精品久久久电影 | 国产婷婷色一区二区 | 青青青草视频在线 | 国产精品视频一区二区三区, | 一级女性全黄久久生活片免费 | 色屁屁一区二区三区 | 国产盗摄一区二区 | 艳母日本动漫在线观看 | 日产精品久久久久 | 亚洲播播| 国产毛毛片 | 丁香六月在线 | 亚洲男人天堂影院 | 黄色在线观看视频网站 | 亚洲精品久久久久久 | 日韩天堂在线观看 | 黄色草逼视频 | 色五夜 | 黑人大群体交免费视频 | 免费一级特黄毛大片 | 欧洲久久久久 | 五月婷婷深爱 | 波多野结衣在线 | 91精品国产高清一区二区三区蜜臀 | 91国在线视频 | 欧美日韩日本国产 | 欧美freesex黑人又粗又大 | 久久综合成人网 | 国产精品suv一区二区69 |