Hola,
Si requieren implementar un selector de fechas, que permita seleccionar multiples fechas en un solo campo en React, lo pueden hacer de la siguiente forma:

1. Primero instalen la librería MultipleDatePicker, con el comando: 

npm install react-multiple-datepicker

2. Invocar el import:

import MultipleDatePicker from "react-multiple-datepicker";

3. Finalmente, crean su campo selector de fechas así:

return(

    <Form.Field required>
        <label>Mis fechas son:</label>
        <div style={styles}>
         <MultipleDatePicker onSubmit={datesSel => console.log("Las fechas seleccionadas son: ", datesSel)} />
        </div>
    </Form.Field>

)

Ya por fuera de la constante principal, crear está constante:

const styles = {
    fontFamily: 'sans-serif',
    textAlign: 'center',
};

Selector de fechas.

Múltiples fechas seleccionadas.

Fechas seleccionadas en el campo, con formato 'yyyy-MM-dd'.

Listo, eso es todo, solo queda desplegar y sale.

Basado en:

Código ejecutable:

Hola,
Si requieren implementar un selector de fechas, que permita seleccionar una fecha en un campo en React, lo pueden hacer de la siguiente forma:

1. Primero instalen la librería DatePicker, con el comando:

npm install react-datepicker

2. Invocar el import:

import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";


3. Finalmente, crean su campo selector de fechas así:

// constante para fecha
const [initialDate, setInitialDate] = useState(null);

return(
    <Form.Field required>
    <label>Mi fecha inicial:</label>
    <DatePicker dateFormat="dd/MM/yyyy" selected={initialDate} onChange={(dateInicial) => setInitialDate(dateInicial)} />
    </Form.Field>
)


Quedando así:


Si luego, se quiere seleccionar una fecha final definiéndole que la fecha final sea la misma fecha inicial o después de a fecha inicial se realiza así:

<Form.Field required>
    <label>Mi fecha final:</label>
    <DatePicker dateFormat="dd/MM/yyyy" minDate={initialDate} selected={finalDate} onChange={(dateFinal) => setFinalDate(dateFinal)} />
</Form.Field>

Adicional a esto, si se le quiere delimitar en la fecha final, que solo pueda seleccionarse hasta máximo 1 mes después de la fecha inicial se debe incluir dentro del campo de fecha final este comando:

maxDate={addMonths(initialDate, 1)}

Igualmente, adicionar su import:

import { addMonths } from 'date-fns';

Quedando así:

<Form.Field required>
    <label>Mi fecha Final:</label>
    <DatePicker dateFormat="dd/MM/yyyy" minDate={initialDate} maxDate=    {addMonths(initialDate, 1)} selected={finalDate} onChange={(dateFinal) => setFinalDate(dateFinal)} />
</Form.Field>


El formato para ambas fechas es día/mes/año, de la siguiente manera:


Para el siguiente ejemplo, la fecha inicial seleccionada fue el 11/10/2021, como se observan las otras fechas anteriores a ese día, están inhabilitadas:


Lo mismo pasa con los días después del 11/11/2021, puesto que solo tienen habilitado un mes para seleccionar:


Si se requiere cambiar el lenguaje del calendario de inglés a español, se utiliza el siguiente import:

import es from 'date-fns/locale/es';

Y luego en el input incluirlo así:

locale={es}

Quedando finalmente así:

<Form.Field required>
    <label>Mi fecha Final:</label>
    <DatePicker locale={es} dateFormat="dd/MM/yyyy" minDate={initialDate} maxDate=    {addMonths(initialDate, 1)} selected={finalDate} onChange={(dateFinal) => setFinalDate(dateFinal)} />
</Form.Field>


Listo, eso es todo, solo queda desplegar y sale.

Basado en:
Hola,

Si al realizar la declaración de un array que sea de tipo DTO y al setear el primer dato en la posición [0], el sistema te muestra un NullPointerException, se debe a que al crear un array de objetos, se crea el array pero no se crean los objetos. Ejemplo:

MiDTO miArrayDTO[] = new MiDTO[10];
System.out.println(miArrayDTO.length); // Funciona
System.out.println(miArrayDTO[0].isEmpty()); // NullPointerException

Después de la primera línea del código de arriba, se tiene el objeto miArrayDTO (se puede utilizar miArrayDTO.length), pero ese objeto solo contiene 10 referencias (miArrayDTO[0], miArrayDTO[1]...) a null; las instancias a las que apuntan todavía se tienen que asignar. Si no se asigna una instancia a esas referencias, al intentar invocar métodos o atributos se lanzará el NullPointerException.

Suponga que la clase MiDTO, tiene los siguientes datos:

private String Id;
private DatosDTO[] datos;

La solución a ese NullPointerException es la siguiente:

MiDTO[] miArrayDTO = new MiDTO[10];

miArrayDTO[0] = new MiDTO();
miArrayDTO[0].setId("0");

DatosDTO[] datos = new DatosDTO[2];

datos[0] = new DatosDTO();
datos[0].setCodigoDato("1000");
datos[0].setValorDato("Valor 1000");

datos[1] = new DatosDTO();
datos[1]. setCodigoDato("2000");
datos[1]. setValorDato("Valor 2000");

datos[2] = new DatosDTO();
datos[2]. setCodigoDato("3000");
datos[2]. setValorDato("Valor 3000");

miArrayDTO[0].setDatos(datos);

Listo, de está forma se soluciona ese error muy común en instancias de Arrays DTO.

Basado en:

Hola, 

Si tienen o trabajan en un computador con un sistema operativo basado en Unix/Linux y requieren ver carpetas ocultas, utilicen el atajo de teclado:

ctrl + h


Esto permitirá mostrar todos los archivos ocultos en el equipo.


Nota:

Recuerden que las carpetas o archivos ocultos en Linux comienzan por . en el nombre, ejemplo: .data 

Si al compilar un archivo build.gradle de un proyecto, les salta el error: "Could not find com.oracle:ojdbc8:19.6.0.0" o una versi´n similar y su línea del .gradle está así:

dependencies {
    compile group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '19.6.0.0'
}


Se debe a que no encuentra la forma de obtener la librería en el repositorio al cual está apuntando.

Para solucionar este error, se debe agregar la línea:

compile group: 'com.oracle.database.jdbc', name: 'ucp', version: '19.6.0.0'

Dentro de dependencies, de la siguiente manera:

dependencies {
    compile group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '19.6.0.0'
    compile group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '19.6.0.0'
}

Listo, ya debería de permitir descargar la librería cuando compilen nuevamente el archivo .gradle.
Si se generan clases de un WSDL para la invocación de un SOAP y durante la ejecución sale el error: "java.lang.IllegalArgumentException: com.co.prueba.WSPruebaService referenced from a method is not visible from class loader", esto se debe a que al ser clases generadas, deben excluirse de Spring Devtools "reiniciar" el cargador de clases.

Para realizar esta exclusión se debe crear dentro de la carpeta resources, una carpeta con nombre: META-INF y ahí crear un archivo llamado: spring-devtools.properties, el cual tendrá el siguiente código:

restart.exclude.*
restart.exclude.mygeneratedclasses=/*[generated]*.class

Ruta completa del archivo creado: /src/main/resources/META-INF/spring-devtools.properties

La propiedad: restart.exclude.* permite excluir las clases del cargador de clases de reinicio.
La propiedad: restart.exclude.mygeneratedclasses=/*[generated]*.class permite excluir todas las clases con generatedword como parte del paquete o nombre de clase.


Con esto, se soluciona dicho error, ya no se debería de tener problemas con las clases generadas.
Al invocar un SOAP con clases autogeneradas, sale el error: "com.sun.xml.internal.ws.spi.db.DatabindingException: com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions Two classes have the same XML type name", esto se debe a que internamente el sistema encuentra clases con el mismo nombre en el namespace, tal cual la siguiente imagen:


Eso al parecer es un problema de código, el cual se soluciona agregando la anotación de XML: namespace="Nombre Namespace Unico", de la siguiente manera:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "prueba", propOrder = {
    "pruebaRequest"
},namespace="NOMBRE UNICO NAMESPACE")
public class Prueba {

Esto, se debe de realizar en las clases que están relacionadas con este error.


Listo, con esto se soluciona este error.

Fuente original:
Si al invocar un soap-webservices en java11, les sale el error: "javax.xml.ws.WebServiceException: Provider com.sun.xml.internal.ws.spi.ProviderImpl not foun", se debe a que no encuentra la dependencia de sun, esto se soluciona de la siguiente manera:

En archivo pom.xml:

<dependency> 
    <groupId>com.sun.xml.ws</groupId> 
    <artifactId>rt</artifactId> 
    <version>2.3.1</version> 
</dependency>

En archivo build.gradle:

dependencies {
    compile group: 'com.sun.xml.ws', name: 'rt', version: '2.3.1'
}