当你这样做时grails create-app,它看起来不像是web.xml在任何地方生成的.根据最新的文档,听起来像运行grails install-templates将放在web.xml您的src/templates/war目录中.关于这个的一些问题:
web.xml和修改它的方式吗?web.xml(例如添加servlet过滤器)实际上会覆盖并在应用程序运行时生效吗?我有一个可以从HTTP URL下载的JAR,比如说http://somerepo.example.org/myjar-1.0.jar.
我需要一个cURL命令,将其下载到当前目录; 我迄今为止的最佳尝试是:
curl -i -H "Accept: application/zip" -H "Content-Type: application/zip" -X GET http://somerepo.example.org/myjar-1.0.jar
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我的控制台充满了二进制垃圾邮件,似乎导致我的整个终端崩溃了.
从远程URL获取JAR的正确cURL命令是什么?
我有以下项目目录结构:
myapp/
grails-app/ (its a grails app, derrrr)
target/
myapp.jar (built by grails)
myapp.yml
Run Code Online (Sandbox Code Playgroud)
... target/myapp.jar可执行JAR(实际上是运行嵌入式Jetty的自包含Web应用程序)在哪里myapp.yml,启动时需要的配置文件在哪里.
这是我的Dockerfile:
FROM java:8
MAINTAINER My Name <myname@example.com>
WORKDIR /
ADD ./target/myapp.jar /myapp.jar
ADD ./myapp.yml /myapp.yml
EXPOSE 8080
CMD ["java", "-jar myapp.jar myapp.yml"]
Run Code Online (Sandbox Code Playgroud)
然后我用它构建图像docker build -t myapp ..它成功构建我然后尝试运行图像docker run myapp并获取:
Unrecognized option: -jar myapp.jar myapp.yml
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Run Code Online (Sandbox Code Playgroud)
知道这里可能出现什么问题,以及我需要做些什么来解决这个问题或排除故障?
我有一个Map<String,Integer>条目(键)需要按降序的顺序排序.例如,如果地图如下所示:
"a" => 5
"b" => 3
"c" => 12
"d" => 9
Run Code Online (Sandbox Code Playgroud)
排序后需要看起来像:
"c" => 12
"d" => 9
"a" => 5
"b" => 3
Run Code Online (Sandbox Code Playgroud)
迄今为止我最好的尝试:
def test() {
Map<String,Integer> toSort = new HashMap<String,Integer>()
toSort.put("a", 5)
toSort.put("b", 3)
toSort.put("c", 12)
toSort.put("d", 9)
Map<String,Integer> sorted = sortMapDesc(toSort)
sorted.each {
println "${it.key} has a value of ${it.value}."
}
}
def sortMapDesc(Map<String,Integer> toSort) {
println "Sorting..."
println toSort
// The map of properly sorted entries.
Map<String,Integer> sorted = …Run Code Online (Sandbox Code Playgroud) 我有以下驱动程序/主类封装我的Akka程序:
// Groovy pseudo-code
class FizzBuzz {
ActorSystem actorSystem
static void main(String[] args) {
FizzBuzz d = new FizzBuzz()
d.run()
}
void run() {
Initialize initCmd = new Initialize()
MasterActor master = actorSystem.get(...)
// Tells the entire actor system to initialize itself and start doing stuff.
// ChickenCluckDetector is an actor managed/supervised by MasterActor.
master.tell(initCmd, ...)
}
// Called when a ChickenCluckDetector actor inside the actor system receives
// a 'Cluck' message.
void onChickenGoesCluck(Cluck cluck) {
// Do something
} …Run Code Online (Sandbox Code Playgroud) 我正在进入Docker,并试图更好地了解它在"现实世界"中的运作方式.
在我看来,在实践中:
Docker是否附带内置命令来处理这些命令?如果没有使用什么工具/策略来完成它们?另外,当我构建一个Docker镜像时(例如,通过docker build -t myapp .),生成了什么文件类型以及它在机器上的位置?
Java 8在这里.
假设有一个旧版本的widgetlibray,带有Maven坐标widgetmakers:widget:1.0.4,其中有一个类,如下所示:
public class Widget {
private String meow;
// constructor, getters, setters, etc.
}
Run Code Online (Sandbox Code Playgroud)
岁月流逝.这个widget库的维护者决定一个事实上Widget应该永远不meow应该bark.因此,新版本发布,Maven坐标widgetmakers:widget:2.0.0和Widget看起来像:
public class Widget {
private Bark bark;
// constructor, getters, setters, etc.
}
Run Code Online (Sandbox Code Playgroud)
所以现在我去构建我的应用程序myapp.而且,想要使用我所有依赖项的最新稳定版本,我声明我的依赖项就像这样(在里面build.gradle):
dependencies {
compile (
,'org.slf4j:slf4j-api:1.7.20'
,'org.slf4j:slf4j-simple:1.7.20'
,'bupo:fizzbuzz:3.7.14'
,'commons-cli:commons-cli:1.2'
,'widgetmakers:widget:2.0.0'
)
}
Run Code Online (Sandbox Code Playgroud)
现在,让我们说,这(虚构的)fizzbuzz图书馆总是对的1.x的版本取决于widget图书馆,在那里Widget会meow.
所以现在,我widget在我的编译类路径上指定了两个版本:
widgetmakers:widget:1.0.4fizzbuzz作为它的依赖,它被图书馆所吸引; 和 …java conflicting-libraries dependency-management gradle transitive-dependency
我刚刚发现了Speedment,一个基于Java 8 Stream的OR/M库,并且不得不说我喜欢它的想法.没有更疯狂的配置或花费时间筛选900页的休眠文档来找到正确的方法来注释我的类:Speedment只是读取您的数据库,为您生成Java类并为您提供基于流的API来运行针对它们的DDL语句.邪恶酷.
然而,一个大大忌是,它看起来像你必须使用Speedment UI来配置你的数据库连接.此外,文档似乎没有具体说明如何执行以下操作:
等等.在GitHub上,我似乎无法找到代码如何从UI连接在一起以生成配置对象.只是想知道是否有办法配置Speedment没有UI(可能通过JSON或YAML),如果是,可以使用哪些配置.
我正在阅读Docker Secrets,并继续阅读Docker的人故意选择将秘密存储在文件中,/run/secrets而不是使用环境变量.但无处我就一直能够找到一个解释,为什么.
所以我问:为什么使用Docker Secrets机制比将环境变量注入我的容器(via -e或a --env-file)更安全?