Problema com Deploy

Olá, pessoal. Não sei se este é o fórum apropriado. Se não for, fiquem a vontade para removê-lo para outro local.

Estou com a seguinte situação:

Estou tentando fazer o deploy em um servidor no cliente de uma aplicação em java. O Glassfish utilizado no server é o 3.0 e não posso atualizá-lo. Ocorre que ao tentar enviar o arquivo, o glassfish me retorna o seguinte erro:

Exception while loading the app java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: java.lang.SecurityException: class “com.genexus.webpanels.SessionEventListener”'s signer information does not match signer information of other classes in the same package

Pelo que pesquisei no google e em outros fóruns java, o problema é a duplicidade da classe SessionEventListener no mesmo pacote. Já tentei retirar e também renomear essa classe, mas aí a “reclamação” do glassfish é de classe não encontrada.

Já procurei em todos os .jar do meu arquivo WAR pela classe duplicada e não a encontrei. Gastei a manhã inteira encima desse problema, mas não encontrei uma possível solução.

Alguém tem alguma idéia de como resolvê-lo? Desde já agradeço qualquer ajuda.

Veja se isso aqui ajuda…

tveronezi, obrigado por sua pronta resposta…

Já tinha lido este artigo… sua tradução, de acordo com o google, e esta:

[b]"Isso acontece quando as classes pertencentes ao mesmo pacote são carregados a partir de arquivos JAR diferentes, e esses arquivos JAR tem assinaturas assinados com certificados diferentes - ou, talvez mais frequentemente, pelo menos um é assinado e um ou mais outros não (o que inclui as classes carregadas a partir de diretórios desde os AFAIK não pode ser assinado).

Assim, ou certificar-se de todos os JARs (ou pelo menos aqueles que contêm classes a partir dos mesmos pacotes) são assinados com o mesmo certificado, ou remover as assinaturas do manifesto de arquivos JAR com sobreposição de pacotes."[/b][i]

Sinceramente, eu não sei como fazer para “remover as assinaturas do manifesto”.
Também não consegui compreender como "verificar se os JARs são assinados com o mesmo certificado.

Perdoe-me a burrice… nunca trabalhei deployment antes.

Obrigado.

Oi, dê uma olhada nesse artigo. Ele explica como a certificação dos JARs funciona.

http://docs.oracle.com/javase/tutorial/deployment/jar/signindex.html

[]s,
Thiago

Tveronezi, muito obrigado pela ajuda.

Na troca de informações com outros colegas aqui da empresa e com pesquisas mais refinadas, descobrimos que, nesse nosso caso em específico, o problema pode estar na JVM. O server que estamos fazendo o deploy tem o glassfish 3.0.1 com o java 6.18.

http://docs.oracle.com/javase/6/docs/technotes/guides/jweb/mixed_code.html#manifest

Vamos realizar a atualização de ambos no srv de produção para ver se isso resolve, uma vez que nosso ambiente de desenvolvimento está mais atualizado.

Obrigado por se dipôr a ajudar. Depois informo se deu tudo certo.

[]'s

Tveronezi, desculpe a demora em responder (nossa! Faz um mês já). O problema foi resolvido!

Não foi necessário realizar atualizações no srv do cliente. Descobrimos o .jar responsável pelo problema: bastou remover o signed.jar de dentro do WAR para tudo funcionar perfeitamente.

Bom, foi isso. Obrigado pela ajuda.

[]'s