2010-05-12 7 views
0

Я пытаюсь разработать портлет в Liferay, который работает на рабочем процессе Bonita, но я продолжаю получать исключение в названии. Я не особенно знаком с Java-миром, поэтому я понятия не имею, чем ударить головой :)Liferay and bonita: noclassdeffounderror

ответ

2

Вы, наверное, назвать код, как:

new LiferayClass(); 

и виртуальная машина не имеет представления о том, где конструктор класса является. Это часто происходит, потому что вы были осторожны, чтобы сообщить компилятору (javac), где библиотека (файл Liferay JAR) была, когда вы компилировались, но вы не сказали JVM (java), где была библиотека, когда вы пытались запустить программу ,

Самый простой способ рассказать о JVM, где требуемые библиотеки можно найти, - это путь поиска, называемый CLASSPATH. Экспорт переменную среды, которая выглядит следующим образом:

для Unix/Linux

CLASSPATH=/path/to/liferay.jar:/path/to/bonita.jar 

Для Windows

CLASSPATH=C:\path\to\liferay.jar;C:\path\to\bonita.jar 

--- редактировать после осветления, что это веб-приложение ---

Поскольку это веб-приложение, вы не ставите JAR-файл в путь к классам. Вы размещаете его в каталоге WEB-INF/lib внутри созданного файла WAR. Таким образом, он будет доступен только вашему веб-приложению; в противном случае это может помешать другим развернутым веб-приложениям.

+0

Будет ли проблема с Liferay работать с Tomcat (например, Tomcat имеет отдельный CLASSPATH)? –

+0

У Tomcat есть CLASSPATH, но вы не хотите использовать его в этом случае. Tomcat не кладет код веб-приложения на свой путь к классам, чтобы предотвратить развертывание веб-приложений от захвата надлежащего защитного кода и кода безопасности, который предоставляет Tomcat. –

0

Трудно сказать точно что не так без дополнительной информации, но это почти обязательно будет проблемой класса. Найдите, какой класс указан в исключении, и убедитесь, что файл jar, содержащий этот класс, находится в пути к классам. Не знакомы с Liferay, я не знаю, как вы это сделаете, но это, вероятно, случай удаления файла jar в правый каталог.

1

Вы можете получить доступ к движку Bonita через API Rest из любого места.

Здесь документация Bonita REST API: http://www.bonitasoft.com/resources/documentation/bos-59/development/bonita-execution-engine/accessing-bonita-execution-engine

Вы можете создать Liferay портлета вызывая процессы, созданные с помощью API Bonita Rest, просто следуйте документации.

С уважением.

+0

Это не ответ на заданный вопрос. Ожидается, что ответы на переполнение стека будут * напрямую * связаны с вопросом, который задают. –

+0

На самом деле это ответ, я сделал это раньше, и это спасло меня много времени, не нужно слишком импортировать javas-зависимости bonita и бороться с API Bonita через ваши коды Java, просто используйте эти API REST, независимо от вашей платформы, Java, C# или даже PHP. –