我正在使用seca
来验证数据库中字段的值。如果字段值与所需字符串不匹配,则会使用ServiceUtil.returnError(String);
使用ServiceUtil.returnError("Some error messages.")
时。 OFBiz显示错误消息
The Following Errors Occurred:
Error calling event: org.ofbiz.webapp.event.EventHandlerException: Service invocation error (No transaction manager or invalid status)
我想只显示我在ServiceUtil.returnError
方法中传递的错误消息字符串。我该怎么做?我错过了什么吗?示例代码如下:
服务eca:
<eca service="createProduct" event="commit">
<action mode="sync" service="checkProduct"/>
</eca>
service_validator:
<service name="checkProduct" engine="java" location="mypackage.validation.ValidationServices"
invoke="checkProduct" auth="true">
<description></description>
<attribute name="productId" mode="IN" type="String"/>
</service>
ValidationServices.java:
public static Map<String, Object> checkProduct(DispatchContext dctx, Map<String, ?> context) {
String productId = (String) context.get("productId");
if (productId.equals("Not my product")); {
ServiceUtil.returnError("Not my product");
}
ServiceUtil.returnSuccess();
}
注意:如果我将SECA的事件更改为in-validate,它将返回消息并附加事务回滚异常消息,然后完整的字符串在屏幕中显示。如何仅显示已从服务返回的消息?
答案 0 :(得分:0)
然后重新运行您的项目。它应该运行。