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();
相關文章
- 請問EJB容器如何處理異常
- EJB3的異常處理問題
- weblogic為ejb容器,呼叫ejb模組,出現名稱空間不正確問題Web
- 【常見Web應用安全問題】—7、CRLFinjectionWeb
- 【常見Web應用安全問題】—12、URLredirectionWeb
- C/S結構下呼叫EJB的問題
- 應用跨平臺問題?
- 【常見Web應用安全問題】—4、DirectorytraversalWeb
- 怎麼跨App 遠端呼叫EJBAPP
- 急問:關於Web容器叢集和EJB叢集Web
- Angular應用解決跨域訪問的問題Angular跨域
- 請教:EJB3的SessionBean主動呼叫問題SessionBean
- 使用@FeignClient中的fallback屬性處理介面呼叫異常問題client
- web應用中的路徑問題Web
- 異常問題排查之旅
- WEB應用訪問緩慢的問題定位Web
- 快應用稽核常見問題
- EJB 在WEB和Clien中t的並存問題Web
- apache web 中的CGI應用問題(轉)ApacheWeb
- 10.Java異常問題Java
- .net異常處理的效能問題
- JVM 異常退出的問題解決JVM
- SpringMVC(2)- 非同步呼叫、非同步請求-跨域訪問、攔截器、異常處理、實用技術SpringMVC非同步跨域
- Flutter2 for Web 跨域問題FlutterWeb跨域
- web 跨域請求安全問題Web跨域
- web開發的跨域問題詳解Web跨域
- Silverlight 呼叫自託管的wcf 報跨域異常的處理跨域
- Web應用開發中的幾個問題Web
- Java Web應用的常見思路JavaWeb
- 關於將 OSGi 嵌入 WEB 容器的問題Web
- Rational Functional Tester 測試 Web 應用程式中的常見問題及解決方案FunctionWeb
- VUE 呼叫 flask 介面,解決跨域問題VueFlask跨域
- Python異常 ValueError的問題詳解PythonError
- 解決常見介面跨域問題跨域
- Web標準中的常見問題Web
- web專案常問面試題Web面試題
- python應用:異常處理Python
- 【docker-ce】k8s叢集docker容器異常重啟問題分析DockerK8S