久久久久久久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(使用線程逐塊處理文件)
主站蜘蛛池模板: 国产精品美女久久久 | 国产福利观看 | 国产精品视频在线观看 | 国产精品女人久久久 | 国产精品色婷婷久久58 | 午夜久久久 | 精品一区在线免费观看 | 欧美三级视频在线观看 | 国产精品国产成人国产三级 | 国产色99 | 亚洲精品美女视频 | 欧美日韩亚洲一区 | 久久www免费人成看片高清 | 日韩成人在线免费观看 | 欧美一区二区免费 | 亚洲国产欧美一区二区三区久久 | 国产日韩中文字幕 | 日韩欧美高清dvd碟片 | 国产在线精品一区二区三区 | 国产精品视频 | 久久毛片 | 久久精品中文字幕 | 91精品久久久久久综合五月天 | 怡红院怡春院一级毛片 | 国产精品视频二区三区 | 国产成人久久久 | 日本一区二区电影 | 亚州综合一区 | 国产精品亚洲一区二区三区在线 | 欧美精品三区 | 日韩中文字幕一区二区 | 免费在线一区二区 | 99这里只有精品视频 | www亚洲成人 | 日本成人在线观看网站 | 91精品国产91久久综合桃花 | 91精品国产91久久久久久密臀 | 在线观看午夜视频 | 中文字幕不卡在线观看 | 欧美成人一区二区三区 | 欧美成人精品在线 |