我定义了一个这样的服务 xml:
<service verb="targetExample">
<in-parameters><parameter name="testInput"/></in-parameters>
<out-parameters><parameter name="testOutput"/></out-parameters>
<actions>
<set field="testOutput" value="Input was: ${testInput}"/>
<log level="info" message="targetExample testOutput: '${testOutput}'"/>
</actions>
</service>
我很好奇是否有机会在不添加转换来包装它的情况下调用它。我试图尊重服务命名 ${path}.${verb}#${noun} 但徒劳,我无法在不定义以下转换的情况下调用它。
<transition name="localExample">
<service-call name="moqui.example.ExampleServices.targetExample" web-send-json-response="true"/>
<default-response type="none"/>
</transition>
此外,我还想知道是否有人设法用 java 而不是 groovy 实现服务(我在文档中读到这是可能的)。 我要求的是以下定义中的 test.java 文件的工作示例:
<service verb="targetJavaExample" type="java"
location="component://example/src/orq/moqui/example/test.java">
<in-parameters><parameter name="testInput"/></in-parameters>
<out-parameters><parameter name="testOutput"/></out-parameters>
</service>
最佳答案
任何服务也可以从任何<actions>
内部调用。屏幕 xml 中定义的标签。例如节的开头,表单的开头( <row-actions>
),嵌入到各种文件中,或放入自己的文件中并像脚本一样运行等。
在服务中,当定义服务调用的“操作”时,您可以随时使用<script>... </script>
下拉到Groovy/Java。 。 - XML 操作中始终存在这种情况。 (或者 <script><![CDATA[... ]]></script>
如果您有可能被解释为 XML 标记的字符。)
希望有帮助。
关于java - 是否可以调用服务而不将其包装在转换中?有人用Java成功实现过吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45142869/