style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Java Enterprise

J2EE, MVC, JSF, Struts, Hibernate, Spring, EJB's, Ant.

Payara, Web content

Del post anterior pueden observar que tenemos 2 servicios que la idea es usarlos en al menos una pequeña aplicación web, esta estará creada con las siguientes dependencias:

  • Preact
  • Redux
  • Ramda
  • Less

Para ello tomaremos como base la plantilla que he creado para una aplicación React. https://github.com/betotto/react-template. Las instrucciones de como usarla están en el README de ese repo.

Configurando el ambiente de desarrollo

La plantilla usa webpack como herramienta de construcción del sitio, pero solo nos enfocaremos a la parte puramente web, los servicios no estarán en Nodejs sino en nuestra aplicación que desarrollamos en Payara, pero no vamos a estar haciendo dos cambios en el código compilando y desplegando para ver que el cambio funciona, ya tenemos los servicios, entonces los dejamos corriendo en el server como si fuera un servidor de servicios cualquiera y crearemos la aplicación con webpack-dev-server.

Pero oh sorpresa, dos cosas importantes:

- La primera es que el servidor Payara hace un binding a la ip del servidor en el que inicias la aplicación

Payara, Kotlin y Mysql

Bueno comenzando la parte de los servicios vamos a tener básicamente dos endpoints uno para consultar preguntas y otro para insertar preguntas.

GET /services/questions/getAll
POST /services/questions/add

Por tanto creamos el archivo kotlin QuestionService en la carpeta question (primero crear la carpeta question), si no encontramos preguntas regresaremos 404, esto es a modo de ejemplo si quieres puedes regresar 200 y un array vacio es tu gusto y/o disenio, usaremos Gson como librería para parsear JSON a Kotlin y viceversa:

package question

import com.google.gson.Gson
import javax.ws.rs.*
import javax.ws.rs.core.MediaType
import javax.ws.rs.core.Response

@Path("/question")
class QuestionService {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/getAll")
    fun getAllQuestionsApi(): Response {
        val questions = getAllQuestions()
        return if(questions.isEmpty()) {
            Response.status(404).build()
        } else {
            Response.status(200).entity(Gson().toJson(questions)).build()
        }
    }

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)

Payara Hello-World

Ya sabia que no iban a dejar morir así como así a JEE, ahora que ya es mas independiente de Oracle seguramente evolucionara mas rápido de lo que lo había hecho, uno de los primeros servidores que me llamo mucho la atención fue Glassfish, cuando fue lanzado era el mas avanzado en JEE en su momento, creo que lo sigue siendo ya que todas las especificaciones de JEE se crean primero ahi, aunque ya no tiene soporte por parte de una empresa como lo era entonces SUN, desde luego Oracle no iba a hacerlo competir con Websphere, tan caro que les salió comprarselo a BEA.

Pero bueno pasado es pasado y los servidores JEE parecería que solo seguirían vivos en los ambientes viejos y que pocas veces cambian como bancos o empresas de seguros (donde todavía se puede encontrar AS400 y muchas cajeros corriendo Windows XP). A quien le suena el requerimiento: queremos que la aplicación funcione con las tecnologías mas modernas pero en IE6 o IE7 ?

JAVA DEV DAY 2018

Hola, uno de los eventos mas grande de programacion esta de regreso en Guadalajara, tendra speakers internacionales y nacionales, el evento es todo el dia da link en el link para tener mas informacion

http://bit.ly/javadevday18

Heredar transacción de Java EE a Spring

Hola después de mucho tiempo, hace tiempo me topé con un problema, espero puedan ayudarme con un panorama más amplio y ver de que otras formas podría resolver este problema.

Teniendo una clase Java EE y un método donde se realizan dichas acciones, tengo la anotación @Transactional, que se utiliza para poder abrir y manejar una transacción en la cual se realiza una afectación a BD, pero en este proceso se requiere una dependencia que se realizó con Spring y que de igual manera utiliza transacción si ocurriera algún fallo, mi pregunta es, cómo puedo heredar las transacciones desde Java EE a Spring y viceversa para no perder el control en ninguna de las 2 partes?

Ya que si del lado de la dependencia Spring no falla, pero si falla del lado de Java EE, no podría avisarle a Spring que hubo un fallo y debe también aplicar RollBack, bueno espero puedan aportar con alguna idea.

Saludos!

Bloqueo de tabla ocasionada por Trigger

Que tal amigos una pregunta..

Un trigger puede hacer que la tabla se bloquee??? digo esto debido a que tengo una tabla donde hay 2 trigger un AFTER INSERT y otro AFTER UPDATE por ahora el que al parecer esta causando problema es el primero (AFTER INSERT) ya que al hacer varios INSERTS simultáneos llega un punto donde me sale el error Try Restarting Trasaction etc... y al quitar esos triggers de la DB los procesos a pesar de ser simultáneos los hace de manera correcta.

Estoy usando Mybatis,Spring y Mysql.

Gracias.

Guia Basica de Maven

Estimados,

Les dejo una guía Básica de Maven, para los recien llegados, la idea es que con esta guía se pongan manos a la obra cuando antes.

http://marcosrobertos.blogspot.cl/2017/12/guia-rapida-de-maven.html

Saludos.

Error 404 testing controladores spring mvc con mockito y spring-test

Buenos días a todos.
He estado trabajando en test de aplicaciones spring mvc con spring-test y mockito y me he topado con el problema de Status 404 cuando intento acceder a los controladores (Status Expected: 201 but was 404), Alguien me podría apoyar para solucionarlo?

Controlador

@RequestMapping(value="app/bitacora.html",method=RequestMethod.GET)
@ResponseBody
public ModelAndView testcontroller(ModelAndView vista, HttpServletRequest req){

/*
* obtener los valores del request
*/
String tipoBusqueda=req.getParameter("selectTipoBusqueda");
//Aca se procesan los valores del request

vista.addObject("totalPaginas", resultadoService.get(2));
vista.setViewName("Bitacora.jsp");//
return vista;
}

Test

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"**/spring-servletTest.xml"})
@WebAppConfiguration
public class Login {
@Mock
BitacoraServices bitacoraServices;

@Spy
BitacoraRepository bitacoraRepository;

@InjectMocks
private BitacoraController bitacoraController;

private MockMvc mockMvc;

@Before
public void setup() {

Server-Sent Events con Spring 4

Les comparto una nueva entrada en mi blog sobre Server-Sent Events en Spring 4.

https://windoctor7.github.io/Spring-SSE.html

La Fundación Eclipse será el nuevo hogar de la plataforma Java EE


Hace algunas semanas Oracle anunció la iniciativa de buscar un nuevo hogar para la plataforma Java EE. En busca de que la evolución de la misma sea más ágil, flexible y abierta.

El día de hoy se dio a conocer que después de platicar con varias organizaciones, la
a Fundación Eclipse resultó seleccionada para albergar el proyecto y plataforma Java EE.

El repositorio de código de Java EE ahora está en Github: https://github.com/javaee

Aquí el anuncio oficial de Oracle: https://blogs.oracle.com/theaquarium/opening-up-ee-update

**Update**

Anuncio oficial de Red Hat: http://middlewareblog.redhat.com/2017/09/12/java-ee-moves-to-eclipse/

Distribuir contenido

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">