2017-10-19 3 views
0

Ich arbeite an Liferay 7. Ich bin neu bei Liferay und ich habe ein Problem, das ich zu viel Zeit verbracht habe.Service Builder gibt Fehler mit Lebens-Strahl 7

Ich habe ein Portlet, das ich entschied, einen Service Builder (namens "Mitarbeiter") zu erstellen. Hier ist meine service.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> 

Und wenn ich den Aufbau mit Liferay Service Builder ich erhalte diesen Fehler

[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" 

I geprüft und Quer überprüfen, Alle Gläser sind in jar Bibliothek. Hier

ist der Screenshot von zugesetztem jar: enter image description here

Antwort

0

Vor allem, wenn Sie neu sind, würde ich empfehlen, noch einmal zu versuchen und Liferay Arbeitsbereich anstelle des (veraltet) Plugins-sdk zu verwenden. Alle Beispiele (here's one for service builder) bauen darauf auf, und plugins-sdk sollte weitgehend nur dazu verwendet werden, vorhandene Legacy-Plugins auf die neueste Version zu migrieren.

Ich bin mir nicht sicher, was dein Screenshot zeigt - wenn es alle gebündelten Gläser ist, dann sieht es schrecklich aus. Sie sollten nur winzige Plugins in Zeiten von OSGi-Bundles haben, und es sieht definitiv so aus, als wären das viel zu viele Abhängigkeiten.

+0

Danke für die Antwort @Olaf Kock Ja, Das ist mein gebündelt Glas ist aber das kam von sdk-Plugin ich nicht versucht haben, hinzufügen manually.Will :-) zu reduzieren –

+0

Ich habe alle Gläser in WEB-INF hinzugefügt/lib jetzt, dass der Fehler verschwunden ist. Jetzt bekomme ich diesen Fehler ** Ausnahme im Thread "main" java.lang.NoSuchMethodError: freemarker.template.Configuration.getVersion() Lfreemarker/template/Version; ** meinst du ich muss eine andere Frage stellen? –

Verwandte Themen