「ECLocalDataService.java」クラスがあります。ServiceLocator.findService() を使用してすべてのポートレットと速度テンプレートからアクセスできるように、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」アイコンをクリックすると、NullPointer 例外がスローされます。どのオブジェクトに対して NullPointer が検出されたかは表示されず、エラー メッセージやログ メッセージも表示されず、NullPointerException が表示されるだけで、サービスは構築されません。