"ECLocalDataService.java"クラスがあります。私はServiceLocator.findService()を使用して、すべてのポートレットと速度テンプレートからアクセスできるように、ライフラインのローカルサービスとして構築しようとしています。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);
}
とその実装クラスは、このようなものです:
私は私のservice.xmlをして私のECDataLocalServiceを登録しているimport com.rosettastone.service.base.ECDataLocalServiceBaseImpl;
public class ECDataLocalServiceImpl extends ECDataLocalServiceBaseImpl {
public float getPriceBySKU(String sku) {
float price = 125.99f;
return price;
}
}
<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