Servicios web en el servidor de configuración Java 1

Java es la alegría del trabajo de fondo. No solo funcionó bien, sino que ha estado en la industria durante mucho tiempo, marcándolo como una plataforma probada y confiable.

Es totalmente personalizable, lo que ayuda a que Java sea tan eficiente y potente como un lenguaje del lado del servidor. Puede crear aplicaciones desde casi todas las combinaciones de bibliotecas disponibles y elegir solo las funciones que necesita.

Esto tiene sus ventajas. Aunque esto también le da a cada proyecto una cierta misión de construcción de Lego. Desafortunadamente, no puede funcionar como un juguete Lego estándar. Para usar las funciones que le gustan o necesitan, debe elegir un paquete. Hasta ahora, esto ha sido muy detallado para que el servidor se ejecute correctamente, debe elegir un analizador XML / JSON.

Para proporcionar una guía paso a paso para su primera aplicación, en esta serie estudiaremos cómo

Crear proyecto

Como herramienta de compilación y dependencia para nuestro proyecto, utilizaremos Gradle . Esto nos permitirá especificar las dependencias que necesitamos para nuestro proyecto. Un proyecto que usa Gradle tiene la siguiente estructura:

src
- main
    - java
    - resources
- test
    - java
    - main
build.gradle
settings.gradle

En el directorio src, colocaremos todo el código fuente. Hay un subdirectorio para testing-test - ** y otro para nuestra aplicación -main. En cada uno de estos dos directorios, hay un directorio de código Java llamado ** java y otros recursos de recursos de archivos.

En build.gradle, almacenamos todas las configuraciones del proyecto; en settings.gradle, configuraremos el proyecto.

Este es el build.gradle utilizado para esta serie:

plugins {
    id 'java'
}

group 'JettyServer'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.glassfish.jersey.containers:jersey-container-servlet:2.28'
        compile 'org.eclipse.jetty:jetty-server:9.4.19.v20190610'
        compile 'org.eclipse.jetty:jetty-servlet:9.4.19.v20190610'
        compile 'org.glassfish.jersey.inject:jersey-hk2:2.28'
        compile 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.2'
        runtime 'org.glassfish.jaxb:jaxb-runtime:2.3.2'
    compile 'org.eclipse.jetty:jetty-servlets:9.4.19.v20190610'
    compile 'org.glassfish.jersey.media:jersey-media-json-jackson:2.28'
    compile 'org.hibernate:hibernate-core:5.4.4.Final'
    compile 'org.xerial:sqlite-jdbc:3.20.1'
    compile 'com.zsoltfabok:sqlite-dialect:1.0'
}

Crear un servidor en Java

Algunos de ustedes pueden haber usado otras tecnologías web, como Rails, Flask, Express.js, etc. En estos idiomas, la creación del servidor está oculta para usted. Puede crear un objeto e inicializarlo, de lo contrario todo estará disponible de inmediato. Este no es el caso de nuestros servidores. Pero veamos:

En primer lugar, necesitamos la clase principal y el método principal aquí, pondremos todo nuestro código de inicio.

public class Main {
    public static void main(String[] args) throws Exception {

    }
}

Primero, necesitamos una cola para contener todos los hilos. Estaremos acostumbrados a manejar las solicitudes. Tenga en cuenta que si se configura demasiado grande, agotará todos los recursos del sistema; si se configura demasiado pequeño, no podrá manejar todas las cargas. En lo que a nosotros respecta, comenzaremos con una capacidad de 20, lo dejaremos crecer en 2 y limitaremos la cola a 80. Proporcionaremos esta cola a nuestro grupo de subprocesos y gestionará la distribución de trabajos en nuestra cola.

public static void main(String[] args) {
//Queue initialization
    BlockingQueue<Runnable> threadPoolQueue = new BlockingArrayQueue<>(20, 2, 80);
// Create ThreadPool for the server to use.
// default idle time as defined in the QueuedThreadPool.
    QueuedThreadPool threadPool = new QueuedThreadPool(20, 2, (int) TimeUnit.MINUTES.toMillis(1), threadPoolQueue);
  threadPool.setName("jetty-test-server");
  threadPool.setDaemon(true);
}

Ahora que hemos configurado los recursos del sistema, necesitamos crear un servidor. Crearemos una clase de servidor y una clase de conector de servidor. El conector abrirá la red del servidor.

// Instance of server object - adds the threadPool to use
Server server = new Server(threadPool);
// instance of server connector with server instance to handle connections for
ServerConnector connector = new ServerConnector(server);
// set port to use
connector.setPort(8080);
// add connector to server
server.setConnectors(new Connector[]{connector});

A continuación, agregamos un ServletContextHandler para nuestros recursos REST. El controlador de contexto es responsable de proporcionar un entorno para ejecutar métodos de controlador de solicitudes. Esto incluye solicitudes, respuestas, sesiones y otros recursos importantes.

final ServletContextHandler servletContextHandler = new ServletContextHandler();
servletContextHandler.setContextPath("/");

Establecer ContextHandler. El siguiente paso es proporcionar ServletHolder para que ContextHandler funcione. ServletHolder se utiliza para la gestión de estado con el fin de manejar correctamente la ruta. Contiene un contenedor de Servlet que en sí mismo es solo una instancia. Servlet (recursos que el servidor puede llamar) se ha inicializado con todos los recursos que queremos usar en la aplicación.

// Holds all the resources we want to register (currently, there's nothing to do)
ResourceConfig resourceConfig = new ResourceConfig();
// handles state for servlets
final ServletHolder servletHolder = new ServletHolder(new ServletContainer(resourceConfig));
servletContextHandler.addServlet(servletHolder, "/*");

Cuando inicializamos ServletContextHandler, es hora de proporcionarlo a nuestro servidor para que pueda delegarle solicitudes. Para esto, utilizaremos la lista de controladores y utilizaremos nuestro ServletContextHandler y lo pasaremos a nuestro servidor.

HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] {servletContextHandler});
server.setHandler(handlers);

Hemos preparado todo (Yaaaay: D). Comencemos el servidor:

server.start();
server.join();

Ahora, se está ejecutando en el puerto 8080.

de: https://dev.to//funcke/web-services-in-java-1-configure-the-server-1kh7

Publicado 0 artículos originales · me gusta 0 · visitas 400

Supongo que te gusta

Origin blog.csdn.net/cunxiedian8614/article/details/105690170
Recomendado
Clasificación