Tag: 嵌入式docker

带有客户端证书的嵌入式Jetty

我想创建嵌入式https服务器,要求客户端提供证书,我使用的是: http : //www.smartjava.org/content/embedded-jetty-client-certificates 现在我的问题是,如果我的docker被剔除,我如何为我的代码提供密钥库和信任库文件。 我的意思是代码中的这些行: // the keystore (with one key) we’ll use to make the connection with the // broker private final static String KEYSTORE_LOCATION = “src/main/resources/client_keystore.jks”; private final static String KEYSTORE_PASS = “secret”; // the truststore we use for our server. This keystore should contain all the keys // that are allowed […]

找不到javax.servlet.http.HttpServletResponse.getStatus()

我正在使用嵌入式Jetty服务器,部署Jersey REST api,我正在尝试使用log4J记录错误。 发生错误时,例如找不到URL,控制台日志显示以下错误: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()I at org.eclipse.jetty.server.handler.ErrorHandler.doError(ErrorHandler.java:142) at org.eclipse.jetty.server.handler.ErrorHandler.handle(ErrorHandler.java:78) at org.eclipse.jetty.server.Response.sendError(Response.java:655) at org.glassfish.jersey.servlet.internal.ResponseWriter.callSendError(ResponseWriter.java:225) at org.glassfish.jersey.servlet.internal.ResponseWriter.commit(ResponseWriter.java:194) at org.glassfish.jersey.server.ContainerResponse.close(ContainerResponse.java:413) at org.glassfish.jersey.server.ServerRuntime$Responder.release(ServerRuntime.java:810) at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:515) at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:334) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535) at […]

如何为java junit测试运行jetty服务器

我正在尝试编写集成测试以在本地启动jetty服务器,然后使用客户端与其余URI进行通信并调用下游的业务逻辑。 但是,当我启动我的jetty服务器时,它不会放弃控件,因此我的客户端不会被执行。 所以我使用线程在不同的线程中启动我的docker,但是,线程在客户端调用之前完成,它表示连接被拒绝。 我可以采取任何方法吗? @Test public void testPerform() { final JettyServer jettyServer = JettyServer.create(); jettyServer.buildJettyServer(ServletContextHandler.SESSIONS, “/”, 8080, TestResource.class); Runnable runnable = new Runnable() { @Override public void run() { jettyServer.start(); } }; new Thread(runnable).start(); final javax.ws.rs.client.Client client = ClientBuilder.newClient(); final Response response = client.target(“http://localhost:8080/test”).request().post(Entity.text(“”)); jettyServer.stop(); }

是否可以使用Java后端和Web技术UI创建桌面应用程序

我想用Java和Web技术创建一个桌面应用程序。 选择Java的主要原因是它是免费的,开源的,因此我们的投资将是最小的,我们将在许可成本等方面节省大量投资。此外,选择Web技术的主要原因是因为我们当前的程序员精通HTMl,css,Ajax等Web技术,我们在Web技术中创建出色的UI方面拥有丰富的经验。 我会告诉你一些我们想要创建的软件。 它将是一个基于桌面的软件,即ERP软件。 关键要求是应该有一个很好的用户界面,它应该是快速的,而不是非常耗费资源。 我听说实现一个很棒的GUI是可能的,但在Java中很难实现。 它可以完成,但很复杂,而在Visual Studio,Microsoft产品中执行相同操作非常简单。 我还检查了Adobe Air,诺基亚QT等,但它们对我们来说都非常昂贵,我们正在寻找使用Java技术的前端浏览器UI和后端嵌入式服务器/数据库。 是否有可能创建一个桌面软件,其中使用Web技术创建UI,并且有一个嵌入式服务器(如jetty或tomcat)和数据库,后端编程将使用Java。 JavaFX如何适应这个? 所以基本上,桌面应用程序将有一个嵌入式浏览器(mozilla或一些可以与软件一起打包的java浏览器),但最终用户永远不会意识到这一点。 我期待获得有关同样的反馈。 您能否提供一些以类似的java + Web技术组合创建的软件示例。 我确实研究过像PulpTunes和Zimbra这样的软件,它们类似,但它们似乎连接到互联网以显示数据。 我们的软件将完全是一个离线桌面应用程序。

Jetty:默认的servlet上下文路径

我需要设置Servlet(由于某些原因,只有servlet而不是处理程序)来处理war之外的文件。 在这里https://stackoverflow.com/a/28735121/5057736我找到了以下解决方案: Server server = new Server(8080); ServletContextHandler ctx = new ServletContextHandler(); ctx.setContextPath(“/”); DefaultServlet defaultServlet = new DefaultServlet(); ServletHolder holderPwd = new ServletHolder(“default”, defaultServlet); holderPwd.setInitParameter(“resourceBase”, “./src/webapp/”); ctx.addServlet(holderPwd, “/*”);//LINE N ctx.addServlet(InfoServiceSocketServlet.class, “/info”); server.setHandler(ctx); 这个解决方案有效,这就是我需要的。 但是,一旦我将LINE N更改为ctx.addServlet(holderPwd, “/foo/*”); ,它就会停止工作ctx.addServlet(holderPwd, “/foo/*”); 。 我试过“/ foo /”,“/ foo”,但结果是一样的 – 我not found 。 为什么? 如何使其适应这种特定的背景? 由于同样的原因,我使用jetty 9.2.15。

Java / Jetty:如何向嵌入式Jetty添加filter

我正在使用嵌入式Jetty,我想添加一个servletfilter来检查每个请求之前的身份validation。 我尝试了这个例子,但看起来签名已经改变了。 org.eclipse.jetty jetty-server 9.0.4.v20130625 我的Jetty起动器看起来像这样: public class JettyStarter { public static void main( final String[] args ) throws Exception { Server server = new Server(8080); final ServletHolder servletHolder = new ServletHolder(new CXFServlet()); final ServletContextHandler context = new ServletContextHandler(); context.setContextPath(“/”); // context.addFilter(AuthenticationFilter.class, “/*”, FilterMapping.REQUEST); context.addServlet(servletHolder, “/platform/*”); context.addEventListener(new ContextLoaderListener()); context.setInitParameter(“contextClass”, AnnotationConfigWebApplicationContext.class.getName()); context.setInitParameter(“contextConfigLocation”, Config.class.getName()); server.setHandler(context); server.start(); server.join(); […]

如何将Jetty和Jersey嵌入到我的Java应用程序中

所以我试图将jetty嵌入到我的Web应用程序中,这样如果我把它打包成jar,就可以运行jar文件而不必担心配置服务器。 但是,我在设置主类时遇到了一些问题,因此jetty可以访问我的资源类。 我看过教程,但他们没有给我我正在寻找的东西。 这就是我到目前为止所拥有的。 package pojo; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; public class Main { public static void main(String[] args) throws Exception { Server server = new Server(8080); ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS); context.setContextPath(“/”); ServletHolder h = new ServletHolder(new DefaultServlet()); h.setInitParameter(“javax.ws.rs.Application”,”resources.DBCollection”); context.addServlet(h, “/*”); server.setHandler(context); server.start(); server.join(); } } 我正在尝试将它映射到这个类: package resources; import […]

使用web.xml配置嵌入式jetty?

我试图用我的Web应用程序生成一个战争以及一个带有嵌入式jetty的自包含jar文件。 对于嵌入式jetty(jar文件分发),我添加一个servlet,如下所示: public static void main(String[] args) throws Exception { Server server = new Server(8080); ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath(“/”); server.setHandler(context); context.addServlet(new ServletHolder(new HelloServlet()),”/*”); server.start(); server.join(); } war文件分发使用web.xml文件,该文件在web-app部分中包含以下内容: com.example.HelloServlet SimplestServer HelloServlet /* 这很有效。 但是,我想摆脱两种方法之间的重复。 即,当我添加一个新的servlet时,我想要只在一个位置配置它。 我可以从嵌入式jetty加载和使用web.xml文件吗?

如何禁用Jetty的WebAppContext的目录列表?

我将Jetty(版本7.4.5.v20110725)嵌入到java应用程序中。 我使用Jetty的WebAppContext在./webapps/jsp/中提供JSP页面,但是如果我访问localhost:8080 / jsp /我获取Jetty的目录列表以获取./webapps/jsp/的全部内容。 我已经尝试在WebAppContext上将dirAllowed参数设置为false,并且它不会更改目录列表行为。 在ResourceHandler上禁用目录列表就是将false传递给setDirectoriesListed,按预期工作。 有人可以告诉我如何为WebAppContext执行此操作吗? import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandler; import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.server.handler.ResourceHandler; import org.eclipse.jetty.server.nio.SelectChannelConnector; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.webapp.WebAppContext; public class Test { public static void main(String[] args) throws Exception { Server server = new Server(); SelectChannelConnector connector = new SelectChannelConnector(); connector.setHost(“127.0.0.1”); connector.setPort(8080); server.addConnector(connector); // Create a resource […]

泽西岛:如何将jackson添加到Servlet Holder

我正在使用Jersey创建一个嵌入式Jetty webapp。 我不知道如何在这里添加jackson自动JSON serde: ServletHolder jerseyServlet = context.addServlet( org.glassfish.jersey.servlet.ServletContainer.class, “/*”); jerseyServlet.setInitOrder(0); jerseyServlet.setInitParameter( ServerProperties.PROVIDER_CLASSNAMES, StringUtils.join( Arrays.asList( HealthCheck.class.getCanonicalName(), Rest.class.getCanonicalName()), “;”)); // Create JAX-RS application. final Application application = new ResourceConfig() .packages(“com.example.application”) .register(JacksonFeature.class); // what do I do now to tie this to the ServletHolder? 如何在ServletHolder中注册此ResourceConfig ,以便在使用注释@Produces(MediaType.APPLICATION_JSON)使用Jackson? 这是嵌入式Jetty应用程序的完整主类 package com.example.application.web; import com.example.application.api.HealthCheck; import com.example.application.api.Rest; import com.example.application.api.Frontend; import org.apache.commons.lang.StringUtils; […]