无法在 Liferay portlet 应用程序中创建服务构建器

Unable to create a service builder into a Liferay portlet app

我无法在我的 portlet 应用程序中创建适当的 service.xml 来使用服务生成器。

1) 首先,如果我尝试使用 Eclipse IDE: - 右键单击​​项目 - liferay 服务建设者 插件项目 select 框为空,我无法单击完成。我收到 "Enter a project name" 通知。

2) 如果我尝试手动将 service.xml 文件创建到 WEB-INF/ 或 WEB-INF/src 中,内容如下:

<?xml version="1.0"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.2.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd">

<service-builder package-path="com.aveo.openemm.servicebuilder">, 
</service-builder>

该文件只是一个普通的 xml 文件,不作为服务生成器文件。 在 Eclipse 中打开它不提供 "overview" 模式,这将允许我按预期创建和管理我的实体。

该项目是使用 Maven 构建的(以防万一)。

在这个阶段我不知道如何前进。 感谢您的帮助。

使用 Liferay 6.2.1 和 Liferay maven 插件 6.2.10.9

如果您刚开始使用 Maven,那么我建议您使用

开始一个新项目
mvn archetype:generate -DarchetypeArtifactId=liferay-servicebuilder-archetype -DarchetypeGroupId=com.liferay.maven.archetypes -DarchetypeVersion=6.2.10.13 -DgroupId=com.example -DartifactId=Test -Dversion=1.00.000 -DpackageName=com.example -DinteractiveMode=false

用您的信息替换 com.example 和 "Test"。

您的 service.xml 应该位于您的 Test/Test-portlet/src/main/webapp/WEB-INF 文件夹中。它看起来像

<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.1.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_1_0.dtd">

<service-builder package-path="com.example.dao">
    <namespace>example</namespace>

    <entity name="Reservation" uuid="true" local-service="true" remote-service="false">

            <!-- PK fields -->

            <column name="reservationId" type="long" primary="true" id-type="increment" />

            <!-- Audit fields -->

            <column name="userId" type="long" />
            <column name="companyId" type="long" />
            <column name="groupId" type="long" />

            <!-- Other fields -->

            <column name="fileEntryId" type="long" />
            <column name="serialId" type="long" />
            <column name="reserveDate" type="Date" />
            <column name="checkoutDate" type="Date" />
            <column name="checkinDate" type="Date" />
            <column name="indefinite" type="String"/>


            <!-- Order -->

            <order by="asc">
                <order-column name="reservationId" />
            </order>

            <!-- Finder methods -->

            <finder name="ReservationId" return-type="Reservation">
                <finder-column name="reservationId" />
            </finder>

            <finder name="UserId" return-type="Collection">
                <finder-column name="userId" />
            </finder>

            <finder name="FileEntryId" return-type="Collection">
                <finder-column name="fileEntryId" />
            </finder>

            <finder name="UserFile" return-type="Collection">
                <finder-column name="userId" />
                <finder-column name="fileEntryId" />
            </finder>

            <finder name="FileSerial" return-type="Collection">
                <finder-column name="fileEntryId" />
                <finder-column name="serialId" />
            </finder>
    </entity>

</service-builder>

您还需要编辑 Test/pom.xml 并添加以下内容

<properties>
  <liferay.maven.plugin.version>6.2.10.13</liferay.maven.plugin.version>
  <liferay.version>6.2.1</liferay.version>
</properties>

它应该在结束项目标签之前。

然后在你的 Test/ 目录中使用命令行你会 运行

mvn liferay:build-service

您可以从以下内容中了解更多信息:http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/service-builder-liferay-portal-6-1-dev-guide-en .