Ask Questions and Find Answers
Important:
Ask is now read-only. You can review any existing questions and answers, but not add anything new.
But - don't panic! While ask is no more, we've replaced it with discuss - the new Liferay Discussion Forum! Read more here here or just visit the site here:
discuss.liferay.com
Problems with extending portlets
Hi,<br /><br />I want to make some changes to the calendar portlet. So I built the ext environment and when i deploy the ext-ear everything works great. However, when I run deploy from ext-ejb and ext-web the deployments complete successfully, but when i start jboss-tomcat I get a lot of NoClassDefFound errors, as if the jndi can't link the appropriate ejb's. <br /><br />I am using Liferay 3.6.1 on WinXP<br />Jboss-Tomcat, MySQL 5.0<br /><br />Can any one please help me. Thank you in advance.<br /><br />Peter
did you get jboss-tomcat from our site?
<br />did you get jboss-tomcat from our site?<br /><br /><br />Yes, I got the source of 3.6.1 and then i downloaded the bundled jboss-tomcat enterprise edition. I followed the directions on how to extend the environment and everything works fine until I run deploy from ext-ejb and ext-web.
<br />Yes, I got the source of 3.6.1 and then i downloaded the bundled jboss-tomcat enterprise edition. I followed the directions on how to extend the environment and everything works fine until I run deploy from ext-ejb and ext-web.<br /><br /><br />I get the same problem with jboss-jetty, but only with the ext-ejb. <br />If I do the ext-web it updates the pages and all is deployed ok. <br />(see my "Deply Error" post)<br /><br />Can anyone help?<br />
it is good sharing the ideas who extended portlet successfully can give some notes.<br /><br />i did some of the prjs on liferay i am happy but only one thing since long time i am unable to solve is i am discussing below. <br /><br />basically i changed liferay code and done the prjs.<br /><br />i dont want to do this anymore. because if i want to migrate to new version really i am changing the code compiling and then i am doing ext environment and replacing jsps . this way working fine.mainly when new vesion comes if i want to migrate its a pain so that why i want to do extn, <br /> <br />let me give a hand to finish thius task adding a new extn table and generating ejb's, i hope it is simple who did already thanks for every one who is participating this <br /><br />if we want to add a new table and generating ejb's successfully in extension environment thats a great help for new users.<br /><br /><br />mainly examples for extension environment, if suppose we want add a userextn table which is extn to User_ table then ,how service.xml file,what to add in build.xml in ext-ejb.<br /><br />before that i tried it is giving as Build Successfull but not generating code <img src="@theme_images_path@/emotions/oh_my.gif" style="vertical-align:middle" emoid=":o" border="0" alt="ohmy.gif" /> <br /><br />here what i did<br />my basic requirement is adding more fields to the User Table. prev i changed liferay code. i dont want to do in future. so i stared to created my own table User_Ext which have the fields are userId,Region,col1,col2.<br /><br /><br />then i gone to ext/ext-ejb/service.xml<br /><br />it is like this for reports<br /><br /><br /><?xml version="1.0"?><br /><!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 3.6.1//EN" "http://www.liferay.com/dtd/liferay-service-builder_3_6_1.dtd"><br /><br /><service-builder root-dir=".." package-dir="com.ext.portlet"><br /><portlet name="Reports" short-name="Reports" /><br /><entity name="ReportsEntry" local-service="false" persistence-class="com.ext.portlet.reports.service.persistence.ReportsEntryPersistence"><br /><br /><!-- PK fields --><br /><br /><column name="entryId" type="String" primary="true" /><br /><br /><!-- Audit fields --><br /><br /><column name="companyId" type="String" /><br /><column name="userId" type="String" /><br /><column name="userName" type="String" /><br /><column name="createDate" type="Date" /><br /><column name="modifiedDate" type="Date" /><br /><br /><!-- Other fields --><br /><br /><column name="name" type="String" /><br /><br /><!-- Order --><br /><br /><order by="asc"><br /><order-column name="name" case-sensitive="false" /><br /></order><br /><br /><!-- Finder methods --><br /><br /><finder name="CompanyId" return-type="Collection"><br /><finder-column name="companyId" /><br /></finder><br /><finder name="UserId" return-type="Collection"><br /><finder-column name="userId" /><br /></finder><br /></entity><br /><exceptions><br /><exception>EntryName</exception><br /></exceptions><br /></service-builder><br /><br /><br />if i want to generate ejbs for my table, where i have to mention?<br />my table is basically extension of user table<br /><br />my build-parent.xml in ext-ejb<br /><br /><br /><?xml version="1.0"?><br /><br /><project name="ext-ejb-parent"><br /> <import file="../build-common.xml" /><br /><br /> <target name="clean"><br /> <delete includeEmptyDirs="true" failonerror="false"><br /> <fileset dir="${classes.dir}" excludes="${classes.dir.excludes}" /><br /> </delete><br /> </target><br /><br /> <target name="compile"><br /> <mkdir dir="${classes.dir}" /><br /> <javac<br /> classpathref="project.classpath"<br /> compiler="${javac.compiler}"<br /> debug="${javac.debug}"<br /> deprecation="${javac.deprecation}"<br /> destdir="${classes.dir}"<br /> fork="${javac.fork}"<br /> memoryMaximumSize="${javac.memoryMaximumSize}"<br /> nowarn="${javac.nowarn}"<br /> srcdir="${source.dir}"<br /> /><br /> </target><br /><br /> <target name="java2html"><br /> <java<br /> classname="com.liferay.util.Java2Html"<br /> classpathref="project.classpath"<br /> fork="true"><br /> <arg value="${java2html.bat}" /><br /> <arg value="${source.dir}" /><br /> <arg value="${java2html.dir}" /><br /> </java><br /> <move file="${java2html.dir}/stylesheet.css" tofile="${java2html.dir}/java2html.css" /><br /> <antcall target="javadoc" /><br /> <replace dir="${java2html.dir}"><br /> <include name="**/package-summary.html" /><br /> <replacefilter<br /> token="/\"<br /> value="/"<br /> /><br /> </replace><br /> </target><br /><br /> <target name="javadoc"><br /> <mkdir dir="${javadoc.dir}" /><br /> <javadoc<br /> classpathref="project.classpath"<br /> destdir="${api.dir}/ext-ejb"<br /> packagenames="*.*"<br /> sourcepath="${source.dir}"<br /> /><br /> </target><br /><br /> <target name="deploy" depends="compile"><br /> <if><br /> <or><br /> <equals arg1="${app.server.type}" arg2="jetty" /><br /> <equals arg1="${app.server.type}" arg2="resin" /><br /> <equals arg1="${app.server.type}" arg2="tomcat" /><br /> <equals arg1="${app.server.type}" arg2="websphere" /><br /> </or><br /> <then><br /> <jar<br /> basedir="${classes.dir}"<br /> excludes="portal-ext.properties,system-ext.properties,content/Language*.properties"<br /> jarfile="ext-ejb.jar"<br /> /><br /><br /> <copy file="ext-ejb.jar" todir="${app.server.lib.dir}" /><br /><br /> <if><br /> <or><br /> <equals arg1="${app.server.type}" arg2="resin" /><br /> <equals arg1="${app.server.type}" arg2="tomcat" /><br /> </or><br /> <then><br /> <property name="properties.dir" value="${app.server.dir}/common/classes" /><br /> </then><br /> <else><br /> <property name="properties.dir" value="${app.server.lib.dir}" /><br /> </else><br /> </if><br /><br /> <copy todir="${properties.dir}"><br /> <fileset dir="${classes.dir}" includes="*.properties,content/Language*.properties" /><br /> </copy><br /><br /> <replace file="${properties.dir}/portal-ext.properties"><br /> <replacetoken>portal.release=enterprise</replacetoken><br /> <replacevalue>portal.release=professional</replacevalue><br /> </replace><br /> </then><br /> <else><br /> <if><br /> <and><br /> <or><br /> <equals arg1="${app.server.type}" arg2="jboss-jetty" /><br /> <equals arg1="${app.server.type}" arg2="jboss-tomcat" /><br /> </or><br /> <equals arg1="${jboss.ejb.expand}" arg2="off" /><br /> </and><br /> <then><br /> <jar<br /> basedir="${classes.dir}"<br /> excludes="portal-ext.properties,system-ext.properties,content/Language*.properties"<br /> jarfile="ext-ejb.jar"<br /> /><br /> <br /> <copy file="ext-ejb.jar" todir="${app.server.lib.dir}" /><br /> </then><br /> <else><br /> <copy todir="${app.server.deploy.dir}/ext.ear/ext-ejb.jar"><br /> <fileset dir="${classes.dir}" /><br /> <fileset dir="${source.dir}" includes="${classes.dir.excludes}" /><br /> </copy><br /> <br /> <manifest file="${app.server.deploy.dir}/ext.ear/ext-ejb.jar/META-INF/MANIFEST.MF"><br /> <attribute name="Class-Path" value="${classpath.manifest}" /><br /> </manifest> <br /><br /> <if><br /> <or><br /> <equals arg1="${app.server.type}" arg2="jonas-jetty" /><br /> <equals arg1="${app.server.type}" arg2="jonas-tomcat" /><br /> </or><br /> <then><br /> <manifest file="${app.server.deploy.dir}/ext.ear/ext-ejb.jar/META-INF/MANIFEST.MF"><br /> <attribute name="Class-Path" value="${classpath.manifest.jonas}" /><br /> </manifest><br /> <br /> <tstamp><br /> <format property="tstamp.dir" pattern="yyyyMMddkkmmssSSS" /><br /> </tstamp><br /> <br /> <mkdir dir="${tstamp.dir}" /><br /> <br /> <java<br /> classname="org.objectweb.jonas.server.Bootstrap"<br /> classpath="${classpath.jonas.genic}"<br /> fork="true"<br /> maxmemory="512m"<br /> ><br /> <jvmarg value="-Dinstall.root=${env.JONAS_ROOT}" /><br /> <jvmarg value="-Djonas.base=${env.JONAS_ROOT}" /><br /> <jvmarg value="-Djava.security.policy=${env.JONAS_ROOT}/conf/java.policy" /><br /> <jvmarg value="-Djava.endorsed.dirs=${env.JONAS_ROOT}/lib/endorsed" /><br /> <jvmarg value="-Djava.io.tmpdir=${tstamp.dir}" /><br /> <arg value="org.objectweb.jonas_ejb.genic.GenIC" /><br /> <arg value="-d" /><br /> <arg value="${app.server.deploy.dir}/ext.ear/ext-ejb.jar" /><br /> <arg value="-noaddinjar" /><br /> <arg value="-protocols" /><br /> <arg value="jrmp" /><br /> <arg value="-keepgenerated" /><br /> <arg value="-invokecmd" /><br /> <arg value="classes/META-INF/ejb-jar.xml" /><br /> </java><br /> <br /> <delete dir="${tstamp.dir}" /><br /> </then><br /> </if><br /> </else><br /> </if><br /> </else><br /> </if><br /> </target><br /><br /> <target name="build-ejbxml"><br /> <java<br /> classname="com.liferay.portal.tools.EJBXMLBuilder"<br /> classpathref="project.classpath"<br /> fork="true"<br /> newenvironment="true"<br /> ><br /> <arg value="ext-ejb.jar" /><br /> </java><br /> </target><br /> <b><target name="build-ejbxml-suresh"><br /> <property name="modelDirPath.dir" value="src/com/ext/portal/ejbs/" /><br /> <antcall target="build-ejb-userext"><br /> <param name="ejbXmlName" value="${modelDirPath.dir}/UserExt/service.xml" /><br /> </antcall><br /> </target></b> <b><target name="build-ejb-userext"><br /> <java<br /> classname="com.liferay.portal.tools.EJBXMLBuilder"<br /> classpathref="project.classpath"<br /> fork="true"<br /> newenvironment="true"<br /> ><br /> <arg value="ext-ejb.jar" /><br /> </java><br /> </target></b> <target name="build-service"><br /> <java<br /> classname="com.liferay.portal.tools.ServiceBuilder"<br /> classpathref="project.classpath"<br /> fork="true"<br /> maxmemory="384m"<br /> newenvironment="true"<br /> ><br /> <jvmarg value="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog" /><br /> <arg value="service.xml" /><br /> <arg value="src/com/ext/portal/ejbs/UserExt/service.xml" /><br /> <arg value="classes/META-INF/ext-hbm.xml" /><br /> <arg value="classes/META-INF/ext-spring-enterprise.xml" /><br /> <arg value="classes/META-INF/ext-spring-professional.xml" /><br /> <arg value="com.liferay.portal.spring.util.SpringUtil" /><br /> </java><br /> <delete file="ServiceBuilder.temp" /><br /> <b><antcall target="build-ejbxml" /><br /><antcall target="build-ejbxml-suresh" /></b><br /> </target><br /></project><br /><br /><br /><br /> i placed my service.xml in \SourceForge\liferay\ext\ext-ejb\src\com\ext\portal\ejbs\UserExt<br /><br /><br /> my <b>service.xml </b>looks like this<br /><br /><br /><?xml version="1.0"?><br /><!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 3.6.1//EN" "http://www.liferay.com/dtd/liferay-service-builder_3_6_1.dtd"><br /><br /><service-builder root-dir=".." package-dir="com.ext.portal.ejbs"><br /> <portlet name="UserExt" short-name="UserX" /><br /> <entity name="User_Ext" local-service="true"><br /><br /> <!-- PK fields --><br /><br /> <column name="userId" type="String" primary="true" /><br /><br /> <!-- Audit fields --><br /><br /> <column name="userId" type="String" /><br /><br /> <!-- Other fields --><br /><br /> <column name="Region" type="String" /><br /> <column name="col1" type="String" /><br /> <column name="col2" type="String" /><br /> <br /> <!-- Finder methods --><br /><br /> <finder name="UserId" return-type="Collection"><br /> <finder-column name="userId" /><br /> </finder><br /> </entity><br /> <br /> <br /></service-builder><br /><br /><br /><br />thanq <img src="@theme_images_path@/emotions/big_grin.gif" style="vertical-align:middle" emoid="
" border="0" alt="biggrin.gif" /> <img src="@theme_images_path@/emotions/big_grin.gif" style="vertical-align:middle" emoid="
" border="0" alt="biggrin.gif" />
Community
Company
Feedback