① EJB無狀態的bean(建立EJB的基礎教程)
① EJB無狀態的bean
1.定義
無狀態會話bean是一種企業bean,它通常用來做獨立操作。無狀態會話Bean根據其名字沒有任何關聯的客戶端的狀態,但它可能會保留其例項的狀態。就相當於我們spring中的單例物件,能夠儲存資訊,服務於多個請求連線。
2.建立過程
2.1 建立服務端程式(EJBServer)
選擇Java Enterprise,同時勾選(EJB),注意選擇的jdk一定要是1.7.選擇jboss伺服器進行開發。
建立完成後,會自動在lib下面下載javax.ejb-api.jar,我們新建Hello World介面和HelloWorldBean實現類。
HelloWorldBean:
public interface HelloWorld {
String sayHello(String name);
}
HelloWorldBean:
@Stateless(name = "HelloWorldBean")
@Remote
public class HelloWorldBean implements HelloWorld {
@Override
public String sayHello(String name) {
System.out.println("吳濤濤最可愛!!!");
return "hello"+name;
}
}
Stateless:表示該bean為無狀態的bean。後面的name就是暴露出去的名稱。(預設為我們的方法名稱)
配置Jboss伺服器(注意是選擇war包的方式進行打包,若是失敗或者其他原因,可重新編譯或者重啟伺服器):
啟動伺服器成功(下圖所示是我們的訪問字串):
訪問字串(JNDI的命名規則):
"ejb:" + appName + "/" + moduleName + "/" + beanName + "!" + viewClassName;
部署檔案的名字
final String appName = ""; (as:EJBServerStateFul_war_exploded)
訪問模組的名字
final String moduleName = ""; (as:LibraryStatefulSessionBean)
介面類的全名
final String viewClassName = ""; (as:pers.jhl.session.stateless.LibraryStatefulSessionBeanRemote)
狀態值(適用於有狀態的情況,無狀態可不選)
stateful = "xxx"
完整示例(有狀態的情況之下)
ejb:/EJBServerStateFul_war_exploded/LibraryStatefulSessionBean!pers.jhl.session.stateless.LibraryStatefulSessionBeanRemote?stateful=TMingYi
2.2 建立客戶端程式(EJBClient)
建立普通的java程式。把jbossxxx/bin/client中的jboss-client.jar加入該客戶端的依賴之中。
在src目錄下建立 jboss-ejb-client.properties 配置檔案。
jboss-ejb-client.properties:
endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port=4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=TMingYi
remote.connection.default.password=root
目錄架構圖如圖所示。(HelloWorld介面就是server端的介面,在maven中我們可以直接依賴,在這裡的官方的做法是吧介面檔案打成jar然後放入client進行依賴,但是這裡沒得必要,我們只要在同一包目錄下,建立這樣一個Hello World介面,效果和打成jar的效果一樣)。
編寫主程式(HelloWorldClient):
import pers.jhl.session.stateless.HelloWorld;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Properties;
public class HelloWorldClient {
public static void main(String[] args) {
try{
Properties pro = new Properties();
pro.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming");
pro.put("jboss.naming.client.ejb.context",true);
Context context = new InitialContext(pro);
HelloWorld h = (HelloWorld) context.lookup("ejb:/EJBServer_war_exploded/HelloWorldBean!pers.jhl.session.stateless.HelloWorld");
System.out.println( h.sayHello("Medlen"));
}catch(NamingException e){
e.printStackTrace();
}
}
}
在伺服器執行的情況下,在執行此程式,即可看到列印:
相關文章
- 無狀態會話ejb object的個人理解會話Object
- 在得到ejb遠端物件時,能否傳引數給無狀態session bean?物件SessionBean
- Java Bean 與 EJB的區別JavaBean
- Spring Bean Scope 有狀態的Bean和無狀態的BeanSpringBean
- 27、EJB與JAVA BEAN的區別?JavaBean
- java bean 與 ejb的區別 (轉)JavaBean
- EJB基礎筆記(一)筆記
- EJB基礎筆記(二)筆記
- 有關EJB的有態SessionBean和無態SessionBean的疑惑SessionBean
- EJB系列教程 (轉)
- 什麼樣的類需要作成EJB(會話Bean)?會話Bean
- 無狀態會話bean的疑問會話Bean
- 求助!如何追蹤除錯釋出後的EJB的程式執行狀態?除錯
- EJB3.0例項教程
- 關於有狀態和無狀態會話bean的解釋 (轉)會話Bean
- more effective entity bean(新的改進entity bean的效能的七條(EJB2.0版)) (轉)Bean
- EJB例項教程筆記(一)筆記
- 在Jboss中建立的EJB,JSP呼叫如何寫JS
- EJB學習(一)——EJB和WEB打包Web
- EJB客戶端如何不用任何client jar去動態呼叫遠端伺服器的EJB?客戶端clientJAR伺服器
- 最佳化EJB實體Bean CMP和資料庫Bean資料庫
- EJB1.1與EJB2.0的主要區別都那些阿???
- 使用MyEclipse開發Java EE應用:用XDoclet建立EJB 2 Session Bean專案(三)EclipseJavaSessionBean
- 使用MyEclipse開發Java EE應用:用XDoclet建立EJB 2 Session Bean專案(四)EclipseJavaSessionBean
- 使用MyEclipse開發Java EE應用:用XDoclet建立EJB 2 Session Bean專案(五)EclipseJavaSessionBean
- ejb 和 javabean的比較JavaBean
- 什麼時候用有狀態session bean,什麼時候用無狀態session bean (轉)SessionBean
- 請教一個關於EJB建立物件時的問題物件
- ejb 的session bean 和儲存在servlet session中的一個java物件有何不同?SessionBeanServletJava物件
- 【原創】eclipse + JBoss 5 + EJB3開發指南(2):編寫有狀態的SessionBeanEclipseSessionBean
- jbuilder9中建立EJB MODULE時問題UI
- jbuilder8中建立EJB MODULE時問題UI
- EJB技術規範中明確提到,在使用會話BEAN的時候……會話Bean
- bea網站下的weblogic佈署ejb1.0都沒有問題,但佈署ejb2.0 entity bean總是不成功網站WebBean
- EJB3與EJB2架構對比架構
- 有沒有用EJB(CMP)實現動態查詢的方法?
- Gavin King真正走上EJB路線,推出基於JSF/EJB3的快速開發框架JBoss SeamJS框架
- ejb中配置檔案的打包