La creación de servicios web en weblogic
LA servicio web
Conteúdo
Todos los detalles del servicio web están ocultos al usuario, y el servicio es tanto de hardware como de software independiente. Esto anima a los desarrolladores de software para crear aplicaciones que consisten en, servicios individuales pequeños, que luego pueden ser utilizados solos o en grupos para realizar tareas más complejas.
Puede crear un servicio web de dos maneras: manualmente, a través de la creación de fuente de Java y los archivos de configuración, o el uso de un sistema de interfaz gráfica llamada WebLogic Workshop. En este artículo, se crea un servicio web de forma manual.
Definición de un servicio web
Antes de crear su servicio web, debe definir lo que va a hacer. Esto le permite construir correctamente la interfaz que otras aplicaciones deben cumplir si quieren comunicarse con su servicio web.
El más decisión básica de diseño es cuál de los dos tipos generales de servicios web que va a crear:
- Servicio síncrono
- Servicio asíncrono
LA servicio web sincrónico, que es la predeterminada, se inicia cuando el servicio web recibe un mensaje. Este servicio web responde inmediatamente.
Servicios web síncronos son más útiles cuando el programa cliente requiere los datos devueltos desde la solicitud de inmediato. Un ejemplo de este tipo de datos es la cotización actual de las acciones de una empresa en particular.
Un asincrónico servicio web es asincrónica, por lo que los mensajes se puede cambiar libremente entre el cliente y el servicio web. Un mensaje de un lado no obliga a la otra para enviar un mensaje correspondiente. Cuando un cliente envía un mensaje a un servicio web asíncrono, el cliente no espera un mensaje de vuelta del servicio web. El servicio web puede enviar un mensaje de vuelta al cliente en un momento posterior, pero nada corbatas inherentemente este mensaje al mensaje original que el cliente envió.
Servicios web asincrónicos son una buena opción cuando se está enviando información que no requiere una respuesta. Por ejemplo, es posible que desee un envío un mensaje a varios de sus servidores, dándoles un nuevo mensaje de bienvenida para mostrar a los usuarios.
La elección y la construcción de un componente backend
El propósito de su servicio web es permitir a los clientes remotos acceder a los servicios que usted proporciona. Estos servicios, llamado componente backend, tomar la forma de código Java. Usted puede construir su componente backend como uno de los siguientes:
- Un método de una sesión EJB sin estado
- Un método de una clase Java
- Un método consumidor JMS
WebLogic puede hacer cualquiera de estos elementos disponibles como un servicio web. Esto hace que sea conveniente para empaquetar código Java existente como un servicio web. Si ya has creado EJB de sesión sin estado, puede empaquetar como un servicio web. O si existe el código en clases regulares Java, puede proporcionar acceso a su clase como un servicio web. También puede utilizar la mensajería JMS como un servicio de back-end para su servicio web.
La construcción de un servicio web síncrona
En esta sección, se genera un servicio web síncrona usando una clase Java regular y luego mediante una sesión EJB sin estado. En primer lugar, debe escribir el componente de servidor. Esta será ya sea una clase Java, un EJB sin estado, o un método de consumo de JMS.
Trabajar con un componente de Java clase backend
Debe seguir algunas reglas en la aplicación de una operación de servicio web usando una clase Java:
- No empiece a cualquier hilo. Esta regla se aplica a todo el código Java que se ejecuta en el servidor WebLogic.
- Definir un constructor por defecto sin argumentos.
- Definir como públicos los métodos de la clase Java que se expone como las operaciones de servicio web.
Usted debe escribir código Java thread-safe porque WebLogic Server mantiene una única instancia de una clase Java que implementa una operación de servicio web, y cada invocación del servicio web utiliza esta misma instancia.
Para un ejemplo de la aplicación de una operación de servicio web WebLogic con una clase Java, vaya al siguiente directorio:
WL_HOME samples servidor src examples webservices básica JavaClass
dónde WL_HOME se refiere al directorio principal de su instalación de WebLogic Server. En un sistema Windows, este directorio es usualmente C: bea weblogic81.
El Listado 1 muestra una clase Java que se puede utilizar como un componente de servidor. Esta clase Java contiene un único método, llamado sampleMethod, que acepta un int y devuelve un String.
Ficha 1: Java Class Componente Backend
paquete com.dummies.ejb-
public class SampleBackendComponent
{
public String sampleMethod (int num)
{
switch (num)
{
caso 1: return "One" -
caso 2: return "Two" -
caso 3: return "Tres" -
caso 4: return "Cuatro" -
caso 5: return "Five" -
caso 6: return "Six" -
Caso 7: return "Seven" -
Caso 8: return "Ocho" -
caso 9: return "Nine" -
caso 10: return "Diez" -
default: return "Algunos Número" -
}
}
}
Trabajar con un componente backend EJB de sesión sin estado
También puede optar por construir su componente backend como una sesión EJB sin estado. Escribir código Java para un EJB de sesión sin estado para un servicio web no es diferente a escribir un EJB autónomo.
En el descriptor de despliegue web services.xml, puede especificar que una operación de servicio web es una manera, lo que significa que la aplicación cliente que invoca el servicio web no espera una respuesta. Cuando se escribe el código de Java para el método EJB que implementa este tipo de operación, debe especificar que devuelve void.
Al elegir entre usar un EJB o un componente de clase backend Java, considere las otras formas en las que se utilizará el componente de servidor. Si su componente backend se accederá comúnmente como un EJB, construirlo como un EJB. Esto le permite usar el mismo código tanto para su EJB y servicios web.
Considerablemente se requieren más recursos para llamar a un servicio web que llamar a un EJB. Debido a esto, es común para crear todos los componentes del backend como EJB y luego permitir que las aplicaciones externas para acceder a los componentes del backend como servicios web. Sus propias aplicaciones locales que se ejecutan en la misma red que el servidor WebLogic, pueden utilizar el método de llamada EJB rápido.
El Listado 2 muestra el archivo de bean que implementa el componente EJB backend. El componente EJB backend es casi el mismo que el componente de clase backend Java. La principal diferencia es el código adicional que se utiliza para apoyar el EJB.
Ficha 2: EJB backend Componente
paquete com.dummies.ejb-
importar javax.ejb *. -
importación java.rmi *. -
importar javax.swing *. -
public class SampleBean implementa SessionBean
{
STX privada SessionContext
// Métodos necesarios, no utilizados por este tipo de frijol
pública ejbCreate void () {}
pública ejbRemove void () {}
pública ejbActivate void () {}
pública ejbPassivate void () {}
// Setter para la SessionContext
public void setSessionContext (SessionContext CTX)
{
ctx = this.stx-
}
// El método de muestreo
public String sampleMethod (int num)
lanza RemoteException
{
switch (num)
{
caso 1: return "One" -
caso 2: return "Two" -
caso 3: return "Tres" -
caso 4: return "Cuatro" -
caso 5: return "Five" -
caso 6: return "Six" -
Caso 7: return "Seven" -
Caso 8: return "Ocho" -
caso 9: return "Nine" -
caso 10: return "Diez" -
default: return "Algunos Número" -
}
}
}
Debe especificar que el frijol es un EJB sin estado en el archivo ejb-jar.xml, que se muestra en el Listado 3. Puede utilizar muchos nodos y atributos.
Ficha 3: ejb-jar.xml de archivos para un componente de Backend
'http://java.sun.com/dtd/ejb-jar_2_0.dtd>
SampleObject
com.dummies.ejb.SampleBean
Sin estado
Recipiente