Jak utrzymać CFEXECUTE w stanie zawieszenia po PrintStackTrace

Używam ColdFusion MX7 do wykonywania CFEXECUTE na niektórych kodach Java 6.

Niestety, ponieważ CF7 nie działa w JDK 6, muszę to zrobić w ten sposób.

Mój problem polega na tym, że gdy w kodzie Java wystąpi wyjątek, jeśli zadzwonię pod numerprintStackTrace na wyjątek zawiesza się komenda CFEXECUTE. W końcu ColdFusion przestaje działać, ale proces Java kontynuuje pracę w tle.

Zgaduję, że dzieje się jakaś blokada, ale nie mogę zrozumieć dlaczego.

Jeśli nie zrobięprintStackTrace wtedy wszystko działa dobrze.

Wyjątkami są wyjątki usługi WebService generowane za pomocą JAXWS z kodu wsadowego Oracle Information Rights Management.

EDYTOWAĆ

Zauważyłem, że mogę zadzwonić doprintStackTrace z plikiemPrintStream jako parametr i działa dobrze. Wygląda więc na to, że strumień błędów ma problemy.

Oto kod 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();
    }
}
</code>

Oto połączenie ColdFusion:

<code><!--- 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>
</code>

questionAnswers(1)

yourAnswerToTheQuestion