Tag: docker

如何在jetty中启用日志记录?

我正在尝试调试我的情况,其中简单的ActiveWeb应用程序未在Jetty下运行。 它表现得好像没有任何用于请求处理的类并返回错误404。 问题不在于ActiveWeb。 这是关于docker。 如何找出,有一些Web应用程序,Jetty喜欢注释类并将在HTTP请求上执行它? 目前我已下载Jetty,它的工作原理。 不幸的是,它没有记录。 当404错误返回时, stdout或stderr没有显示任何内容,并且当前子目录中没有文件出现。 如何在jetty中启用日志记录? 这里的文档http://www.eclipse.org/jetty/documentation/current/configuring-logging.html和http://www.eclipse.org/jetty/documentation/current/configuring-jetty-request-logs.html不清楚和有争议。 例如,第一页说Jetty不使用任何Java登录框架,但也需要一个选择一个。 第二页提供了一些配置示例,但没有说明应放置此代码的位置。

如何在嵌入式Jetty 8中部署WAR?

使用以下代码,如何部署位于类路径上的WAR应用程序? private Server s; @BeforeClass public static void setUp() throws Exception { // Start http server Random r = new Random(); int port = 1024 + r.nextInt(8976); s = new Server(new InetSocketAddress(“127.0.0.1”, port)); // Add my WAR for deployment here … s.start(); } Jetty 8.0.1 JDK 6

Jetty在不同端口上分离Web应用程序

我需要以下设置。 Jetty必须侦听端口8080和9090 每个端口必须有自己独立的应用程序(即webapp1在8080上运行, webapp2在9090上运行)。 web应用程序只能在其指定端口上访问(即webapp2不能在端口8080上可用)。 我已成功为etc / jetty.xml添加了额外的连接器 ,因此它现在使用端口8080和9090.我还添加了额外的处理程序,因此它现在从多个目录(dir1 / webapp1和dir2 / webapp2)中选择webaps。 我的问题是:jetty将每个处理程序找到的所有webapps部署到每个连接器(即每个端口),因此webapp1和webapp2都可以在端口8080和9090上访问。 我需要一种方法来确保handler1 (处理dir1 / webapp1)仅被指定为connector1 (侦听端口8080),并且同样对于connector2仅在端口9090上拾取handler2 (处理dir2 / webapp2)。 有没有办法实现这个?

在Jetty和Tomcat中运行Web应用程序

我有一个网络应用程序,我在Tomcat上运行生产。 它使用MySQL连接器,但它没有与war捆绑在一起,而是包含在Tomcat的公共lib目录下,因此我可以通过JNDI访问数据源。 我想做一些与Jetty(开发时)类似的东西,更确切地说是Jetty + Maven。 有没有办法让我在通过Maven运行Jetty时在类路径中包含mysql-connector jar(即没有将它捆绑在war文件中)? 另外我应该注意到我在构建过程中使用Maven并将mysql-connector指定为“提供”范围。

spark java:如何处理multipart / form-data输入?

我正在使用spark来开发一个Web应用程序; 我想上传文件时出现问题: public final class SparkTesting { public static void main(final String… args) { Spark.staticFileLocation(“/site”); Spark.port(8080); Spark.post(“/upload”, (request, response) -> { final Part uploadedFile = request.raw().getPart(“uploadedFile”); final Path path = Paths.get(“/tmp/meh”); try (final InputStream in = uploadedFile.getInputStream()) { Files.copy(in, path); } response.redirect(“/”); return “OK”; }); } } 但我得到这个错误: [qtp509057984-36] ERROR spark.webserver.MatcherFilter – java.lang.IllegalStateException: No multipart […]

Jetty 7:为Start.java配置JNDI

继Wicket 1.5领先后,我将一个项目从Jetty 6.1.25转换为7.5.0.v20110901。 我现有的Start.java包含以下设置,我用它来配置JNDI: EnvConfiguration envConfiguration = new EnvConfiguration(); URL url = new File(“src/main/webapp/WEB-INF/jetty-env.xml”).toURI().toURL(); envConfiguration.setJettyEnvXml(url); bb.setConfigurations(new Configuration[]{new WebInfConfiguration(), envConfiguration, new org.mortbay.jetty.plus.webapp.Configuration(), new JettyWebXmlConfiguration(), new TagLibConfiguration()}); 然后我的jetty-env.xml有以下内容: jdbc/myapp com.mysql.jdbc.Driver jdbc:mysql://localhost/myapp?characterEncoding=utf8 username password 这在Jetty 6中运行得很好,但在7中, org.mortbay.jetty.plus.webapp.Configuration似乎不存在(或者我可能错过了一个Jar)。 有人可以给我一些关于如何使用Jetty 7配置JNDI的指导吗?

程序化Jetty关闭

如何以编程方式关闭嵌入式jetty服务器? 我像这样启动jetty服务器: Server server = new Server(8090); … server.start(); server.join(); 现在,我想从请求中关闭它,例如http://127.0.0.1:8090/shutdown如何干净利落地完成它? 通常提出的解决方案是创建一个线程并从该线程调用server.stop()。 但我可能需要调用Thread.sleep()以确保servlet已完成处理关闭请求。

Jetty WebSocket api与标准JSR 356 API相比

Jetty 9支持它自己的Jetty Websocket API以及标准的JSR 356 API,因为我认为是历史原因(Jetty的API 在 最终的JSR 356 之前 )。 我查看了两个API的基本文档,以及一些示例。 两个API看起来都相当完整且非常相似。 但是,我需要为我正在编写的新项目选择一个而不是另一个,我希望避免使用可能在将来被弃用的API,或者可能会变得function不足。 那么两者之间是否有任何重要的区别,除了一个标准化的明显事实?

以编程方式向Jetty添加资源

我有一个主类来配置和激活Jetty。 (这是Wicket测试webapp的标准做法,但它确实不是特定于wicket的。) final Server server = new Server(); //skipped socketconnector initialization final WebAppContext bb = new WebAppContext(); bb.setServer(server); bb.setContextPath(“/”); bb.setWar(“src/main/webapp”); server.addHandler(bb); server.start(); 如您所见,src / main / webapp用作webapp root。 但是,我有一些目标/类中的资源,稍后会复制到webapp。 所以我想将虚拟目录添加到jetty。 我想将target/classes/js映射到/js和target/classes/css到/css 有人可以帮忙吗? 顺便说一句:这是docker6.1.4

Jetty中的传输速度缓慢,在某些缓冲区大小时使用分块传输编码

我正在调查Jetty 6.1.26的性能问题。 Jetty似乎使用Transfer-Encoding: chunked ,并且根据使用的缓冲区大小,在本地传输时这可能非常慢。 我用一个servlet创建了一个小型Jetty测试应用程序来演示这个问题。 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.mortbay.jetty.Server; import org.mortbay.jetty.nio.SelectChannelConnector; import org.mortbay.jetty.servlet.Context; public class TestServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { final int bufferSize = 65536; resp.setBufferSize(bufferSize); OutputStream outStream = resp.getOutputStream(); […]