I have a simple program that submits electronic returns to the IRS via an SDK 
they provide. The underlying technology in their service is SOAP. I also have a 
hessian service for getting objects from a remote data store.

If I load my hessian client in the main method, I can retrieve an object from 
my remote hessian service without any issues. However, as soon as I initialize 
the IRS SDK, making the same call to my hessian service results in:
(for “bean” type)
com.caucho.hessian.io.HessianFieldException: 
com.aplos.afs.protocol.AfsFile.fileData: [B cannot be assigned from null

(for “byte” type)
java.lang.IndexOutOfBoundsException: Index: 9, Size: 0


The logic looks like:
String hessianTestType = "bean”;
// WORKING
try {
        if ("bean".equals(hessianTestType)) {
                // get container object
                AfsFile afsFile = 
afsClient.download("5344701de4b09ccea4ade50d");
                logger.debug("AFS File: " + afsFile);
        } else {
                // get file data
                byte[] fd = afsClient.downloadFile("5344701de4b09ccea4ade50d");
                logger.debug("File data: " + fd.length);
        }
} catch (Throwable t) {
        logger.error(t.getMessage(), t);
}

// Initializing IRS classes seems to cause hessian issues
submitter = Irs990ezSubmitter.initialize(con);

// FAILING
try {
        if ("bean".equals(hessianTestType)) {
                // get container object
                AfsFile afsFile = 
afsClient.download("5344701de4b09ccea4ade50d");
                logger.debug("AFS File: " + afsFile);
        } else {
                // get file data
                byte[] fd = afsClient.downloadFile("5344701de4b09ccea4ade50d");
                logger.debug("File data: " + fd.length);
        }
} catch (Throwable t) {
        logger.error(t.getMessage(), t);
}

IRS990ezSubmitter is a sub-class; the super constructor calls two IRS classes:
ApplicationContext.setToolkitHome(MEF_TOOLKIT_HOME.getAbsolutePath());
context = new ServiceContext(new ETIN(irsEfileConfig.getEtin()), 
irsEfileConfig.getAsid(), irsEfileConfig.getTestIndicatorType());

I know this isn’t much to go on but is there something I can look for that 
could cause hessian to fail after loading some other classes into memory?

Thanks
matt

_______________________________________________
hessian-interest mailing list
hessian-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/hessian-interest

Reply via email to