Tag: 嵌入式docker

将jetty服务器嵌入到Android应用程序中

到目前为止,我正在尝试将示例Android应用程序安装到嵌入式android jetty web服务器,从而能够从Google代码运行示例hello-3.1.war。 当我在eclipse中运行hello-3.1时,就发生了空指针exception。 HTTP ERROR 500 Problem accessing /hello-3.1/sayit. Reason: INTERNAL_SERVER_ERROR Caused by: java.lang.NullPointerException at org.mortbay.ijetty.hello.HelloWorld.init(HelloWorld.java:29) at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440) at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) Powered by Jetty:// Hello-3.1 […]

嵌入式Jetty和复杂日志记录

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

在Jetty中运行的Web应用程序中使用CAC(通用访问卡)对用户进行身份validation,以获取美国政府机构使用的应用程序

我最近的任务是完成这个问题所描述的类似任务。 我的任务是使Web应用程序通过CAC卡validation凭据。 我的Web应用程序在OSGi容器中运行的嵌入式Jetty服务器上运行。 虽然问题的答案是有良好的信息,但我注意到其中一个答案提出了一个很好的问题。 回答的用户是@erikson并在评论他自己的答案时说:“你使用的是美国国防部发行的CAC吗?这个申请是针对政府机构的吗?如果要申请,还有很多额外的规则需要遵守所以。” 就我而言,他提出的问题的答案是“是的,我的申请是使用美国国防部发行的CAC卡。” 他的评论从未在原始问题上得到回复,所以我在这里发布这个问题。 我的问题是,在哪里可以找到关于美国国防部和政府机构对@erikson提到的申请的额外要求的简明信息?

如何优雅地关闭嵌入式docker

我有一个应用程序在嵌入式jetty服务器上运行。 现在我想启动/停止服务器作为服务。 我使用脚本启动服务器。 java $JAVA_OPTS -DREQ_JAVA_VERSION=$JAVA_VERSION -jar myjetty.jar 主类 Server server = new Server(); SelectChannelConnector connector = new SelectChannelConnector(); connector.setPort(PORT); server.addConnector(connector); HandlerCollection handlers = new HandlerCollection(); NCSARequestLog requestLog = new NCSARequestLog(); requestLog.setFilename(home + “/logs/access_” + logFileDateFormat + “.log”); requestLog.setFilenameDateFormat(logFileDateFormat); requestLog.setRetainDays(10); requestLog.setAppend(true); requestLog.setExtended(false); requestLog.setLogCookies(false); requestLog.setLogTimeZone(TimeZone.getDefault().getID()); RequestLogHandler requestLogHandler = new RequestLogHandler(); requestLogHandler.setRequestLog(requestLog); handlers.addHandler(requestLogHandler); server.setHandler(handlers); server.start(); server.join(); 这启动了服务器。 […]

嵌入docker服务器问题

我正在努力将jetty服务器嵌入到java应用程序中。 我使用spring来配置实际的对象,我可以构建webapp没有问题 – 但是我在启动服务器时遇到了这个问题…… 0 [main] INFO test.Server – Starting server in ‘c:/workspace/test/war/’ on port 9090 34615 [main] INFO test.Server – Using resource base: src/main/webapp 34615 [main] INFO test.Server – Using descriptor file: src/main/webapp/WEB-INF/web.xml 2011-09-05 12:29:36.961:INFO::Logging to STDERR via org.mortbay.log.StdErrLog 36344 [main] INFO test.Server – Starting Server! 2011-09-05 12:29:37.023:INFO::jetty-6.1H.22 2011-09-05 12:29:37.039:WARN::Failed startup of context org.mortbay.jetty.webapp.WebAppContext@8ab708{/TestServer,file:/C:/workspace/test/war/src/main/webapp/} […]

如何配置嵌入式jetty服务器以记录所有请求?

我想将所有soap请求记录到我的服务器。 服务器实例是嵌入式jetty服务器。 有没有办法设置处理程序来执行此操作。 我可以访问web.xml文件

程序化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添加资源

我有一个主类来配置和激活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服务器。 服务器必须只加载一个servlet,将所有请求发送到servlet并监听localhost:80 我的代码到目前为止: static void startJetty() { try { Server server = new Server(); Connector con = new SelectChannelConnector(); con.setPort(80); server.addConnector(con); Context context = new Context(server, “/”, Context.SESSIONS); ServletHolder holder = new ServletHolder(new MyApp()); context.addServlet(holder, “/*”); server.start(); } catch (Exception ex) { System.err.println(ex); } } 我可以用更少的代码/行来做同样的事情吗? (使用Jetty 6.1.0)。

如何在Jetty中使用setThreadPool()

我想看看如何使用setThreadPool()function。 假设我的主要课程如下: import javax.servlet.SingleThreadModel; import org.eclipse.jetty.server.Server; public class FServer implements SingleThreadModel { public static void main(String[] args) throws Exception { Server server = new Server(x); server.setHandler(new Handler()); server.start(); server.join(); } } 在尝试添加setThreadPool() ,我总是被要求实现抽象方法。 我的问题是,如何设置Threadty的ThreadPool长度而不必强制使用XML配置文件,例如server.setThreadPool(5) ,其中5是同时线程的数量?