Olá pessoal,
estou desenvolvendo em JSF e em uma parte do código eu tenho uma classe com escopo None
que utilizo para fazer contato com um WebService. Isso não vem ao caso aqui,
o que acontece é que esta classe se utiliza de outra classe que eu criei e esta utiliza a API
org.jdom para parsing de documentos XML. A classe que utilizo (SAXBuilder não é serializável) e
é disparada uma exceção em tempo de execução dizendo que o objeto não pode ser serializado.
Out 25, 2011 8:43:12 PM org.apache.catalina.session.StandardManager startInternal
Grave: Exception loading sessions from persistent storage
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.jdom.input.SAXBuilder
Como funciona a aplicação:
Eu tenho uma Classe de escopo Request SearchController que é chamada por um botão da View,
e executa o método de busca search com um termo de busca digitado pelo usuário.
public void search() {
int searchResultCount = DownloadFactory.getResults(searchTerm);
if (searchResultCount > 0) {
Tab t = new Tab(searchTerm,searchResultCount);
tabs.addTab(t);
} else {
sendMessage(FacesMessage.SEVERITY_ERROR, "No results found for " + searchTerm);
}
}
Em seguida a classe DownloadFactory que possui uma instancia estática de Downloader
utiliza este Downloader para descobrir quantos resultados tem no WebService. Então uma aba é criada na View.
Como a aba(classe Tab com escopo None e serializável) possui um dataTable LazyLoaded, existe uma classe chamada
Downloader que também é serializada e que recupera os documentos necessários para o dataTable. É nesta classe
Downloader que há uma instancia da classe SAXBuilder do JDom. Creio que meu problema seja uma questão simples de ser resolvida e está ligada à arquitetura da aplicação.
Agradeço quem puder me ajudar.