web應用跨容器呼叫EJB的異常問題
有兩個容器,一個是jboss,一個是websphere,
websphere裡放一個web應用,jboss裡放一個EJB,
web呼叫ejb,並試圖使用websphere的JTA事務,管理jboss那邊EJB的事務,
呼叫的ejb的事務型別 <transaction-type>Container </transaction-type>, <trans-attribute>Mandatory </trans-attribute>
報錯說:Transaction Required Exception
即表示呼叫EJB時,沒有啟用JTA事務,這是什麼原因呢???
請幫忙解答,謝謝了!
web側的部分程式碼如下:
//繫結websphere的Usertransaction
Properties h = new Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
h.put(Context.PROVIDER_URL, "iiop://10.80.12.124:2809/");
InitialContext ctx = new InitialContext(h);
tx = (UserTransaction) ctx.lookup("jta/usertransaction");
//啟用JTA事務
tx.begin();
//繫結jboss側的EJB
Properties env = new Properties();
env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
env.setProperty(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
env.setProperty(Context.PROVIDER_URL, "jnp://10.80.12.124:1099");
Context enc = new InitialContext(env);
// 得到本地介面
UserServiceHome home = (UserServiceHome) enc
.lookup("ejb/UserService");
// 得到遠端物件
UserService userService = home.create();
String value = String.valueOf(System.currentTimeMillis());
// 呼叫遠端物件的方法
String msg = userService.listAllUsers(value);
// 提交JTA事務
tx.commit();
ctx.close();
enc.close();
websphere裡放一個web應用,jboss裡放一個EJB,
web呼叫ejb,並試圖使用websphere的JTA事務,管理jboss那邊EJB的事務,
呼叫的ejb的事務型別 <transaction-type>Container </transaction-type>, <trans-attribute>Mandatory </trans-attribute>
報錯說:Transaction Required Exception
即表示呼叫EJB時,沒有啟用JTA事務,這是什麼原因呢???
請幫忙解答,謝謝了!
web側的部分程式碼如下:
//繫結websphere的Usertransaction
Properties h = new Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
h.put(Context.PROVIDER_URL, "iiop://10.80.12.124:2809/");
InitialContext ctx = new InitialContext(h);
tx = (UserTransaction) ctx.lookup("jta/usertransaction");
//啟用JTA事務
tx.begin();
//繫結jboss側的EJB
Properties env = new Properties();
env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
env.setProperty(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces");
env.setProperty(Context.PROVIDER_URL, "jnp://10.80.12.124:1099");
Context enc = new InitialContext(env);
// 得到本地介面
UserServiceHome home = (UserServiceHome) enc
.lookup("ejb/UserService");
// 得到遠端物件
UserService userService = home.create();
String value = String.valueOf(System.currentTimeMillis());
// 呼叫遠端物件的方法
String msg = userService.listAllUsers(value);
// 提交JTA事務
tx.commit();
ctx.close();
enc.close();
相關文章
- flash中呼叫XML遇到的中文顯示異常問題XML
- 異常和異常呼叫鏈
- 使用@FeignClient中的fallback屬性處理介面呼叫異常問題client
- Angular應用解決跨域訪問的問題Angular跨域
- WEB應用訪問緩慢的問題定位Web
- 微服務異常問題微服務
- 異常問題排查之旅
- K8S下應用異常卡頓問題的分析與學習K8S
- 快應用稽核常見問題
- SpringCloud SpringBoot mybatis分散式Web應用的統一異常處理GCCloudSpring BootMyBatis分散式Web
- SpringMVC(2)- 非同步呼叫、非同步請求-跨域訪問、攔截器、異常處理、實用技術SpringMVC非同步跨域
- Python異常 ValueError的問題詳解PythonError
- .net異常處理的效能問題
- 10.Java異常問題Java
- web開發的跨域問題詳解Web跨域
- web 跨域請求安全問題Web跨域
- Flutter2 for Web 跨域問題FlutterWeb跨域
- python應用:異常處理Python
- VUE 呼叫 flask 介面,解決跨域問題VueFlask跨域
- QPainter呼叫setBrush異常退出AI
- web應用私網公網訪問題Web
- Flutter Web 跨域問題解決方案FlutterWeb跨域
- 解決常見介面跨域問題跨域
- 企業擴大容器和Kubernetes應用的5大問題
- 【docker-ce】k8s叢集docker容器異常重啟問題分析DockerK8S
- 一個SMMU記憶體訪問異常的問題記憶體
- web專案常問面試題Web面試題
- pb呼叫ole異常捕獲
- React Native babel編譯異常問題React NativeBabel編譯
- 前端常見問題——Canvas 圖片跨域前端Canvas跨域
- python同異級目錄下的函式呼叫問題Python函式
- 【問題記錄】— web頁面呼叫本地程式Web
- 第50問:從連線判斷應用訪問資料庫的異常行為資料庫
- Java應用異常狀態監測Java
- 訊息中介軟體應用的常見問題與方案
- SQL執行計劃異常引起的效能問題SQL
- SQL執行計劃異常 引起的效能問題SQL
- Android應用安全常見問題及解決方案Android
- web移動端常問面試題Web面試題