Liferay e Bonita: NoclassDeffoundError [fechado
-
26-09-2019 - |
Pergunta
Estou tentando desenvolver um portlet no Liferay que opera em um fluxo de trabalho Bonita, mas continuo obtendo a exceção no título. Não estou particularmente familiarizado com o mundo Java, então não tenho idéia do que bater minha cabeça :)
Solução
Você provavelmente chamou algum código como:
new LiferayClass();
E a JVM não tem idéia de onde está o construtor da classe. Isso geralmente acontece porque você teve o cuidado de dizer ao compilador (JAVAC) onde a biblioteca (arquivo de jar liferay) era quando você estava compilando, mas você não contou à JVM (Java) onde estava a biblioteca quando você tentou executar o programa .
A maneira mais fácil de dizer à JVM onde as bibliotecas necessárias podem ser encontradas é com um caminho de pesquisa chamado ClassPath. Exportar uma variável ambiental que se parece com o seguinte:
Para Unix/Linux
CLASSPATH=/path/to/liferay.jar:/path/to/bonita.jar
Para Windows
CLASSPATH=C:\path\to\liferay.jar;C:\path\to\bonita.jar
--- Editar após o esclarecimento que este é um aplicativo da web ---
Como este é um aplicativo da Web, você não coloca o arquivo JAR no caminho de classe. Você o coloca no diretório Web-Inf/Lib interno ao arquivo de guerra que você cria. Dessa forma, será exposto apenas ao seu aplicativo da Web; Caso contrário, poderia interferir nos outros aplicativos da Web implantados.
Outras dicas
Você pode acessar o mecanismo Bonita via API Rest de qualquer lugar.
Aqui documentação da API de Rest Bonita:http://www.bonitasoft.com/resources/documentation/bos-59/development/bonita-execution-engine/accessing-bonita-execution-engine
Você pode criar processos de chamada de portlet Liferay criados com Bonita via API REST, basta seguir a documentação.
Cumprimentos.
É difícil dizer exatamente O que há de errado sem mais informações, mas é quase provável que seja um problema de patrimônio de classe. Encontre qualquer classe mencionada na exceção e verifique se o arquivo JAR que contém essa classe está no caminho de classe. Sem estar familiarizado com o Liferay, não sei como você fará isso, mas provavelmente é um caso de soltar o arquivo JAR no diretório certo.