有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从OFBiz SECA服务返回错误

我正在使用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 service="createProduct" event="commit">
    <action mode="sync" service="checkProduct"/>
</eca>

服务验证程序:

<service name="checkProduct" engine="java" location="mypackage.validation.ValidationServices"
         invoke="checkProduct" auth="true">
        <description></description>
        <attribute name="productId" mode="IN" type="String"/>
</service>

验证服务。爪哇:

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,它将返回消息并附加事务回滚异常消息,然后在屏幕上显示完整字符串。如何仅显示从服务返回的消息


共 (1) 个答案

  1. # 1 楼答案

    1. 首先确保在IDE中正确配置了数据库
    2. 检查数据库的用户名和密码是否正确
    3. 确保您在代码中编写的查询都是正确的
    4. 这确保您上面提到的配置正确
    5. 更新项目的所有依赖项和库
    6. 重新启动服务器并重新启动IDE

    然后重新运行您的项目。它应该运行