问题标签 [moqui]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
453 浏览

moqui - Moqui 中的多租户

Moqui 框架如何处理多租户?Moqui 的方法是否类似于 Apache OFBiz?Ofbiz 为每个租户提供单独的数据库。Moqui 是一个强大的框架,它继承了 OFBiz 的许多优点并进行了许多改进。处理多租户是否有任何改进?是否有任何示例多租户应用程序(HiveMind 或示例应用程序)

我正在评估一个 webapp 的框架,该框架具有较小的数据库交互(只有 10 到 20 个表),它应该为 100 个或更多客户提供服务。为单独的租户拥有单独的数据库变得很难证明这样一个较小的应用程序是合理的。有什么建议用 Moqui 处理这个问题吗?一种选择是在此应用程序中的每个实体中创建一个字段名称tenant_id,并且每当执行数据库操作时,每个数据库查询都应该检查该字段。

0 投票
1 回答
54 浏览

moqui - 跨越多个实体的表单

我正在尝试创建一个创建产品并添加 SKU 的单一表单,但到目前为止我还没有找到可以帮助我的示例。

我正在尝试构建的是一个表单,其中包含三个文本行/区域字段供用户输入的值,而我能够正确保存 productName 的值和描述,而 idValue 不出所料地不会保存。我尝试在字段名称中包含完整的实体路径,但这也不起作用。

任何对现有示例的建议或指示将不胜感激!

0 投票
1 回答
201 浏览

moqui - 如何在转换中处理 Moqui 中的 JSON 响应?

我实际上正在对从 AngularJS 的转换进行 JSON-RPC 调用。由于请求的内容类型是application/json,因此输入参数会自动在上下文中可用,因此我不需要显式处理它。

这是我对“教程”组件中的“getUsers”的请求。

转换的代码写在下面

服务看起来像这样

现在发送我ec.web.sendJsonResponse(userList)在服务本身中编写的 JSON 响应。这使得服务与期望 JSON 作为响应的服务调用紧密耦合。如果我想在内部调用此服务,即在 Moqui 中,我将不得不定义另一个服务。

所以我的问题是我可以在进行此服务调用的过渡中处理此响应吗?

0 投票
0 回答
67 浏览

moqui - 在moqui中处理错误页面的正确方法是什么

为了将用户重定向到错误页面,我在 web.xml 中添加了 401(未经授权)错误代码的条目。但我觉得不正确。因为,我在框架中的 web.xml 中添加了以下代码。

而且,如果我的应用程序中有多个组件,并且我想在不同的错误页面上重定向到与每个组件相同的错误代码,该怎么办。请指导我如何实现同样的目标?

提前致谢。

0 投票
2 回答
647 浏览

postgresql - Moqui 1.4.1 Postgresql 配置

我正在尝试启动并运行 Moqui 1.4.1 版本,但使用 Postgres 作为数据库平台。这是平台的详细信息。


  • Ubuntu 12.04
  • 使用 JDBC 驱动程序 postgresql-9.3-1102.jdbc41.jar 的 Postgres 9.4(位于 /runtime/lib。希望这是正确的位置)

首先,我在任何地方都找不到 MoquiDefaultConf.xml,所以我认为这仅适用于开发?

在 runtime/conf 下,我有 MoquiDevConf.xml、MoquiDevTestConf.xml、MoquiProductionConf.xml、MoquiStagingConf.xml。在所有四个中,我添加了以下实体外观条目。

问题:

当我运行 gradle load 时,加载目标

  1. 创建了一堆我不理解的 derby 数据库,因为它现在是为 Postgres 配置的。
  2. enumeration_typeenumeration是在 Postgres 中创建的。

然后这个过程卡住了。

这是该点的输出。

所以 Bitronix 对某事不满意。

如果我终止加载并重新启动,那么它会创建下一个表geo,然后再次卡住,尽管这一次,它没有显示 Bitronix 警告。

帮助表示赞赏。

回应答案的附加信息

我下载这个是为了评估功能,所以我只想运行应用程序而不是扩展它。正如您所指出的,这仅包含预构建的 WAR 文件。但是,如果我浏览 WAR 文件的内容,我找不到 MoquiDefaultConf.xml 文件。事实上,整个 WAR 文件中唯一的 XML 文件就是 web.xml。

发现这一点并阅读了书中有关设置的章节后,我在 Google 上搜索了 MoquiDefaultConf.xml 并在 github 上找到了该文件。然后,我从中复制了数据源元素,并简单地将其粘贴到所有列出的 Moqui*Conf.xml 的实体外观中,以确保它被拾取....它最终做到了,但出现了停止问题。我尝试了两个内联 jdbc 选项;一次是带有 xa-properties 标签的,一次是没有的。

对不起。我来自微软背景,所以这对我来说有点陌生,但在我的辩护中,我在技术上能够通过像这样摸索来启动和运行 OFBiz。

更新

好的。进步。

原来我使用 postgresql-9.3-1102.jdbc4.jar 驱动程序运行 Postgres 9.1 而不是 9.4(哎呀。Linux noob)。不确定这是否导致停止,但我使用 postgresql-9.3-1102.jdbc41.jar 驱动程序升级到 Postgres 9.4,并且停止仍在发生。

大卫,您正确地指出了缺少的 startup-add-missing 和 runtime-add-missing 属性。发生这种情况的原因是因为我最初试图将数据源元素从 OFBiz 等效项拼凑在一起,当我最终在网上找到 MoquiDefaultConf.xml 时,我只将 inline-jdbc 元素复制到我从 OFBiz 使用的数据源元素中并没有t 复制整个数据源元素。愚蠢的。无论如何,在仅将数据源元素添加到 MoquiDevConf.xml 和“gradle load”之后,在 Postgres 中创建了 91 个表,因此构建成功完成......好吧。

一个名为 MoquiDEFAULT 的 derby 数据库仍会在 db 文件夹的 derby 文件夹中创建。我可以确认 webapp 正在与 Postgres 对话,因为我在示例网格中创建了一个条目,它出现在 Postgres 的示例表中。我不太了解内部结构,无法知道查询是否在 derby 数据库上重复。

最后,在使用消除过程之后,我确定构建使用的是 MoquiDevConfig.xml 而不是 MoquiProductionConf.xml。即,当我将数据源仅放在 MoquiProductionConf.xml 实体外观元素中时,它没有任何效果,并且仅在 derby 中创建表(嗯...超过 100 个 .dat 文件),而在 Postgres 中则没有。这很令人困惑,因为 MoquiInit.properties 只引用 MoquiProductionConf.xml。我可以确认使用 MoquiDevConfig.xml 生成的 .dat 文件比 MoquiProductionConf.xml 少 20 个左右。我对 Gradle 构建文件知之甚少,不知道要更改什么。

MoquiDevConf.xml

0 投票
1 回答
70 浏览

moqui - 限制未经授权的用户对屏幕转换的访问

我想限制未经授权的用户访问屏幕转换。

这就是我所做的:

1)我创建了用户组并将某些用户添加到这些用户组中。2) 我还创建了某些 ArtifactGroups。3) 通过“ArtifactAuthz”实体将用户组与 ArtifactGroups 相关联。4) 使用 ArtifactGroupMember 将某些工件添加到 ArtifactGroups。

我能够限制/允许访问屏幕工件,但不能限制对屏幕转换的访问。

准备数据以将屏幕转换工件添加到工件组中。

我怀疑,我没有使用正确的 artifactName。我还尝试查找屏幕转换的示例数据,但找不到任何数据。请提供示例数据以将屏幕转换添加到工件组中。提前致谢。

0 投票
2 回答
203 浏览

moqui - 添加第二个 webapp

我正在努力在 Moqui 建立一个公共网站,我试图将 (dev-)www.example.net 作为公共营销网站和注册表单。然后是 [tennant-name].example.net 上的租户,我已经设置了一个基本组件,然后编辑了 MoquiDevConf.xml,修改了 webapp-list 如下所示:

我已重新启动应用程序以使更改生效,但当我尝试访问http://dev-www.example.net:8080/时得到的只是错误 500

据我所知,Moqui 正在找到我在日志中看到的组件:

非 dev-www 主机仍然可以工作,我得到了惯用的登录屏幕,所以我不确定我缺少什么,因为这几乎是现有 webroot 的直接副本?

谢谢你的帮助!山姆

0 投票
1 回答
108 浏览

moqui - What is the basic procedure to call a service in a transition?

I would like to know the difference between calling a service in a transition directly like

and calling a service inside actions tag like

How the web parameters are handled in both the cases?

When I am sending a map of arrays in JSON, using AngularJS as input parameters they were getting parsed differently for both the cases.

When the service-call was inside or outside the actions tag the paremeters were being parsed differently for both the cases.

The elements in the list would contain an extra space for the service outside the action tags.

So is it supposed to work this way?

0 投票
0 回答
77 浏览

moqui - 为什么消息没有像错误消息一样添加到 Json 响应中

如果我在调用任何服务时使用'web-send-json-response="true"',它会使用 WebFacadeImpl.groovy 的 sendJsonResponse(Object responseObj) 方法返回 json 响应。如果“eci.getMessage().hasError()”为真,它将向 json 响应添加“错误”。但是,Json Response 中没有添加消息有什么原因吗?

因为我愿意在 json 响应中有消息,所以我在 sendJsonResponse() 方法中添加了几行。我添加了几行以将消息添加到 json 响应的代码块:

它工作正常,我在 json 响应中收到消息。

0 投票
0 回答
67 浏览

liquibase - Moqui 中的数据库迁移如何工作?

假设 Moqui 的一个实例已经投入生产,例如其中有客户数据并且有几个租户,那么升级数据库的标准做法是什么,例如从Mantle 的一个版本到下一个版本,以及这一切如何与 Liquibase 关联?