问题标签 [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.
moqui - 如何在文件上传操作中返回 JSON
我正在上传一个文件,一切都很好。我想返回一个定义了主键的 JSON 对象,所以我这样做:
ec.web.sendJsonResponse("{offerId: '${offer.offerId}'}")
它以我的 javascript 接收代码所期望的方式打包东西(因为它是一个文件上传操作),但它像这样包装:
并且“pre”标签使我的“getElementsByTagName”无法找到“textarea”元素。
我知道 WebResource.sendJsonResponse 没有添加它。它将 contentType 设置为 json 并且接收代码正在抱怨,因为它需要一个 DOM 对象(错误>资源解释为 Document 但使用 MIME 类型 application/json 传输:)
我该如何解决这个问题?我想这确实是一个 J2EE 问题,但它可能会发生在 moqui 的其他人身上。
moqui - 在转换到默认响应时传递参数
在默认响应中定义参数时很奇怪
default-response 中定义的参数不会传递给目标 url,如下所示:
在参数映射中定义它们时它也不起作用:
但如果在过渡中添加空操作,它确实有效:
moqui - 在 sendEmailTemplate 中出现错误
我通过将其置于转换中来对 sendEmailTemplate 进行测试:
...
我最终得到了这个错误:java.lang.NullPointerException: Cannot execute null+null at org.codehaus.groovy.runtime.NullObject.plus(NullObject.java:121) ... at org.moqui.impl.context。 WebFacadeImpl.getWebappRootUrl(WebFacadeImpl.groovy:272)
因为 webappName 和 servletContextPath 都是空的。
这来自 sendEmailTemplate (ln 77) 中的文本渲染,因此未设置 webappName,因为它在上面的调用中。
但所有这些都没有抓住重点——我认为。我认为错误在 ScreenUrlInfo (~ln 450) 中:
sri.baseLinkUrl 没有设置,我认为这就是问题所在。sri.baseLinkUrl 应该在哪里设置?
moqui - 如何在 xml-action 脚本中设置布尔值
我正在尝试设置一个标志,所以我做了这样的事情:
但以下行在日志中打印“true”:
设置标志的最佳方法是什么?
moqui - 如何在转换中处理 xml-script 中的错误
如果我尝试在缺少所需输入参数的 xml-script 中调用服务,则会引发 ServiceException,并且调用会以 200 状态返回到浏览器。我不明白我应该如何捕捉错误或以其他方式处理它。在调用服务之前我需要测试完整性吗?为什么不生成并返回 500 级状态?
moqui - 如何扩展 ScreenRender
ScreenRender 在 ScreenFacadeImpl.makeRender 中使用 ScreenRenderImpl 初始化,而 ScreenFacade 在 ExecutionContextFactoryImpl 中初始化。在某些情况下,我想在 ScreenRender 中添加更多可以在宏模板中调用的函数。有没有办法在 ScreenFacade.makeRender 时简单地注入 ScreenRenderImpl 的子类,而不是覆盖 ExecutionContextFactoryImpl 和 ScreenRenderImpl 以及 MoquiContextListener?
在宏模板中获得 sri 支持的真实案例是:
我正在尝试通过列表选项或实体选项或通过 sri.getFieldOptions() 返回的手动选项填充选择选项。但它有点必然会形成字段。我想在非形式上下文中使用。所以我有点想扩展 ScreenRender 以拥有像 sri.getOptions() 这样的功能。
moqui - MOqui 中屏幕之间的转换
我一直在寻找屏幕之间的转换,但无法找到浏览屏幕的最佳做法。在 apps.xml 中制作子屏幕和条目是一种尝试,但它在页面顶部提供了一个链接,这不是我想要的. 我想通过锚标记在 html-5 或更早版本中进行转换。做同样的事情的最佳做法是什么?
moqui - 如何将组件的类目录放在类路径中
我正在我的 src/main/groovy 目录下构建 groovy 类,我构建它们并且 .class 文件位于 build/classes 下,但是当我运行代码时它看不到这些类。
我该怎么做才能看到这些文件?
moqui - 包含子内容时,父屏幕看起来坏了
在编写“使用 Moqui 制作应用程序”一书中的教程时,在“尝试子内容”下的第 1 部分中,我的 tutorial.xml 屏幕如下所示:
位于 url localhost:8080/apps/tutorial/hello.html 的子屏幕按预期工作。当我使用 url localhost:8080/apps/tutorial 转到父屏幕时,我的父屏幕在 hello world 消息之后有一条错误消息,如下所示:
你好世界!尝试在屏幕 [component://tutorial/screen/tutorial.xml] 中渲染子屏幕,但没有 subscreens.@default-item,并且屏幕路径 [[apps, tutorial]] 中没有更多有效的子屏幕名称
这是预期的反应还是我犯了一些错误?我认为,父屏幕不应显示此错误消息。
moqui - 在 Intellij IDE 中添加 Moqui 框架的正确方法是什么
起初(某天),我从命令行练习了 Moqui。现在我想从 Intellij IDEA 开始。所以我在我的项目目录中添加了 Moqui 框架,并在 runtime/lib 目录中添加了所有的 jar 文件。但是当我编译时,它会给我以下错误。
/org/moqui/impl/pollEmailServer.groovy
Error:(27,1) Groovyc: Modifier 'static' not allowed here.
还会产生以下错误。
net.sf.ehcache.CacheException: Unable to load class net.sf.ehcache.store.DefaultElementValueComparator. Initial cause was net.sf.ehcache.store.DefaultElementValueComparator.<init>(net.sf.ehcache.config.CacheConfiguration)
at net.sf.ehcache.util.ClassLoaderUtil.createNewInstance(ClassLoaderUtil.java:100)
at net.sf.ehcache.config.ElementValueComparatorConfiguration.createElementComparatorInstance(ElementValueComparatorConfiguration.java:57)
at net.sf.ehcache.Cache.<init>(Cache.java:797)
at net.sf.ehcache.Cache.clone(Cache.java:2817)
at net.sf.ehcache.Cache.clone(Cache.java:170)
at net.sf.ehcache.CacheManager.cloneDefaultCache(CacheManager.java:1952)
at net.sf.ehcache.CacheManager.addCacheIfAbsent(CacheManager.java:1934)
at net.sf.ehcache.CacheManager$addCacheIfAbsent$1.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.moqui.impl.context.CacheFacadeImpl.initCache(CacheFacadeImpl.groovy:109)
at org.moqui.impl.context.CacheFacadeImpl.getCacheImpl(CacheFacadeImpl.groovy:71)
at org.moqui.impl.context.CacheFacadeImpl.getCache(CacheFacadeImpl.groovy:63)
at org.moqui.context.CacheFacade$getCache.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.moqui.impl.context.renderer.FtlTemplateRenderer.init(FtlTemplateRenderer.groovy:42)
at org.moqui.context.TemplateRenderer$init.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.moqui.impl.context.ResourceFacadeImpl.<init>(ResourceFacadeImpl.groovy:66)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
at org.moqui.impl.context.ExecutionContextFactoryImpl.<init>(ExecutionContextFactoryImpl.groovy:182)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:186)
at org.moqui.impl.webapp.MoquiContextListener.contextInitialized(MoquiContextListener.groovy:44)
at net.winstone.core.WebAppConfiguration.<init>(WebAppConfiguration.java:782)
at net.winstone.core.HostConfiguration.initWebApp(HostConfiguration.java:282)
at net.winstone.core.HostConfiguration.addWebAppConfiguration(HostConfiguration.java:190)
at net.winstone.core.HostConfiguration.<init>(HostConfiguration.java:111)
at net.winstone.core.HostGroup.addHostConfiguration(HostGroup.java:115)
at net.winstone.core.HostGroup.<init>(HostGroup.java:85)
at net.winstone.Server.initialize(Server.java:122)
at net.winstone.Server.start(Server.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at MoquiStart.main(MoquiStart.java:152)
Caused by: java.lang.NoSuchMethodException: net.sf.ehcache.store.DefaultElementValueComparator.<init>(net.sf.ehcache.config.CacheConfiguration)
at java.lang.Class.getConstructor0(Class.java:2849)
at java.lang.Class.getConstructor(Class.java:1718)
at net.sf.ehcache.util.ClassLoaderUtil.createNewInstance(ClassLoaderUtil.java:91)
... 56 more
Error initializing webapp context: net.sf.ehcache.CacheException: Unable to load class net.sf.ehcache.store.DefaultElementValueComparator. Initial cause was net.sf.ehcache.store.DefaultElementValueComparator.<init>(net.sf.ehcache.config.CacheConfiguration)
ERROR 25/08/14 18:51:20.625 [main]: Error during context startup for webapp webapp
net.sf.ehcache.CacheException: Unable to load class net.sf.ehcache.store.DefaultElementValueComparator. Initial cause was net.sf.ehcache.store.DefaultElementValueComparator.<init>(net.sf.ehcache.config.CacheConfiguration)
at net.sf.ehcache.util.ClassLoaderUtil.createNewInstance(ClassLoaderUtil.java:100)
at net.sf.ehcache.config.ElementValueComparatorConfiguration.createElementComparatorInstance(ElementValueComparatorConfiguration.java:57)
at net.sf.ehcache.Cache.<init>(Cache.java:797)
at net.sf.ehcache.Cache.clone(Cache.java:2817)
at net.sf.ehcache.Cache.clone(Cache.java:170)
at net.sf.ehcache.CacheManager.cloneDefaultCache(CacheManager.java:1952)
at net.sf.ehcache.CacheManager.addCacheIfAbsent(CacheManager.java:1934)
at net.sf.ehcache.CacheManager$addCacheIfAbsent$1.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.moqui.impl.context.CacheFacadeImpl.initCache(CacheFacadeImpl.groovy:109)
at org.moqui.impl.context.CacheFacadeImpl.getCacheImpl(CacheFacadeImpl.groovy:71)
at org.moqui.impl.context.CacheFacadeImpl.getCache(CacheFacadeImpl.groovy:63)
at org.moqui.context.CacheFacade$getCache.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.moqui.impl.context.renderer.FtlTemplateRenderer.init(FtlTemplateRenderer.groovy:42)
at org.moqui.context.TemplateRenderer$init.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.moqui.impl.context.ResourceFacadeImpl.<init>(ResourceFacadeImpl.groovy:66)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
at org.moqui.impl.context.ExecutionContextFactoryImpl.<init>(ExecutionContextFactoryImpl.groovy:182)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:186)
at org.moqui.impl.webapp.MoquiContextListener.contextInitialized(MoquiContextListener.groovy:44)
at net.winstone.core.WebAppConfiguration.<init>(WebAppConfiguration.java:782)
at net.winstone.core.HostConfiguration.initWebApp(HostConfiguration.java:282)
at net.winstone.core.HostConfiguration.addWebAppConfiguration(HostConfiguration.java:190)
at net.winstone.core.HostConfiguration.<init>(HostConfiguration.java:111)
at net.winstone.core.HostGroup.addHostConfiguration(HostGroup.java:115)
at net.winstone.core.HostGroup.<init>(HostGroup.java:85)
at net.winstone.Server.initialize(Server.java:122)
at net.winstone.Server.start(Server.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at MoquiStart.main(MoquiStart.java:152)
我想我做错了什么。您能否建议我在 Intellij IDE 中添加 Moqui 框架的正确方法是什么?