【问题标题】:Liferay : Bean Locator has not been setLiferay:尚未设置 Bean 定位器
【发布时间】:2016-02-18 10:42:37
【问题描述】:

我在数据库中有一个现有的表。我已将 service.xml 修改如下:- 服务.xml:-

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.0.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd">
<service-builder package-path="net.test"> 
    <author>pfeffeg</author>
    <namespace>dataaccess</namespace>
 <entity name="test" remote-service="true" local-service="true">
    <column name="PID" type="long"></column>
    <column name="PName" type="String"></column>
    <column name="IID" type="long" primary="true"></column>
    <column name="iName" type="String"></column>
    </entity>
</service-builder>

创建表查询:-

CREATE TABLE [dbo].[dataaccess_test](
 [PID] [bigint] NULL,
 [PName] [varchar](max) NULL,
 [IID] [bigint] NOT NULL,
 [iName] [varchar](max) NULL,
 CONSTRAINT [pk_IdetailidTest] PRIMARY KEY CLUSTERED 
(
 [IID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,             ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

我已经构建了服务构建器。所有类显然都已正确构建。但是当我尝试运行 portlet 时,我得到了一个 Bean Locator 异常。

BeanLocator has not been set
com.liferay.portal.kernel.bean.BeanLocatorException: BeanLocator has not been set
    at com.liferay.portal.kernel.bean.PortletBeanLocatorUtil.locate(PortletBeanLocatorUtil.java:40)

【问题讨论】:

    标签: service liferay


    【解决方案1】:

    您使用的是哪个 liferay 版本?

    请发布整个 service.xml 文件。此错误通常源自 service.xml 文件中的错误。

    【讨论】:

    【解决方案2】:

    感谢 aritzg,我现在可以无错误地执行 portlet。解决方案 - service.xml 中的列名属性应以大写字母开头。看起来很奇怪,但它对我有用。

    服务.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.0.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd">
    <service-builder package-path="net.test"> 
        <author>pfeffeg</author>
        <namespace>dataaccess</namespace>
     <entity name="test" remote-service="true" local-service="true">
        <column name="PID" type="long"></column>
        <column name="PName" type="String"></column>
        <column name="IID" type="long" primary="true"></column>
        <column name="IName" type="String"></column>
        </entity>
    </service-builder>
    

    【讨论】:

      猜你喜欢
      • 2016-01-12
      • 2011-07-15
      • 1970-01-01
      • 2015-02-16
      • 2013-05-19
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多