我有一个“ECLocalDataService.java”类。我试图将它构建为liferay本地服务,以便我可以使用ServiceLocator.findService()从所有portlet和velocity模板访问它。当我尝试使用servicebuilder构建liferay服务时出现空指针异常
我ECLocalDataService有点像这样:
public interface ECDataLocalService {
public java.lang.String getBeanIdentifier();
public void setBeanIdentifier(java.lang.String beanIdentifier);
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public float getPriceBySKU(java.lang.String sku);
}
其实现类是这样的:
import com.rosettastone.service.base.ECDataLocalServiceBaseImpl;
public class ECDataLocalServiceImpl extends ECDataLocalServiceBaseImpl {
public float getPriceBySKU(String sku) {
float price = 125.99f;
return price;
}
}
我已经注册了我的ECDataLocalService在我service.xml中
<service-builder package-path="com.rosettastone">
<author>rajeshp</author>
<namespace>mycompany</namespace>
<entity name="ECDataLocalService" local-service="true" remote-service="false" human-name="ECDataLocalService"></entity>
</service-builder>
在此之后,当我点击Liferay Dev Studio中的“BuildServices”图标时,它会抛出N ullPointer异常。它甚至没有显示它找到了NullPointer的对象,也没有显示错误消息或日志消息,只是简单地显示NullPointerException并且服务没有生成。
你可以在调试器中运行它吗? –
您的实体没有列,也没有主键列。添加完这些之后,我建议您从命令行运行ant-task:ant build-service。然后通过堆栈痕迹。 – knb