当我在 Hybris 中本地化枚举类型时,如何解决 java.lang.IllegalStateException?
Posted
技术标签:
【中文标题】当我在 Hybris 中本地化枚举类型时,如何解决 java.lang.IllegalStateException?【英文标题】:How to resolve java.lang.IllegalStateException when I'm localizing an enumtype in Hybris? 【发布时间】:2021-08-29 01:47:56 【问题描述】:我在 trainingcore-items.xml 中定义了一个 ServiceType 枚举类型和 Service itemtype。
<typegroup name="Services">
<itemtype code="Service" autocreate="true" generate="true">
<deployment typecode="23456" table="Service"/>
<attributes>
<attribute qualifier="code" type="localized:java.lang.String" autocreate="true"
generate="true">
<persistence type="property"/>
<description>Service Code</description>
<modifiers unique="true" read="true" write="true"/>
</attribute>
<attribute qualifier="serviceType" type="localized:ServiceType" autocreate="true"
generate="true">
<persistence type="property"/>
<description>Service Type</description>
<modifiers read="true" write="true"/>
</attribute>
<attribute qualifier="years" type="localized:java.lang.Integer" autocreate="true"
generate="true">
<persistence type="property"/>
<description>Service Years</description>
<modifiers read="true" write="true"/>
</attribute>
</attributes>
</itemtype>
</typegroup>
<enumtype code="ServiceType" autocreate="true" generate="true" dynamic="true">
<value code="Basic"></value>
<value code="BasicOnsite"></value>
<value code="Advanced"></value>
</enumtype>
我已在相应文件中提供了本地化值: trainingcore_locales_en.properties:
type.Service.name=Service
type.Service.code.name=code
type.Service.serviceType.name=serviceType
type.Service.years.name=years
type.ServiceType.name=ServiceType
type.ServiceType.Basic.name=Basic
type.ServiceType.BasicOnsite.name=BasicOnsite
type.ServiceType.Advanced.name=Advanced
type.ProductServiceRelation.name= ProductServiceRelation
但是当我运行 ant clean all 时,构建失败并且我得到这个错误:
java.lang.IllegalStateException: invalid descriptor Service.serviceType(localized:ServiceType):((trainingcore))::YAttributeDescriptor[trainingcore-items.xml:190(AttributeTagListener)][PROPERTY] due to missing type 'localized:ServiceType'
请帮我解决这个错误。
【问题讨论】:
我认为这与您的其他问题有关-> ***.com/questions/67946399/… 我添加了一个新答案。随意接受新的答案。如果我的假设是正确的,那么你可以关闭这个关于“localized:ServiceType”的问题。 我应该从 type="localized:ServiceType" 中删除本地化吗? 是的,改成type="ServiceType"
是的,它奏效了。谢谢!
【参考方案1】:
这个问题和你的另一个问题有关:How to localize a custom type created in trainingcore-items.xml in Hybris?
只需将type="localized:ServiceType"
更改为type="ServiceType"
即可。
【讨论】:
以上是关于当我在 Hybris 中本地化枚举类型时,如何解决 java.lang.IllegalStateException?的主要内容,如果未能解决你的问题,请参考以下文章
在 hybris 中使用 MemberOf Groups 的用户访问权限
Hybris 如何获取 Backoffice 中属性的标签?