pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何在 PrintStackTrace 后保持 CFEXECUTE 不掛起

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

問題描述

我正在使用 ColdFusion MX7 對一些 Java 6 代碼執(zhí)行 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 代碼中發(fā)生異常時,如果我在異常上調(diào)用 printStackTrace,CFEXECUTE 命令會掛起.ColdFusion 最終超時,但 Java 進程繼續(xù)在后臺掛起.

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.

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

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

如果我不執(zhí)行 printStackTrace 則一切正常.

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

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

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

編輯

我注意到我可以使用文件 PrintStream 作為參數(shù)調(diào)用 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 調(diào)用:

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 掛起的原因.有一個補丁可以修復(fù) 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 執(zhí)行命令行實用程序

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

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();
        }
    }
}

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

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

相關(guān)文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環(huán)繞文本?)
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 數(shù)據(jù)庫)
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 大连海岛旅游网>>大连旅游,大连海岛游,旅游景点攻略,海岛旅游官网 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 深圳离婚律师咨询「在线免费」华荣深圳婚姻律师事务所专办离婚纠纷案件 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 北京燃气公司 用户服务中心| EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 花纹铝板,合金铝卷板,阴极铝板-济南恒诚铝业有限公司 | 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 餐饮小吃技术培训-火锅串串香培训「何小胖培训」_成都点石成金[官网] | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | 手持气象站_便携式气象站_农业气象站_负氧离子监测站-山东万象环境 | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 中山市派格家具有限公司【官网】| 液氨泵,液化气泵-淄博「亚泰」燃气设备制造有限公司 | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | ph计,实验室ph计,台式ph计,实验室酸度计,台式酸度计 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 济南保安公司加盟挂靠-亮剑国际安保服务集团总部-山东保安公司|济南保安培训学校 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 贴片电感_贴片功率电感_贴片绕线电感_深圳市百斯特电子有限公司 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 郑州爱婴幼师学校_专业幼师培训_托育师培训_幼儿教育培训学校 | 3d打印服务,3d打印汽车,三维扫描,硅胶复模,手板,快速模具,深圳市精速三维打印科技有限公司 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 南京交通事故律师-专打交通事故的南京律师 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 |