久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何在 PrintStackTrace 后保持 CFEXECUTE 不掛起

How do I keep CFEXECUTE from hanging after a PrintStackTrace(如何在 PrintStackTrace 后保持 CFEXECUTE 不掛起)
本文介紹了如何在 PrintStackTrace 后保持 CFEXECUTE 不掛起的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在使用 ColdFusion MX7 對一些 Java 6 代碼執行 CFEXECUTE.

I'm using ColdFusion MX7 to perform a CFEXECUTE on some Java 6 code.

不幸的是,由于 CF7 在 JDK 6 下無法運行,我必須這樣做.

Unfortunately, since CF7 does not work under JDK 6 I must do it this way.

我的問題是,當 Java 代碼中發生異常時,如果我在異常上調用 printStackTrace,CFEXECUTE 命令會掛起.ColdFusion 最終超時,但 Java 進程繼續在后臺掛起.

My problem is that when an exception happens in the Java code if I call a printStackTrace on the exception the CFEXECUTE command hangs. ColdFusion eventually times out but the Java process continues to hang in the background.

我猜有一些阻塞正在發生,但我似乎無法弄清楚原因.

I'm guessing there is some blocking going on but I can't seem to figure out why.

如果我不執行 printStackTrace 則一切正常.

If I don't do a printStackTrace then everything works fine.

異常是使用 JAXWS 從 Oracle 信息權限管理 wsdl 生成的 WebService 異常.

The exceptions are WebService exceptions generated with JAXWS from the Oracle Information Rights Management wsdl.

編輯

我注意到我可以使用文件 PrintStream 作為參數調用 printStackTrace 并且它工作正常.所以,看起來錯誤流有問題.

I noticed that I am able to call the printStackTrace with a file PrintStream as a parameter and it works fine. So, it looks like the error stream is having troubles.

這里是 Java 代碼:

Here is the Java Code:

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 調用:

Here is the ColdFusion call:

<!--- Update the IRM User. --->
<CFEXECUTE name="c:Program FilesJavajdk1.6.0_14injavaw.exe"
           arguments="-cp C:CFusionMX7ExternalsIRM.jar;C:CFusionMX7ExternalsConfig IRMWebServices.UpdateUser #LoginID# #NewFname# #NewLname#"
           timeout="15" 
           variable="OUTPUT">
</CFEXECUTE>

推薦答案

是的,e.printStackTrace(); 寫入 stderr(標準錯誤流).由于 cfexecute 不捕獲標準錯誤,這可能是導致 cfexecute 掛起的原因.有一個補丁可以修復 CF8 中的這種行為.

Yes, e.printStackTrace(); writes to stderr (standard error stream). Since cfexecute does not capture stderr, that is probably what is causing cfexecute to hang. There was a patch to fix this behavior in CF8.

由于您使用的是 7,請嘗試 Ben Forta 的提示:

Since you are using 7, try Ben Forta's tips about:

  • 將標準錯誤重定向到標準輸出:幾個問題
  • 運行命令并在完成后終止的標志:使用 CFEXECUTE 執行命令行實用程序

同時使用 /c2>&1 應該可以解決掛起問題.

Using both /c and 2>&1 should get rid of the hanging problem.

更新:添加示例

ColdFusion 代碼:

<cftry>  
    <cfset argString = '/c "C:Program FilesJavajdk1.6.0_13injava.exe" -cp c:myJar.jar TestStdErr 2>&1'  >  
    <cfexecute name="c:windowssystem32cmd.exe" 
        arguments="#argString#"    
        outputFile="c:cfexcuteResults.log" 
        timeout="5" />  
    <cfcatch>  
       <cfdump var="#cfcatch#">  
    </cfcatch>  
</cftry>  

Java 類:

public class TestStdErr {
    public static void main(String[] args) {
        try {
            // cause a divide by zero exception 
            int a = 0;
            int b = 2 /a;
         }
         catch(Exception e){
            e.printStackTrace();
        }
    }
}

這篇關于如何在 PrintStackTrace 后保持 CFEXECUTE 不掛起的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環繞文本?)
MyBatis, how to get the auto generated key of an insert? [MySql](MyBatis,如何獲取插入的自動生成密鑰?[MySql])
Inserting to Oracle Nested Table in Java(在 Java 中插入 Oracle 嵌套表)
Java: How to insert CLOB into oracle database(Java:如何將 CLOB 插入 oracle 數據庫)
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: 欧美综合一区二区三区 | www.久久精品视频 | 欧美午夜一区 | 欧美激情99 | 男人的天堂久久 | 亚洲一区二区三区福利 | 国产乱码精品1区2区3区 | 91精品一区二区三区久久久久久 | 日韩欧美在线视频 | a久久 | 中文精品视频 | 97国产精品 | 精品欧美一区免费观看α√ | 日本一二区视频 | 手机在线一区二区三区 | 色婷婷亚洲一区二区三区 | 午夜不卡福利视频 | 黄久久久| 看一级毛片视频 | 欧美一级二级三级视频 | 国产高清视频 | 国产一区二区影院 | 二区久久 | av中文字幕在线观看 | av在线一区二区三区 | 91啪影院| 国产一区二区在线免费播放 | 大象视频一区二区 | www.天天操| 亚洲综合免费 | 亚洲www. | 玖玖国产精品视频 | 日韩精品在线观看免费 | 国产黄色av电影 | 欧美九九九| 真人毛片| 国产精品视频一区二区三区 | 欧美亚洲视频 | 久久香蕉精品视频 | 成人a视频在线观看 | 在线观看中文字幕 |