Como faço para manter CFEXECUTE pendurado após um PrintStackTrace
Estou usando o ColdFusion MX7 para executar um CFEXECUTE em algum código Java 6.
Infelizmente, como o CF7 não funciona no JDK 6, preciso fazê-lo dessa maneira.
Meu problema é que quando uma exceção acontece no código Java se eu chamar umprintStackTrace
na exceção o comando CFEXECUTE trava. O ColdFusion eventualmente expira, mas o processo Java continua pendurado em segundo plano.
Eu estou supondo que há algum bloqueio acontecendo, mas eu não consigo descobrir o porquê.
Se eu não fizerprintStackTrace
então tudo funciona bem.
As exceções são exceções do WebService geradas com o JAXWS do wsdl do Oracle Information Rights Management.
EDITAR
Notei que eu sou capaz de chamar oprintStackTrace
com um arquivoPrintStream
como um parâmetro e funciona bem. Então, parece que o fluxo de erros está tendo problemas.
Aqui está o código 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();
}
}
Aqui está a chamada do 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>