Service Builder выдает ошибку с life-ray 7

Я работаю над Liferay 7. Я новичок в Liferay, и у меня возникла проблема, на решение которой я потратил слишком много времени.

У меня есть портлет, который я решил создать Service Builder (с именем «Сотрудник»). Вот мой сервис.xml:

   <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 7.0.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_7_0_0.dtd">
<service-builder package-path="com.test">
    <author>sachin.singh</author>
    <namespace>crud</namespace>

    <entity name="Employee" table="user" local-service="true" remote-service="true">
        <column name="iduser" type="int" primary="true" id-type="increment"/>
        <column name="name" type="String" />
        <column name="secret_code" type="String" />
    </entity>
</service-builder>

И когда я строю с помощью Liferay Service Builder, я получаю эту ошибку

  [copy] Copying 1 file to D:\tools\com.liferay.portal.plugins.sdk-1.0.11\portlets\firstLiferay-portlet\docroot\WEB-INF\classes
     [copy] Copied 3 empty directories to 2 empty directories under D:\tools\com.liferay.portal.plugins.sdk-1.0.11\portlets\firstLiferay-portlet\docroot\WEB-INF\classes
      [jar] Building MANIFEST-only jar: D:\tools\com.liferay.portal.plugins.sdk-1.0.11\portlets\firstLiferay-portlet\service-builder-classpath.jar
   [delete] Deleting: D:\tools\com.liferay.portal.plugins.sdk-1.0.11\portlets\firstLiferay-portlet\service-builder-classpath.jar.manifest
     [java] Java Result: 1
   [delete] Deleting: D:\tools\com.liferay.portal.plugins.sdk-1.0.11\portlets\firstLiferay-portlet\service-builder-classpath.jar
     [echo] java.lang.NoClassDefFoundError: com/thoughtworks/qdox/model/JavaMethod
     [echo]     at java.lang.Class.getDeclaredMethods0(Native Method)
     [echo]     at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
     [echo]     at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
     [echo]     at java.lang.Class.getMethod0(Class.java:3018)
     [echo]     at java.lang.Class.getMethod(Class.java:1784)
     [echo]     at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
     [echo]     at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
     [echo] Caused by: java.lang.ClassNotFoundException: com.thoughtworks.qdox.model.JavaMethod
     [echo]     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
     [echo]     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
     [echo]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
     [echo]     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
     [echo]     ... 7 more
     [echo] Error: A JNI error has occurred, please check your installation and try again
     [echo] Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
     [echo] Exception in thread "main"

Я проверил и перепроверил, все банки есть в библиотеке банок.

Вот скриншот добавленной банки: введите здесь описание изображения


person Sachin Singh    schedule 19.10.2017    source источник


Ответы (1)


Особенно если вы новичок, я бы порекомендовал попробовать еще раз и использовать Liferay Workspace вместо (устаревшего) plugins-sdk. Все примеры (вот один для Service Builder) основывается на этом, а plugins-sdk в основном следует использовать только для переноса существующих устаревших плагинов на последнюю версию.

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

person Olaf Kock    schedule 20.10.2017
comment
Спасибо за ответ @Olaf Kock Да, это моя баночка в комплекте, но она пришла из sdk-плагина, который я не добавлял вручную. Попробую уменьшить :-) - person Sachin Singh; 23.10.2017
comment
Я добавил все банки в WEB-INF/lib, теперь эта ошибка исчезла. Теперь я получаю эту ошибку Exception in thread main java.lang.NoSuchMethodError: freemarker.template.Configuration.getVersion()Lfreemarker/template/Version ; как вы думаете, мне нужно опубликовать еще один вопрос? - person Sachin Singh; 25.10.2017