我正在使用ColdFusion MX7在某些Java 6代碼上執行CFEXECUTE。如何保持CFEXECUTE在PrintStackTrace後掛起
不幸的是,由於CF7在JDK 6下不工作,我必須這樣做。
我的問題是,如果我在異常中調用printStackTrace
時,Java代碼中發生異常,CFEXECUTE命令將掛起。 ColdFusion最終會超時,但Java進程會繼續在後臺掛起。
我猜是有一些阻塞,但我似乎無法弄清楚爲什麼。
如果我不做printStackTrace
然後一切正常。
異常是由Oracle信息權限管理wsdl使用JAXWS生成的WebService異常。
編輯
我注意到,我可以打電話給printStackTrace
與文件PrintStream
作爲一個參數,它工作正常。所以,它看起來像錯誤流有麻煩。
這裏是Java代碼:
public void Execute(){
AdminUtils AU = AdminUtils.GetInstance();
AccountServicesPort AA = AU.GetAccountServicesPort();
LicenseServerRef LicSerRef = AU.GetLicenseServerRef();
User UserToSave = new User();
UserToSave.setUserName(UserName);
UserToSave.setFirstName(FirstName);
UserToSave.setLastName(LastName);
UserToSave.setEmailAddress(EmailAddress);
UserToSave.setServer(LicSerRef);
try{
AU.LogMessage("Change User: " + UserName + " " + FirstName + " " + LastName + " " + EmailAddress);
AA.saveChangesToUser(UserToSave);
}catch(Exception e){
e.printStackTrace();
}
}
這裏是ColdFusion的呼:
<!--- Update the IRM User. --->
<CFEXECUTE name="c:\Program Files\Java\jdk1.6.0_14\bin\javaw.exe"
arguments="-cp C:\CFusionMX7\Externals\IRM.jar;C:\CFusionMX7\Externals\Config IRMWebServices.UpdateUser #LoginID# #NewFname# #NewLname#"
timeout="15"
variable="OUTPUT">
</CFEXECUTE>
你能粘貼一些代碼? – 2009-06-16 15:06:55