{"id":36282,"date":"2016-04-19T11:00:41","date_gmt":"2016-04-19T08:00:41","guid":{"rendered":"http:\/\/examples.javacodegeeks.com\/?p=36282"},"modified":"2019-04-10T13:04:32","modified_gmt":"2019-04-10T10:04:32","slug":"jetty-nio-example","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/","title":{"rendered":"Jetty NIO Example"},"content":{"rendered":"<p>In this example, we will show how to use jetty with NIO based connector for server side communications with clients. Before <code> Jetty 9 <\/code>, there were both blocking Input\/Output (BIO) and non-blocking Input\/Output (NIO) and one has to specify protocol and implementation used through connector.<\/p>\n<p><code>Jetty 9<\/code> now only offers NIO connector and protocol is configured through collection of ConnectionFactory on the connector. Jetty primarily uses a single connector type called <code> ServerConnector <\/code>. We will basically configure this connector in standalone jetty and embedded jetty both.<br \/>\n&nbsp;<br \/>\n&nbsp;<\/p>\n<h2>1. Environment<\/h2>\n<ul>\n<li>Windows 7 SP 1<\/li>\n<li>Eclipse Kepler 4.3<\/li>\n<li>Jetty version 9.2.15 v20160210<\/li>\n<li>Java version 7<\/li>\n<li>Java Servlet Library &#8211; servlet-api-3.1<\/li>\n<li>Maven 3.0.4<\/li>\n<\/ul>\n<h2>2. Example Outline<\/h2>\n<p>In this example, we will create a simple servlet to run on a standalone jetty where we will configure our standalone jetty for ServerConnector and a port. To configure this connector, we will configure network parameters, services used by the connector and connection factories.&nbsp;After this we will show similar configuration through embedded jetty in java source code.<\/p>\n<h2>3. What is NIO?<\/h2>\n<p>Before we show how to use ServerConnector which is NIO based connector in Jetty 9, we will go through some basic concepts of NIO (Non-blocking Input\/Output). Non-blocking Input\/Output,also known as New I\/O, is a collection of Java APIs that offers new features for intensive I\/O operations. NIO data transfer is based on buffers and channels. In standard IO , data transfer was through byte streams and character streams. Example of non-blocking IO &#8211; a thread can ask a channel to read data into a buffer. While the channel reads data into the buffer, the thread can do something else. Once the data is read into the buffer, the thread can then continue processing it.<\/p>\n<h2>4. Jetty NIO Example<\/h2>\n<h3>4.1 Standalone Jetty Configuration for NIO<\/h3>\n<p>Jetty uses <code> ServerConnector <\/code> which is NIO based connector. To configure a connector, we will have to configure following things<\/p>\n<ol>\n<li>Configure network parameters on the connector (e.g. Port)<\/li>\n<li>Configure the services used by the connector<\/li>\n<li>Configure connection factories which will be used to instantiate and configure the protocol for an accepted connection<\/li>\n<\/ol>\n<h4>4.1.1 Configuring a Server Connector<\/h4>\n<p>In standalone jetty, most of the configuration for server connector comes default. In jetty-http.xml file, you will find configuration to instantiate <code> ServerConnector <\/code> which accepts HTTP connection. In jetty-https.xml file, configuration to instantiate <code> ServerConnector <\/code> which accepts SSL\/TLS connection. The file jetty-http.xml will look like below for <code> ServerConnector <\/code> settings.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>jetty-http.xml<\/em><\/span><\/p>\n<pre class=\"brush:xml\">&lt;New class=\"org.eclipse.jetty.server.ServerConnector\"&gt;\n  &lt;Arg name=\"server\"&gt;&lt;Ref id=\"Server\" \/&gt;&lt;\/Arg&gt;\n  &lt;Arg name=\"factories\"&gt; &lt;\/Arg&gt;\n\n  &lt;Set name=\"port\"&gt;&lt;Property name=\"jetty.port\" default=\"8090\"\/&gt;&lt;\/Set&gt;\n&lt;\/New&gt;  \n<\/pre>\n<p>The network settings that can be set on <code>ServerConnector<\/code>include-host,port,idleTimeout,defaultProtocol,stopTimeout,<br \/>\nacceptQueueSize,reuseAddress and soLingerTime.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<h4>4.1.2 Configure connection factories<\/h4>\n<p>ConnectionFactory instances create the protocol handling connection instances for the network endpoints accepted by <code> ServerConnector <\/code>. Different connection factories can be used, but you need very less configuration for connection factories. We can use <code> HttpConfiguration <\/code> or <code> SslContextFactory <\/code> instances at the most for this example. jetty-http.xml file will look like below after configuring connection factory.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>jetty-http.xml<\/em><\/span><\/p>\n<pre class=\"brush:xml\">  &lt;Call name=\"addConnector\"&gt;\n    &lt;Arg&gt;\n      &lt;New class=\"org.eclipse.jetty.server.ServerConnector\"&gt;\n        &lt;Arg name=\"server\"&gt;&lt;Ref id=\"Server\" \/&gt;&lt;\/Arg&gt;\n        &lt;Arg name=\"factories\"&gt;\n          &lt;Array type=\"org.eclipse.jetty.server.ConnectionFactory\"&gt;\n            &lt;Item&gt;\n              &lt;New class=\"org.eclipse.jetty.server.HttpConnectionFactory\"&gt;\n                &lt;Arg name=\"config\"&gt;&lt;Ref id=\"httpConfig\" \/&gt;&lt;\/Arg&gt;\n              &lt;\/New&gt;\n            &lt;\/Item&gt;\n          &lt;\/Array&gt;\n        &lt;\/Arg&gt;\n        &lt;Set name=\"host\"&gt;&lt;Property name=\"jetty.host\" \/&gt;&lt;\/Set&gt;\n        &lt;Set name=\"port\"&gt;&lt;Property name=\"jetty.port\" default=\"8090\" \/&gt;&lt;\/Set&gt;\n        &lt;Set name=\"idleTimeout\"&gt;30000&lt;\/Set&gt;\n      &lt;\/New&gt;\n    &lt;\/Arg&gt;\n  &lt;\/Call&gt;\n\n<\/pre>\n<p>In this example, we only showed one connection factory, but multiple connection factories can be created.<\/p>\n<h3>4.2 Embedded Jetty Example<\/h3>\n<h4>4.2.1 Create A Maven Project<\/h4>\n<p>Create a new maven project as shown below. Fill the details for GroupId as <code> com.javacodegeeks.example <\/code> and ArtifactId as <code> jetty-nio-example.<\/code><\/p>\n<p><figure id=\"attachment_36293\" aria-describedby=\"caption-attachment-36293\" style=\"width: 860px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/MavenProject-3.jpg\" rel=\"attachment wp-att-36293\"><img decoding=\"async\" class=\"size-full wp-image-36293\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/MavenProject-3.jpg\" alt=\"jetty-nio-example\" width=\"860\" height=\"637\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/MavenProject-3.jpg 860w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/MavenProject-3-300x222.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/MavenProject-3-768x569.jpg 768w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><figcaption id=\"caption-attachment-36293\" class=\"wp-caption-text\">Maven Project jetty-nio-example<\/figcaption><\/figure><\/p>\n<p>Add following dependencies in <code> pom.xml <\/code><\/p>\n<p><span style=\"text-decoration: underline;\"><em>pom.xml<\/em><\/span><\/p>\n<pre class=\"brush:xml\">&lt;project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd\"&gt;\n  &lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\n  &lt;groupId&gt;com.javacodegeeks.example&lt;\/groupId&gt;\n  &lt;artifactId&gt;jetty-nio-example&lt;\/artifactId&gt;\n  &lt;version&gt;0.0.1-SNAPSHOT&lt;\/version&gt;\n    &lt;packaging&gt;war&lt;\/packaging&gt;\n    &lt;dependencies&gt;\t        \n\t        &lt;dependency&gt;\n\t            &lt;groupId&gt;org.eclipse.jetty&lt;\/groupId&gt;\n\t            &lt;artifactId&gt;jetty-server&lt;\/artifactId&gt;\n\t            &lt;version&gt;9.2.15.v20160210&lt;\/version&gt;\n\t        &lt;\/dependency&gt;\n\t\t\t&lt;dependency&gt;\n  \t\t\t     &lt;groupId&gt;org.eclipse.jetty&lt;\/groupId&gt;\n  \t\t             &lt;artifactId&gt;jetty-servlet&lt;\/artifactId&gt;\n  \t\t\t     &lt;version&gt;9.2.15.v20160210&lt;\/version&gt;\n\t\t\t&lt;\/dependency&gt;\n\t&lt;\/dependencies&gt;\n&lt;\/project&gt;\n<\/pre>\n<h4>4.2.2 Create an embedded jetty server with ServerConnector<\/h4>\n<p>We will write our java code to run an embedded jetty with a <code> ServerConnector <\/code> and add a <code> ServletHandler <\/code> to run a simple servlet on the server. Create a java file ManyConnectors under src-&gt;main-&gt;java as shown below:[ulp id=&#8217;xFHGZUmgemwCMrAR&#8217;]<\/p>\n<p><span style=\"text-decoration: underline;\"><em>ManyConnectors.java<\/em><\/span><\/p>\n<pre class=\"brush:java\">package com.javacodegeeks.example;\n\nimport java.io.IOException;\nimport javax.servlet.ServletException;\nimport javax.servlet.http.HttpServlet;\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.http.HttpServletResponse;\n\nimport org.eclipse.jetty.server.Connector;\nimport org.eclipse.jetty.server.Server;\nimport org.eclipse.jetty.server.ServerConnector;\nimport org.eclipse.jetty.servlet.ServletHandler;\n\npublic class ManyConnectors {\n\n\tpublic static void main(String[] args) throws Exception {\n\t\t\n\t\tServer server = new Server();\n\t\tServerConnector connector = new ServerConnector(server);\n\t\tconnector.setPort(8090);\n\t\tserver.setConnectors(new Connector[]{connector});\n\t\t\n\t\tServletHandler servletHandler = new ServletHandler();\n\t\tserver.setHandler(servletHandler);\n\t\t\t\t\n\t\tservletHandler.addServletWithMapping(HelloServlet.class, \"\/\");\n\t\t\n\t\tserver.start();\n\t\tserver.join();\n\n\t}\n\t\n\tpublic static class HelloServlet extends HttpServlet \n\t{\t\t\n\t\tprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException\n\t\t{\n\t\t   response.setContentType(\"text\/html\");\n\t\t   response.setStatus(HttpServletResponse.SC_OK);\n\t\t  response.getWriter().println(\"New Hello Simple Servlet\"); \n                }\n        } \n}\n\n<\/pre>\n<p>As shown in the code, our server will be connected through <code> ServerConnector <\/code> at port 8090. Once we build our project, we can run our server.<\/p>\n<h4>4.2.3 Run our example<\/h4>\n<p>Now once we run <code> ManyConnectors.java <\/code> from eclipse, we can access the <code> HelloServlet <\/code> in browser at port 8090. Jetty server in this example is connected through ServerConnector which is configured at port 8090. Similarly we can add other connectors like <code> Https Connector <\/code> or <code> Spdy Connector<\/code>.<\/p>\n<p><figure id=\"attachment_36300\" aria-describedby=\"caption-attachment-36300\" style=\"width: 695px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/EmbeddedJettyServer-Servlet.jpg\" rel=\"attachment wp-att-36300\"><img decoding=\"async\" class=\"size-full wp-image-36300\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/EmbeddedJettyServer-Servlet.jpg\" alt=\"EmbeddedJettyServer-ServerConnector-NIO-Example\" width=\"695\" height=\"434\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/EmbeddedJettyServer-Servlet.jpg 695w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/EmbeddedJettyServer-Servlet-300x187.jpg 300w\" sizes=\"(max-width: 695px) 100vw, 695px\" \/><\/a><figcaption id=\"caption-attachment-36300\" class=\"wp-caption-text\">Servlet running on a ServerConnector based on NIO connecting to Port 8090<\/figcaption><\/figure><\/p>\n<h2>5. Conclusion<\/h2>\n<p>In this example we showed how to use a <code> ServerConnector <\/code> which is based on Non-blocking IO in Jetty. The main advantage of NIO is that it allows to manage multiple channels like network connections or files using only few threads compared to blocking IO.<\/p>\n<h2>6. Download the eclipse project<\/h2>\n<p>This was an example for Jetty NIO based ServerConnector with an embedded-jetty.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>\nYou can download the full source code of this example here:<a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/04\/jettynioexample.zip\" rel=\"\"><strong> jettynioexample<\/strong><\/a><\/div>\n<h2>7. Related Articles<\/h2>\n<p>Following articles were referred in developing this example:<\/p>\n<ol>\n<li><a href=\"http:\/\/www.eclipse.org\/jetty\/documentation\/9.0.0.M3\/configuring-connectors.html\" target=\"_blank\" rel=\"noopener noreferrer\">Configuring Connectors<\/a><\/li>\n<li><a href=\"http:\/\/tutorials.jenkov.com\/java-nio\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">Java NIO Tutorial<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Non-blocking_I\/O_%28Java%29\" target=\"_blank\" rel=\"noopener noreferrer\">Non-Blocking IO<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>In this example, we will show how to use jetty with NIO based connector for server side communications with clients. Before Jetty 9 , there were both blocking Input\/Output (BIO) and non-blocking Input\/Output (NIO) and one has to specify protocol and implementation used through connector. Jetty 9 now only offers NIO connector and protocol is &hellip;<\/p>\n","protected":false},"author":91,"featured_media":1239,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[1043,1451],"class_list":["post-36282","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jetty","tag-nio","tag-serverconnector"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Jetty NIO Example - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"In this example, we will show how to use jetty with NIO based connector for server side communications with clients. Before Jetty 9 , there were both\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jetty NIO Example - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"In this example, we will show how to use jetty with NIO based connector for server side communications with clients. Before Jetty 9 , there were both\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2016-04-19T08:00:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-04-10T10:04:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Yogesh Mali\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@yogeshmali\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yogesh Mali\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/\"},\"author\":{\"name\":\"Yogesh Mali\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/2baca97f7fa994c7c6a0449b07f9ef7b\"},\"headline\":\"Jetty NIO Example\",\"datePublished\":\"2016-04-19T08:00:41+00:00\",\"dateModified\":\"2019-04-10T10:04:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/\"},\"wordCount\":745,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg\",\"keywords\":[\"nio\",\"serverconnector\"],\"articleSection\":[\"jetty\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/\",\"name\":\"Jetty NIO Example - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg\",\"datePublished\":\"2016-04-19T08:00:41+00:00\",\"dateModified\":\"2019-04-10T10:04:32+00:00\",\"description\":\"In this example, we will show how to use jetty with NIO based connector for server side communications with clients. Before Jetty 9 , there were both\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Development\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"jetty\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/jetty\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Jetty NIO Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/2baca97f7fa994c7c6a0449b07f9ef7b\",\"name\":\"Yogesh Mali\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/03\/Yogesh-Mali_avatar_1457206862-96x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/03\/Yogesh-Mali_avatar_1457206862-96x96.jpg\",\"caption\":\"Yogesh Mali\"},\"description\":\"Yogesh currently lives in Minneapolis and works as a Senior Software Engineer. He has a masters degree in Computer Science from University of Minnesota, Twin Cities. At graduate school, he did research in programming languages because of his love for functional and object oriented programming. Currently he delves into more details of Java, web development and security. Previously he worked as a product manager to create web application for health insurance brokers. In his free time, he listens to music and writes fictional stories.\",\"sameAs\":[\"http:\/\/www.javacodegeeks.com\/\",\"https:\/\/www.instagram.com\/yogsma\/\",\"https:\/\/www.linkedin.com\/in\/yogeshmali\",\"https:\/\/x.com\/yogeshmali\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/yogesh-mali\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jetty NIO Example - Java Code Geeks","description":"In this example, we will show how to use jetty with NIO based connector for server side communications with clients. Before Jetty 9 , there were both","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/","og_locale":"en_US","og_type":"article","og_title":"Jetty NIO Example - Java Code Geeks","og_description":"In this example, we will show how to use jetty with NIO based connector for server side communications with clients. Before Jetty 9 , there were both","og_url":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2016-04-19T08:00:41+00:00","article_modified_time":"2019-04-10T10:04:32+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg","type":"image\/jpeg"}],"author":"Yogesh Mali","twitter_card":"summary_large_image","twitter_creator":"@yogeshmali","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Yogesh Mali","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/"},"author":{"name":"Yogesh Mali","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/2baca97f7fa994c7c6a0449b07f9ef7b"},"headline":"Jetty NIO Example","datePublished":"2016-04-19T08:00:41+00:00","dateModified":"2019-04-10T10:04:32+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/"},"wordCount":745,"commentCount":0,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg","keywords":["nio","serverconnector"],"articleSection":["jetty"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/","url":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/","name":"Jetty NIO Example - Java Code Geeks","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg","datePublished":"2016-04-19T08:00:41+00:00","dateModified":"2019-04-10T10:04:32+00:00","description":"In this example, we will show how to use jetty with NIO based connector for server side communications with clients. Before Jetty 9 , there were both","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/codehaus-jetty-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/jetty\/jetty-nio-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java Development","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/"},{"@type":"ListItem","position":4,"name":"jetty","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/jetty\/"},{"@type":"ListItem","position":5,"name":"Jetty NIO Example"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/2baca97f7fa994c7c6a0449b07f9ef7b","name":"Yogesh Mali","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/03\/Yogesh-Mali_avatar_1457206862-96x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/03\/Yogesh-Mali_avatar_1457206862-96x96.jpg","caption":"Yogesh Mali"},"description":"Yogesh currently lives in Minneapolis and works as a Senior Software Engineer. He has a masters degree in Computer Science from University of Minnesota, Twin Cities. At graduate school, he did research in programming languages because of his love for functional and object oriented programming. Currently he delves into more details of Java, web development and security. Previously he worked as a product manager to create web application for health insurance brokers. In his free time, he listens to music and writes fictional stories.","sameAs":["http:\/\/www.javacodegeeks.com\/","https:\/\/www.instagram.com\/yogsma\/","https:\/\/www.linkedin.com\/in\/yogeshmali","https:\/\/x.com\/yogeshmali"],"url":"https:\/\/examples.javacodegeeks.com\/author\/yogesh-mali\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/36282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/91"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=36282"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/36282\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/1239"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=36282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=36282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=36282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}