我有一個「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