问题标签 [grails-2.4]
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.
grails - Grails 2.4.2 - package-plugin --binary - 重命名生成的 JAR
我有一个自定义插件,我想将其打包为二进制 JAR。为此,我正在执行如下所示的命令:
grails package-plugin --binary
它成功地生成了具有表单名称的 JAR 文件:
grails-plugin-mycustom-plugin-1.0.jar
我需要知道,如何生成一个名称为以下形式的 JAR 文件:
mycustom-plugin-1.0.jar
非常感谢这方面的任何帮助。
grails - 在 Grails 2.2.0 项目中使用 Grails 2.4.2 插件作为 JAR 依赖项
我有一个使用 Grails 2.4.2 构建的自定义插件,将与多个 Grails 项目一起作为常规 JAR 依赖项使用。我已成功将插件导出为 JAR 并安装到我的本地 Maven 存储库中,并BuildConfig.groovy
在各个父项目的文件的“依赖项”块中添加了相应的依赖项语句。例如:
compile 'my_package:my_custom_plugin:1.0'
其中一个父项目是使用 Grails 2.4.2 构建的。当我使用上述配置运行该项目时grails run-app
,它运行良好,没有任何错误。
但是,当我在另一个使用 Grails 2.2.0 构建的项目中进行相同类型的配置并使用 command: 运行它时grails run-app
,会出现以下错误:
Error | Fatal error during compilation org.apache.tools.ant.BuildException: java.lang.NoClassDefFoundError: org/grails/datastore/mapping/dirty/checking/DirtyCheckable (Use --stacktrace to see the full trace)
注意:当我使用以下语句将相同的插件添加为插件而不是 JAR 依赖项时,这两个父项目都运行良好BuildConfig.groovy
:
grails.plugin.location."my_custom_plugin" = "../my_custom_plugin/"
有人可以指导我如何解决这个问题吗?
任何帮助将不胜感激。
mongodb - 通过 Grails 域标准在活动光标中发现 Mongo CursorNotFound 异常
我使用远程数据库连接使用 Grails 2.4.4、mongo 插件 3.0.2、MongoDB 2.4.10。
在我们应用程序的一部分中,一个服务方法会迭代超过 20,000 个用户并向他们发送电子邮件:
在为大约 6000 个用户执行此操作后,我得到了一个 MongoDB 游标异常:
我查找了文档,发现游标在 20 分钟内自动关闭,当我用日志确认它时,这个异常正好在 20 分钟后出现。
但是这种在 20 分钟内自动关闭的行为适用于非活动游标,但这里游标是活动的。
更新:
我阅读了一些文章,发现这可能是 TCP keepalive 超时的问题。所以我们将 TCP keepalive 超时时间从默认的 2 小时改为 2 分钟,但还是没有解决问题。
grails - 升级到 Grails 2.4:ClassNotFoundException:org.springframework.web.filter.GenericFilterBean
我正在尝试将应用程序从 2.3.11 升级到 Grails 2.4.5。我似乎无法让它发挥作用。我使用 Spring Security Core 和 Spring Security REST 插件。尝试运行应用程序时,抛出此异常,表明 Spring Security Core 作为源:
为什么找不到 GenericFilterBean 类?Spring 安全插件表明它与 Grails 2.4 兼容。
插件包含在 BuildConfig.groovy 中,如下所示:
unit-testing - 在 grails 中对 RestfulController 进行单元测试时,默认索引操作的奇怪行为
使用 grails 2.4.4(和 2.4.5)我创建了以下微型应用程序。
然后编辑 Book.groovy 看起来像
然后添加了一个基本的Controller
并修改控制器以扩展 RestfulController。
连接 UrlMappings 以将书籍作为 /api/books 的资源提供。
最后但并非最不重要的一点是,在 BootStrap.groovy 中编写了几本书。
然后grails run-app
一切看起来都很好。example.Book 控制器显示在索引页面中。三本书可以查看为json或xml。
所以现在进行单元测试。
编辑 BookControllerSpec 使其看起来像这样
第一个测试通过,第二个测试失败。失败测试中 println 的输出是一个空的 xml 书籍列表。
<?xml version="1.0" encoding="UTF-8"?><list />
在调查发生了什么时,我查看了父类(RestfulController)的索引方法。
通过将该方法复制到 BookController 中,单元测试将开始通过。
-- 新版 BookController 复制索引方法 --
那么,为了让 RestfulController 的 index 方法工作而不必将 index 方法复制到 BookController 中,我还需要添加什么到 Spec 中吗?
知道为什么调用listAllResources
直接从 BookController 执行时有效,但从 RestfulController 执行时不返回任何行。
上面的单元测试是 Grails In Action 书中描述的其余单元测试的修改版本,它是为 grails 2.3 编写的。 http://www.manning.com/gsmith2/
grails - 不在视图主目录中搜索 grails 模板
我有一个用于渲染的模板:
在我的主要布局中。(布局/main.gsp)。
那是一个模板,我的一些视图需要它,而一些视图不需要。
对于不需要该模板的视图,我在顶层视图目录 (/grails-app/views) 中放置了一个名称为空的文件。如 grails 文档中所述:
它适用于在自己的视图目录中具有模板文件的视图(例如/grails-app/views/address)。但它不起作用,grails 应该在 /grails-app/views 级别搜索模板。
我是否从文档中理解了错误,或者我的代码中有错误?
我的文件/目录结构如下所示:
地址视图需要一个自定义的 _recordInfo 模板,而联系人视图不需要它(因此我认为 grails 会选择 MyApp/grails-app/views 目录中的那个...)
grails - 带有两个连续斜杠的 Grails 2.5.0 UrlMappings
我继承了UrlMappings
我正在尝试升级到 2.5.0 的 Grails 2.2.4(部分转载如下)。
命名映射api0
&工作,但(between & )api2
中的两个连续斜杠似乎在 2.5.0 中没有正确匹配(尽管它们在 2.2.4 中匹配)。例如:api1
$controller
$id
PUT /api/ticket//123.json
尽管我的控制器允许 PUT 用于其更新操作,但仍返回 403。
我无法更改传入的 URL 和/或 HTTP 方法(并且我没有创建它们),所以请不要告诉我更改客户端以用单斜杠替换 URL 中的双斜杠,或者 URL和/或 HTTP 方法不遵循 REST 范例。
grails - 如何在用于运行脚本的脚本中访问 taglib?
如何在用于 grails 命令行运行脚本的脚本中访问 ApplicationTagLib?
如果有人想知道用例是什么
当我试图创建一个脚本来生成用于 javascript 文件的 json 文件(包含指向控制器和操作的链接)时,出现了这个问题。https://stackoverflow.com/questions/30763227/how-to-use-urls-rendered-as-javascript-variables-during-jasmine-unit-tests中的更多信息
我正在考虑g.createLink
在这个脚本文件中使用,但找不到如何在脚本文件中使用标签库。
grails - 如何在从数据表外部更改复选框时更新服务器端数据表
我正在使用带有 Grails 的数据表。我在数据表之外有一个复选框,并且在其事件中我想使用复选框值再次加载表。以下是我的尝试:
在我看来复选框在哪里>>
这是我在调用服务器方法时的尝试>>
这是我的 setWrapActiveStatus() 函数>>
这是我的控制器动作>>
我的操作是响应良好的仅包装列表,但数据表不更新。
编辑 - 数据表初始化
grails - @Resource 正在创建阴影我自己的控制器的控制器
为了呈现 JSON+HAL @Resource
,我在我的域中添加了注释:
问题是我已经拥有BookController
(没有脚手架)并且通过 gsp 标签(<g:createLink controller='book' />
)创建 ling 总是会创建指向/rest/book
不指向控制器中特定操作的链接(即/book/index
)。当我输入localhost:8080/book/index
它显示 JSON 响应而不是 gsp 页面时,也值得知道。
不知何故涵盖了图书控制器,@Resource
我不知道如何让它们都工作。
PS我正在使用Grails 2.4.4