Foren
Service Builder Error - failing to resolve package
Jaafar Altaie, geändert vor 11 Jahren.
Service Builder Error - failing to resolve package
Junior Member Beiträge: 69 Beitrittsdatum: 26.04.12 Neueste Beiträge
i'm using Liferay Portal 6.06, Liferay IDE, Ecplise indigo in Win 2008 Server. Trying to learn about Service Builder following the book Liferay in Action by Sezov. From Chapter 4 I use Liferay IDE to create a new portlet project and create service.xml. After successfully building service.xml, I customize one of the generated java classes (PRRegistrationLocalServiceImpl.java) from the book source code.
I see a compile error in this class and it looks like a required package (com.inkwell.internet.productregistration.social) has not been generated and cannot be resolved.
Would appreciate any advice on this error. Alternatively any advice on how Service Builder generates java files and packages, why the package is not being generated and what I should do in the service.xml file to fix this error. My files are as follows (highlighted is the package that's not being resolved):
]PRRegistrationLocalServiceImpl.java
package com.inkwell.internet.productregistration.service.impl;
import java.util.List;
import com.inkwell.internet.productregistration.model.PRRegistration;
import com.inkwell.internet.productregistration.model.PRUser;
import com.inkwell.internet.productregistration.service.base.PRRegistrationLocalServiceBaseImpl;
import com.inkwell.internet.productregistration.social.ProductActivityKeys; <<<< (THIS PACKAGE IS NOT BEING RESOLVED AND DOESN'T EXIST IN THE FOLDER WHERE THE GENERATED PACKAGES ARE)
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.model.User;
import com.liferay.portlet.social.service.SocialActivityLocalService;
import com.liferay.portlet.social.service.SocialActivityLocalServiceUtil;
/**
* <a href="PRRegistrationLocalServiceImpl.java.html"><b><i>View Source</i></b>
* </a>
*
* @author Rich Sezov
*/
public class PRRegistrationLocalServiceImpl
extends PRRegistrationLocalServiceBaseImpl {
/**
* Adds a newly created registration to the database.
*
* @param reg
* @return
* @throws SystemException
*/
public PRRegistration addRegistration(PRRegistration reg)
throws SystemException, PortalException {
PRRegistration registration =
prRegistrationPersistence.create(counterLocalService.increment(PRRegistration.class.getName()));
registration.setCompanyId(reg.getCompanyId());
registration.setDatePurchased(reg.getDatePurchased());
registration.setGroupId(reg.getGroupId());
registration.setHowHear(reg.getHowHear());
registration.setProductId(reg.getProductId());
registration.setPrUserId(reg.getPrUserId());
registration.setSerialNumber(reg.getSerialNumber());
registration.setWherePurchased(reg.getWherePurchased());
// Resources
resourceLocalService.addResources(
registration.getCompanyId(), registration.getGroupId(),
PRRegistration.class.getName(), false);
// Social
// try to get the user from the pruser for social
// there will be no link if the user wasn't logged in
PRUser prUser = prUserLocalService.getPRUser(registration.getPrUserId());
User user = userLocalService.getUser(prUser.getUserId());
if (user != null) {
socialActivityLocalService.addActivity(
user.getUserId(), reg.getGroupId(), PRRegistration.class.getName(), registration.getPrimaryKey(),
ProductActivityKeys.ADD_REGISTRATION, StringPool.BLANK, 0);
}
return prRegistrationPersistence.update(registration, false);
}
/**
* Gets all registrations out of the database.
*
* @return
* @throws SystemException
*/
public List<PRRegistration> getAllRegistrations(long groupId)
throws SystemException {
List<PRRegistration> registrations =
prRegistrationPersistence.findByGroupId(groupId);
return registrations;
}
}
service.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.0.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd">
<service-builder package-path="com.inkwell.internet.productregistration">
<author>Rich Sezov</author>
<namespace>PR</namespace>
<entity name="PRProduct" local-service="true" remote-service="false">
<!-- PK Fields -->
<column name="productId" type="long" primary="true" />
<!-- Other Fields -->
<column name="productName" type="String" />
<column name="serialNumber" type="String" />
<!-- Foreign Keys -->
<column name="companyId" type="long" />
<column name="groupId" type="long" />
<!-- Order -->
<order by="asc">
<order-column name="productName" />
</order>
<!-- Finder Methods -->
<finder name="G_PN" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="productName" />
</finder>
<finder name="GroupId" return-type="Collection">
<finder-column name="groupId" />
</finder>
<finder name="CompanyId" return-type="Collection">
<finder-column name="companyId" />
</finder>
</entity>
<entity name="PRUser" local-service="true" remote-service="false">
<!-- PK Fields -->
<column name="prUserId" type="long" primary="true" />
<!-- Other Fields -->
<column name="firstName" type="String" />
<column name="lastName" type="String" />
<column name="address1" type="String" />
<column name="address2" type="String" />
<column name="city" type="String" />
<column name="state" type="String" />
<column name="postalCode" type="String" />
<column name="country" type="String" />
<column name="phoneNumber" type="String" />
<column name="email" type="String" />
<column name="birthDate" type="Date" />
<column name="male" type="boolean" />
<!-- Foreign Keys -->
<column name="userId" type="long" />
<column name="companyId" type="long" />
<column name="groupId" type="long" />
<!-- Relationships -->
<column name="userRegistrations" type="Collection" entity="PRRegistration" mapping-key="prUserId" />
<!-- Order -->
<order by="asc">
<order-column name="lastName" case-sensitive="false" />
</order>
<!-- Finder Methods -->
<finder name="G_LN" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="lastName" />
</finder>
<finder name="G_E" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="email" />
</finder>
<finder name="G_U" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="userId" />
</finder>
</entity>
<entity name="PRRegistration" local-service="true" remote-service="false">
<!-- PK Fields -->
<column name="registrationId" type="long" primary="true" />
<!-- Other Fields -->
<column name="prUserId" type="long" />
<column name="datePurchased" type="Date" />
<column name="howHear" type="String" />
<column name="wherePurchased" type="String" />
<column name="serialNumber" type="String" />
<column name="productId" type="long" />
<column name="companyId" type="long" />
<column name="groupId" type="long" />
<!-- Finders -->
<finder name="GroupId" return-type="Collection">
<finder-column name="groupId" />
</finder>
<finder name="G_RU" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="prUserId" />
</finder>
<finder name="G_DP" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="datePurchased" />
</finder>
<finder name="G_SN" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="serialNumber" />
</finder>
<!-- References -->
<reference package-path="com.liferay.portlet.social" entity="SocialActivity" />
<reference package-path="com.liferay.portal" entity="User" />
</entity>
</service-builder>
I see a compile error in this class and it looks like a required package (com.inkwell.internet.productregistration.social) has not been generated and cannot be resolved.
Would appreciate any advice on this error. Alternatively any advice on how Service Builder generates java files and packages, why the package is not being generated and what I should do in the service.xml file to fix this error. My files are as follows (highlighted is the package that's not being resolved):
]PRRegistrationLocalServiceImpl.java
package com.inkwell.internet.productregistration.service.impl;
import java.util.List;
import com.inkwell.internet.productregistration.model.PRRegistration;
import com.inkwell.internet.productregistration.model.PRUser;
import com.inkwell.internet.productregistration.service.base.PRRegistrationLocalServiceBaseImpl;
import com.inkwell.internet.productregistration.social.ProductActivityKeys; <<<< (THIS PACKAGE IS NOT BEING RESOLVED AND DOESN'T EXIST IN THE FOLDER WHERE THE GENERATED PACKAGES ARE)
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.model.User;
import com.liferay.portlet.social.service.SocialActivityLocalService;
import com.liferay.portlet.social.service.SocialActivityLocalServiceUtil;
/**
* <a href="PRRegistrationLocalServiceImpl.java.html"><b><i>View Source</i></b>
* </a>
*
* @author Rich Sezov
*/
public class PRRegistrationLocalServiceImpl
extends PRRegistrationLocalServiceBaseImpl {
/**
* Adds a newly created registration to the database.
*
* @param reg
* @return
* @throws SystemException
*/
public PRRegistration addRegistration(PRRegistration reg)
throws SystemException, PortalException {
PRRegistration registration =
prRegistrationPersistence.create(counterLocalService.increment(PRRegistration.class.getName()));
registration.setCompanyId(reg.getCompanyId());
registration.setDatePurchased(reg.getDatePurchased());
registration.setGroupId(reg.getGroupId());
registration.setHowHear(reg.getHowHear());
registration.setProductId(reg.getProductId());
registration.setPrUserId(reg.getPrUserId());
registration.setSerialNumber(reg.getSerialNumber());
registration.setWherePurchased(reg.getWherePurchased());
// Resources
resourceLocalService.addResources(
registration.getCompanyId(), registration.getGroupId(),
PRRegistration.class.getName(), false);
// Social
// try to get the user from the pruser for social
// there will be no link if the user wasn't logged in
PRUser prUser = prUserLocalService.getPRUser(registration.getPrUserId());
User user = userLocalService.getUser(prUser.getUserId());
if (user != null) {
socialActivityLocalService.addActivity(
user.getUserId(), reg.getGroupId(), PRRegistration.class.getName(), registration.getPrimaryKey(),
ProductActivityKeys.ADD_REGISTRATION, StringPool.BLANK, 0);
}
return prRegistrationPersistence.update(registration, false);
}
/**
* Gets all registrations out of the database.
*
* @return
* @throws SystemException
*/
public List<PRRegistration> getAllRegistrations(long groupId)
throws SystemException {
List<PRRegistration> registrations =
prRegistrationPersistence.findByGroupId(groupId);
return registrations;
}
}
service.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.0.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd">
<service-builder package-path="com.inkwell.internet.productregistration">
<author>Rich Sezov</author>
<namespace>PR</namespace>
<entity name="PRProduct" local-service="true" remote-service="false">
<!-- PK Fields -->
<column name="productId" type="long" primary="true" />
<!-- Other Fields -->
<column name="productName" type="String" />
<column name="serialNumber" type="String" />
<!-- Foreign Keys -->
<column name="companyId" type="long" />
<column name="groupId" type="long" />
<!-- Order -->
<order by="asc">
<order-column name="productName" />
</order>
<!-- Finder Methods -->
<finder name="G_PN" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="productName" />
</finder>
<finder name="GroupId" return-type="Collection">
<finder-column name="groupId" />
</finder>
<finder name="CompanyId" return-type="Collection">
<finder-column name="companyId" />
</finder>
</entity>
<entity name="PRUser" local-service="true" remote-service="false">
<!-- PK Fields -->
<column name="prUserId" type="long" primary="true" />
<!-- Other Fields -->
<column name="firstName" type="String" />
<column name="lastName" type="String" />
<column name="address1" type="String" />
<column name="address2" type="String" />
<column name="city" type="String" />
<column name="state" type="String" />
<column name="postalCode" type="String" />
<column name="country" type="String" />
<column name="phoneNumber" type="String" />
<column name="email" type="String" />
<column name="birthDate" type="Date" />
<column name="male" type="boolean" />
<!-- Foreign Keys -->
<column name="userId" type="long" />
<column name="companyId" type="long" />
<column name="groupId" type="long" />
<!-- Relationships -->
<column name="userRegistrations" type="Collection" entity="PRRegistration" mapping-key="prUserId" />
<!-- Order -->
<order by="asc">
<order-column name="lastName" case-sensitive="false" />
</order>
<!-- Finder Methods -->
<finder name="G_LN" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="lastName" />
</finder>
<finder name="G_E" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="email" />
</finder>
<finder name="G_U" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="userId" />
</finder>
</entity>
<entity name="PRRegistration" local-service="true" remote-service="false">
<!-- PK Fields -->
<column name="registrationId" type="long" primary="true" />
<!-- Other Fields -->
<column name="prUserId" type="long" />
<column name="datePurchased" type="Date" />
<column name="howHear" type="String" />
<column name="wherePurchased" type="String" />
<column name="serialNumber" type="String" />
<column name="productId" type="long" />
<column name="companyId" type="long" />
<column name="groupId" type="long" />
<!-- Finders -->
<finder name="GroupId" return-type="Collection">
<finder-column name="groupId" />
</finder>
<finder name="G_RU" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="prUserId" />
</finder>
<finder name="G_DP" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="datePurchased" />
</finder>
<finder name="G_SN" return-type="Collection">
<finder-column name="groupId" />
<finder-column name="serialNumber" />
</finder>
<!-- References -->
<reference package-path="com.liferay.portlet.social" entity="SocialActivity" />
<reference package-path="com.liferay.portal" entity="User" />
</entity>
</service-builder>
Juan Gonzalez P, geändert vor 11 Jahren.
RE: Service Builder Error - failing to resolve package
Liferay Legend Beiträge: 3089 Beitrittsdatum: 28.10.08 Neueste Beiträge
That package isn't automatically created by Service Builder. You would have to create it manually.
Wole Adetiba, geändert vor 11 Jahren.
RE: Service Builder Error - failing to resolve package
New Member Beiträge: 12 Beitrittsdatum: 09.11.07 Neueste Beiträge
Hi,
I am having similar issues as described above. How do we create this manually as you mentioned?
Thanks
Wole
I am having similar issues as described above. How do we create this manually as you mentioned?
Thanks
Wole
Hitoshi Ozawa, geändert vor 11 Jahren.
RE: Service Builder Error - failing to resolve package
Liferay Legend Beiträge: 7942 Beitrittsdatum: 24.03.10 Neueste Beiträge
I think the topic of this thread has moved to the following site:
https://www.manning-sandbox.com/thread.jspa?threadID=50858&tstart=0&messageID=129601
https://www.manning-sandbox.com/thread.jspa?threadID=50858&tstart=0&messageID=129601