Исключение нулевого указателя, когда я пытаюсь создать сервисы LifeRay с помощью ServiceBuild - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть класс "ECLocalDataService.java".Я пытаюсь создать его как локальный сервис liferay, чтобы я мог получить к нему доступ из всех портлетов и шаблонов скорости с помощью ServiceLocator.findService ().

Мой 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>

Теперь после этого, когда я нажимаю значок "BuildServices"в Liferay Dev Studio выдает исключение NullPointer.Он даже не показывает, для какого объекта он нашел NullPointer, нет сообщений об ошибках или сообщений журнала, просто отображает исключение NullPointerException, и служба не создается.

Ответы [ 2 ]

1 голос
/ 05 апреля 2012
<entity name="ECDataLocalService" local-service="true" remote-service="false" human-name="ECDataLocalService"></entity>

В настоящее время в вашем примере кода есть только один элемент. У него нет столбцов, и столбцы первичного ключа не определены. Генерация кода не может работать в этих условиях.

0 голосов
/ 28 декабря 2011

Ant-задача build-services предназначена для создания сервиса из service.xml, который определяет таблицу или таблицы. Затем он генерирует весь код Java для вас. Нет необходимости сначала создавать файлы Java, на самом деле я не думаю, что это сработает.

Я бы прочитал эту вики-статью Liferay, и это поможет вам в этом.

http://www.liferay.com/community/wiki/-/wiki/Main/Service+Builder

После того, как вы получите полученный файл службы, поместите его в ваш путь к классу tomcat, чтобы другие портлеты могли получить доступ к службе.

...