Tag: docker

嵌入式Jetty和复杂日志记录

Jetty 9用于嵌入式服务器,一切运行良好。 剩下的一件事是记录问题。 在此之前,mvn:jetty-run带有自己的日志记录设置并登录到控制台。 这有利于发展。 在生产环境中,我们需要更特别的东西。 目前在初创公司SLF4J抱怨说,没有绑定可用,所以我们可以自由选择。 这就是我们想要存档的内容: 如果我们在非生产环境中启动,我们需要登录到控制台。 在生产环境中,日志记录应该在一个日志文件中完成,但是每天使用命名模式完成:logs / logname-date.log(例如logs / application-20130926.log) 我们使用命令行参数’-production’来区分生产模式和非生产模式。 由于jetty服务器是嵌入式的,我希望有一个解决方案,我们可以完全配置记录器,而无需管理xml或属性文件,使得日志配置方面脱离了部署过程。 那么我们有什么选择?我们如何以最佳方式做到这一点? 更新 :似乎退回是可行的方法。 它支持日志文件轮换,还可以使用控制台输出。 剩下的难题是如何以编程方式执行此操作而无需其他文件。

请求Content-Type为gzip时,Jetty会响应400 Bad Request

在Jetty 9.3.0.v20150612上运行的Spring MVC Java 1.8.0_45-b14后端适用于未压缩的请求,但无法接受压缩的请求。 我在这里遵循了Gzip Handler配置说明,确保它们也支持POST请求。 虽然它没有说这种配置完全适用于请求……但它可能仅用于响应。 etc / jetty-gzip.xml – GET POST /* 在web.xml中 – GzipFilter org.eclipse.jetty.servlets.GzipFilter mimeTypes text/html,text/plain,text/xml,application/xhtml+xml,text/css,application/javascript,image/svg+xml,application/json minGzipSize 500 GzipFilter /* Android客户端会发生这种情况,并且还会使用HTTP客户端应用程序(Paw)进行重现,这是一个请求示例 – POST /report?v=1 HTTP/1.1 Content-Encoding: gzip Content-Type: application/json Host: 10.0.0.1:8080 Connection: close User-Agent: Paw/2.2.2 (Macintosh; OS X/10.10.4) GCDHTTPRequest Content-Length: 5845 xí\MÇuÝûWÔE(É`_¦(<EtD&)%:¦OTè.EôÔU53¬¼ð"ÇYfÆ'®ì/áÿʽ¯ª r(ʲä#èúz÷Ý÷^5èýR;Úå;ÕÎÿöºÊuW«ß«v«ß¿ø³:VÕ)Õ .. BINARY … 回应 – HTTP/1.1 400 […]

SolrJetty日志记录 – 如何使自定义日志格式化程序工作?

我在Jetty 6上运行的Linux上有一个Solr服务器,我正在尝试为java日志记录设置自定义格式化程序,但我似乎无法识别我的自定义类。 我是Java的新手,所以引用它可能是我如何导出我的类或类似的问题。 注意这几乎是可以在这里找到的相同问题,但是那里的答案没有帮助,因为我有一个公共的无参数构造函数。 我的格式化程序如下所示(如此处所述): package myapp.solr; import java.text.MessageFormat; import java.util.Date; import java.util.logging.Formatter; import java.util.logging.LogRecord; public class LogFormatter extends Formatter { private static final MessageFormat fmt = new MessageFormat(“{0,date,yyyy-MM-dd HH:mm:ss} {1} [{2}] {3}\n”); public LogFormatter() { super(); } @Override public String format(LogRecord record) { Object[] args = new Object[5]; args[0] = new Date(record.getMillis()); args[1] = […]

是否有任何方法可以在servlet中获取jetty上的所有有效会话密钥值?

我有一个带有两个不同servlet的jetty容器,然后调用A和B.在特殊情况下,qr代码代码出现在servlet A中(用户已经登录并正在使用他的桌面)和用户使用他的移动设备阅读此qr代码并将其重定向到其移动设备上的servlet B. 这里的问题是我无法保持他的会话。 QR码带来用户会话密钥,但我无法validation此会话是否有效。 我想知道是否有任何特殊的方法来请求jetty上的有效会话密钥,因为两个servlet都在同一个服务器上。

在openjdk:7-jre-alpine docker如何安装python 3.6

直到大约一周前,我成功地在java图像上使用python 3.6脚本,如下所示: FROM openjdk:7-jre-alpine RUN apk update \ && apk upgrade \ && apk add –no-cache bash \ && apk add –no-cache –virtual=build-dependencies unzip \ && apk add –no-cache curl \ && apk add –no-cache go RUN apk add –no-cache python3 && \ python3 -m ensurepip && \ rm -r /usr/lib/python*/ensurepip && \ pip3 install […]

获取应用程序服务器下的真实(虚拟)主机名

我有一个在Jetty下运行的应用程序,我希望应用程序返回自引用绝对URL(生成RSS源时,因此客户端必须能够在没有“当前URL”上下文的情况下工作)。 问题是我不知道应该在哪个主机名下部署应用程序,并且它很可能会部署在虚拟主机环境中,其中多个主机名映射到同一个IP地址。 我尝试过使用HttpServletRequest.getLocalName() ,但是返回已接收请求的IP地址的解析主机名[1](通常是本地主机文件中设置的内容),而不是URL中的主机名。 HTTP请求中指定的客户端。 基本上我想得到CGI下的环境变量SERVER_NAME但它看起来不像Java API提供的那样。 任何帮助将不胜感激。 [1]只有我很幸运 – 在某些设置上它只返回IP地址。

尽快停止/取消断开连接的GET请求线程

我正在使用jetty,版本7.0.1,如果这很重要。 有时我在服务器上有一些很长时间运行的任务,如果客户端断开连接我想取消/停止(如果是GET请求,不是例如POST文件上传)。 似乎情况并非如此,任务继续完成。 也许我可以使用ServletRequestListener.requestDestoryed监听器来获取此类任务的通知,但建议的方法是什么来停止请求线程? 如何释放数据库连接,文件句柄或运行任务(执行程序服务)等资源? 尽快停止此类任务的建议方法是什么?

无论如何用vim / emacs +命令行取代IntelliJ?

我想用vim(或emacs,如果需要)和命令行工具替换IntelliJ的一些最常用的设置。 我用 自动导入库 通过调试在Jetty中部署各种服务(我经常使用断点) 转到声明,实现和测试。 JavaLint(?)基本上类似于PyFlakes for Java,它显示警告,内联错误 我喜欢IntelliJ,但最近遇到了很多问题,我想念无法使用VIM。

找不到Eclipse部署描述符

我有一个在eclipse中创建的动态Web项目。 我移动了WebContent文件夹的位置(位于/ src文件夹中)。 但是,该项目仍然认为目录在/projectName/WEB-INF/ (我知道这是因为当我尝试在部署描述符中打开一个元素时它告诉我该路径不存在(它不存在,但我需要指出新的位置)。 如何将构建指向WebContent文件夹(和WEB-INF等)的新位置? 谢谢。

如何从另一台机器上看到GWT Jetty devmode?

当我启动Jetty时,它为我提供了标准URL: http : //127.0.0.1 : 8888 / index.jsp?gwt.codesvr = 127.0.0.1:997 大。 我可以从我的机器上看到这个URL。 但是,我无法从其他计算机访问此URL,并将127.0.0.1替换为我的实际IP地址也不起作用。 有谁知道如何让我的服务器“可共享”,以便我的网络中的其他人也可以关闭我的机器?