誰知道這個錯誤怎麼解決 javax.transaction.xa.XAException: 違反協議
最近我遇到一個問題, 呼叫實體Bean更新資料庫的時候出現違反協議異常.具體配置:
DB: Oracle 8i App: Weblogic 8.1
表結構:
SWDM VARCHAR2(7) not null PK
NSRMC VARCHAR2(100) not null,
KHH VARCHAR2(40),
JYDZ VARCHAR2(100),
FDDBR VARCHAR2(20),
FRDH VARCHAR2(50),
BSR VARCHAR2(10),
BSRDH VARCHAR2(50),
BSRSJ VARCHAR2(50),
EMAIL VARCHAR2(50),
ZZJGDMZH VARCHAR2(50),
DLFS VARCHAR2(1) default '0' not null,
WTDZ VARCHAR2(1) default '0' not null,
DAILI VARCHAR2(1) default '0' not null,
BAOYAN VARCHAR2(1) default '0' not null,
APPLYTIME DATE,
REPLYTIME DATE,
SFPZ VARCHAR2(1),
HFNR VARCHAR2(200)
我建立一個CMP實體BEAN來表示這個表. 使用SESSION BEAN來呼叫, 其中有一個方法有問題:
public void approve(String swdm, String approved, String hfnr) throws
UpdateException {
String[] msg = null;
ApplicationHome ah = null;
if (swdm == null) {
msg = new String[] {"使用者申請", "沒有指定稅務程式碼"};
throw new UpdateException(msg);
}
if (approved == null ||
(!(approved.equals(Application.YES) ||
approved.equals(Application.NO)))) {
msg = new String[] {"使用者申請", "是否批准必須是字串0或者1"};
throw new UpdateException(msg);
}
try {
ah = (ApplicationHome) EJBObjectFactory.getEntityBeanHome(
Constant.APPLICATION);
Application a = ah.findByPrimaryKey(swdm);
////////////////////////////////////////////////
// 此處有問題, setSfpz()執行的時候總把資料庫的那個欄位改成亂碼,而且亂碼還經常變化, 有時還丟擲異常, 我使用客戶端測試SessionBean的時候還經常丟擲異常,如果把a.setReplyTime()註釋掉, 則沒有問題.
a.setHfnr(hfnr);
a.setReplytime(new Timestamp(Calendar.getInstance().getTimeInMillis()));
a.setSfpz(approved);
///////////////////////////////////////////////////
} catch (NamingException ex) {
ex.printStackTrace();
msg = new String[] {"使用者申請", "查詢EJB失敗"};
throw new UpdateException(msg);
} catch (FinderException ex) {
ex.printStackTrace();
msg = new String[] {"使用者申請", "沒有找到這個申請, 稅務程式碼:" + swdm};
throw new UpdateException(msg);
}
}
DB: Oracle 8i App: Weblogic 8.1
表結構:
SWDM VARCHAR2(7) not null PK
NSRMC VARCHAR2(100) not null,
KHH VARCHAR2(40),
JYDZ VARCHAR2(100),
FDDBR VARCHAR2(20),
FRDH VARCHAR2(50),
BSR VARCHAR2(10),
BSRDH VARCHAR2(50),
BSRSJ VARCHAR2(50),
EMAIL VARCHAR2(50),
ZZJGDMZH VARCHAR2(50),
DLFS VARCHAR2(1) default '0' not null,
WTDZ VARCHAR2(1) default '0' not null,
DAILI VARCHAR2(1) default '0' not null,
BAOYAN VARCHAR2(1) default '0' not null,
APPLYTIME DATE,
REPLYTIME DATE,
SFPZ VARCHAR2(1),
HFNR VARCHAR2(200)
我建立一個CMP實體BEAN來表示這個表. 使用SESSION BEAN來呼叫, 其中有一個方法有問題:
public void approve(String swdm, String approved, String hfnr) throws
UpdateException {
String[] msg = null;
ApplicationHome ah = null;
if (swdm == null) {
msg = new String[] {"使用者申請", "沒有指定稅務程式碼"};
throw new UpdateException(msg);
}
if (approved == null ||
(!(approved.equals(Application.YES) ||
approved.equals(Application.NO)))) {
msg = new String[] {"使用者申請", "是否批准必須是字串0或者1"};
throw new UpdateException(msg);
}
try {
ah = (ApplicationHome) EJBObjectFactory.getEntityBeanHome(
Constant.APPLICATION);
Application a = ah.findByPrimaryKey(swdm);
////////////////////////////////////////////////
// 此處有問題, setSfpz()執行的時候總把資料庫的那個欄位改成亂碼,而且亂碼還經常變化, 有時還丟擲異常, 我使用客戶端測試SessionBean的時候還經常丟擲異常,如果把a.setReplyTime()註釋掉, 則沒有問題.
a.setHfnr(hfnr);
a.setReplytime(new Timestamp(Calendar.getInstance().getTimeInMillis()));
a.setSfpz(approved);
///////////////////////////////////////////////////
} catch (NamingException ex) {
ex.printStackTrace();
msg = new String[] {"使用者申請", "查詢EJB失敗"};
throw new UpdateException(msg);
} catch (FinderException ex) {
ex.printStackTrace();
msg = new String[] {"使用者申請", "沒有找到這個申請, 稅務程式碼:" + swdm};
throw new UpdateException(msg);
}
}
相關文章
- HTTP代理錯誤怎麼解決?HTTP
- 代理508限制錯誤怎麼解決?
- 請問這個報錯該怎麼解決,謝謝
- steam磁碟寫入錯誤怎麼解決 steam磁碟寫入錯誤解決方法大全
- 怎麼解決Centos下nginx支援https協議CentOSNginxHTTP協議
- HTTP協議無狀態,該怎麼解決?HTTP協議
- steam磁碟寫入錯誤怎麼解決 steam安裝時發生錯誤怎麼辦
- 調變解調器錯誤651怎麼修復 win10連線錯誤651怎麼解決Win10
- 網站域名解析為什麼錯誤?域名解析錯誤怎麼解決?網站
- 印表機提示列印錯誤怎麼解決 印表機狀態錯誤的方法
- 錯誤720寬頻連線解決辦法 寬頻連線錯誤程式碼720怎麼解決
- 關於錯誤程式碼107(err_ssl_protocol_error)SSL 協議出錯的解決方案ProtocolError協議
- 建立python虛擬環境virtualenv錯誤怎麼解決?Python
- OpenAI ChatGPT 錯誤碼 1020 怎麼解決?3 種方法OpenAIChatGPT
- 糖豆人epic賬戶錯誤14怎麼解決
- steam商店打不開怎麼解決 steam商店錯誤程式碼-118-1怎麼解決
- win10硬體錯誤117怎麼解決?win10硬體錯誤117的解決辦法Win10
- photoshop匯出png發生未知錯誤的解決方案,ps匯出發生未知錯誤怎麼解決
- onvif soap 協議的錯誤程式碼協議
- 電腦404頁面怎麼恢復 404錯誤頁面怎麼解決
- win10 檔案系統錯誤(-2145103860)怎麼解決Win10
- 網站提示連線資料庫錯誤怎麼解決網站資料庫
- Dedecms錯誤警告:連線資料庫失敗,出錯怎麼解決?資料庫
- Steam錯誤程式碼138怎麼辦?無法訪問社群提示138錯誤解決方法
- 印表機狀態錯誤怎麼解決 印表機一直顯示錯誤不能列印
- 公司網站證書錯誤怎麼解決,快速排除公司網站SSL證書錯誤網站
- Ocelot錯誤解決
- 一個 ExpressionChangedAfterItHasBeenCheckedError 錯誤的解決過程ExpressError
- bootstrap匯入js包和css包時錯誤怎麼解決?bootJSCSS
- win10連線共享印表機錯誤709怎麼解決Win10
- HTTP協議和MQTT協議對比誰更好HTTP協議MQQT
- 印表機狀態錯誤是怎麼回事 win7win10電腦顯示列印狀態錯誤怎麼解決Win7Win10
- win10調變解調器錯誤怎麼辦 win10調變解調器錯誤的解決方法Win10
- laravel8 使用 composer 安裝驗證碼報錯 這個怎麼解決求教Laravel
- 你想了解的DDS協議解決方案在這裡協議
- win10系統操作中心中的錯誤通知怎麼解決Win10
- 解決 Python UnicodeEncodeError 錯誤PythonUnicodeError
- mongodb find報錯怎麼解決MongoDB
- 在Linux中,我們都知道,dns採用了tcp協議,又採用了udp協議,什麼時候採用tcp協議?什麼 時候採用udp協議?為什麼要這麼設計?LinuxDNSTCP協議UDP