Criação de serviços web no weblogic

UMA serviço de internet

é um procedimento remoto disponível para os clientes através de TCP / IP, tipicamente utilizando HTTP ou SMTP como o transporte e XML para codificação. O serviço web é descrito usando a notação XML padrão chamada Descrição do Serviço. Um serviço web cumpre uma única tarefa ou um conjunto de tarefas.

Todos os detalhes do serviço web estão escondidos do usuário, eo serviço é tanto de hardware e software independente. Isso incentiva os desenvolvedores de software criem aplicativos que consistem em serviços individuais pequenos, que podem então ser usados ​​sozinhos ou em grupos para realizar tarefas mais complexas.

Você pode criar um serviço web de duas maneiras: manualmente, através da criação de fonte de Java e arquivos de configuração, ou utilizando um sistema de GUI chamada WebLogic Workshop. Neste artigo, você criar um serviço web manualmente.

Video: WebLogic: Use the Maven Plugin to Create a Web Service and Web Application

Definição de um serviço web

Antes de criar seu serviço web, você deve definir o que vai fazer. Isto permite construir adequadamente a interface que outras aplicações devem aderir se quiserem se comunicar com o serviço web.

A decisão de projeto mais básico é qual dos dois tipos gerais de serviços da web que você irá criar:

  • serviço Synchronous
  • serviço assíncrono

UMA serviço de web síncrono, que é o padrão, começa quando o serviço web recebe uma mensagem. Este serviço web responde imediatamente.

serviços web síncronos são mais úteis quando o programa cliente requer os dados retornados da solicitação imediatamente. Um exemplo deste tipo de dados é a cotação atual para uma empresa particular.

A assíncrono serviço web é assíncrona, para que as mensagens podem ser trocados livremente entre o cliente eo serviço web. Uma mensagem de um lado não obriga o outro para enviar uma mensagem correspondente. Quando um cliente envia uma mensagem para um serviço web assíncrona, o cliente não espera por uma mensagem de volta a partir do serviço web. O serviço web pode enviar uma mensagem de volta para o cliente em um momento posterior, mas nada inerentemente amarra essa mensagem para a mensagem original que o cliente enviado.

serviços web assíncronas são uma boa opção quando você está enviando informações que não requer uma resposta. Por exemplo, você pode querer um enviar uma mensagem para vários de seus servidores, dando-lhes uma nova mensagem de saudação para exibir aos usuários.

Escolhendo e construindo um componente backend

O propósito do seu serviço web é permitir que clientes remotos acessem serviços que você fornece. Estes serviços, o chamado componente backend, assumir a forma de código Java. Você pode construir o seu componente de backend como um dos seguintes procedimentos:

Video: Weblogic Tutorial

  • Um método de um EJB de sessão sem estado
  • Um método de uma classe Java
  • Um método consumidor JMS

WebLogic pode fazer qualquer um desses itens disponível como um serviço web. Isto torna mais conveniente para empacotar o código Java existente como um serviço web. Se você já criou EJBs de sessão sem estado, você pode empacotá-los como um serviço web. Ou se o seu código no classes Java regulares, você pode fornecer acesso a sua classe como um serviço web. Você também pode usar mensagens JMS como um serviço de back-end para o seu serviço web.

Construir um serviço web síncrono

Nesta seção, você constrói um serviço web síncrona usando uma classe Java regular e, em seguida, usando um EJB de sessão sem estado. Primeiro, você deve escrever o componente de backend. Isso vai ser uma classe Java, um EJB apátrida, ou um método consumidor JMS.

Trabalhando com um componente Java classe backend

Você deve seguir algumas regras ao implementar uma operação de serviço da web usando uma classe Java:

  • Não comece qualquer segmentos. Esta regra aplica-se a todo o código Java que roda em WebLogic Server.
  • Definir um construtor padrão sem argumentos.
  • Definir como público os métodos da classe Java que será exposto como operações de serviços web.

Você deve escrever o código Java thread-safe porque WebLogic Server mantém apenas uma única instância de uma classe Java que implementa uma operação de serviço web, e cada invocação do serviço web usa essa mesma instância.

Para um exemplo de implementação de uma operação de serviço web WebLogic com uma classe Java, vá para o seguinte diretório:



WL_HOMEsamplesserversrcexampleswebservicesbasicjavaclass

Video: WebLogic Domain Migration and Upgrade - New Techniques

Onde WL_HOME refere-se ao diretório principal da instalação do WebLogic Server. Em um sistema Windows, esse diretório é normalmente C: beaweblogic81.

A Listagem 1 mostra uma classe Java que você poderia usar como um componente back-end. Esta classe Java contém um único método, chamado sampleMethod, que aceita um int e retorna um String.

Listagem 1: Classe Java Backend Component

com.dummies.ejb- pacote
SampleBackendComponent classe pública
{
Cordas sampleMethod pública (int num)
{
interruptor (NUM)
{
Caso 1: return “One” -
case 2: retornar “Two” -
case 3: voltar “Três” -
Caso 4: retornar “Four” -
Caso 5: retornar “Five” -
Caso 6: return “Six” -
Caso 7: return “Seven” -
Caso 8: return “Oito” -
Caso 9: return “Nine” -
caso 10: return “Ten” -
default: return “Alguns Number” -
}
}
}

Trabalhando com um componente EJB backend de sessão sem estado

Você também pode optar por construir seu componente backend como um EJB de sessão sem estado. Escrever código Java para um EJB de sessão sem estado para um serviço web não é diferente do que escrever um EJB independente.

Video: Developing with Oracle WebLogic Server 12.1.3

No descritor de implementação web-services.xml, você pode especificar que uma operação de serviço web é um caminho, o que significa que o aplicativo cliente que chama o serviço web não espera por uma resposta. Quando você escrever o código Java para o método EJB que implementa este tipo de operação, é necessário especificar que ele retorna vazio.

Ao escolher entre usar um EJB ou um componente de classe backend Java, considere as outras maneiras em que o componente de backend serão utilizados. Se o componente de backend será comumente acessado como um EJB, construí-lo como um EJB. Isso permite que você usar o mesmo código para ambos sua EJB e serviço web.

Consideravelmente mais recursos são necessários para chamar um serviço web do que chamar um EJB. Devido a isso, é comum para criar todos os seus componentes de back-end como EJBs e, em seguida, permitir que aplicações externas para acesso aos seus componentes de back-end como serviços web. Suas próprias aplicações locais, que estão sendo executados na mesma rede como o servidor WebLogic, pode usar o método de chamada EJB mais rápido.

A Listagem 2 mostra o arquivo de feijão que implementa o componente EJB de backend. O componente EJB backend é quase o mesmo que o componente classe backend Java. A principal diferença é o código adicional utilizado para apoiar o EJB.

Listagem 2: EJB de backend Component

com.dummies.ejb- pacote
importar javax.ejb. * -
importação java.rmi. * -
importar javax.swing. * -
classe pública SampleBean implementa SessionBean
{
stx- SessionContext privada
// métodos necessários, não utilizados por este tipo de feijão
ejbCreate public void () {}
ejbRemove public void () {}
ejbActivate public void () {}
ejbPassivate public void () {}
// setter para o SessionContext
setSessionContext public void (SessionContext CTX)
{
ctx = this.stx-
}
// o método amostra
Cordas sampleMethod pública (int num)
lança RemoteException
{
interruptor (NUM)
{
Caso 1: return “One” -
case 2: retornar “Two” -
case 3: voltar “Três” -
Caso 4: retornar “Four” -
Caso 5: retornar “Five” -
Caso 6: return “Six” -
Caso 7: return “Seven” -
Caso 8: return “Oito” -
Caso 9: return “Nine” -
caso 10: return “Ten” -
default: return “Alguns Number” -
}
}

}

Você deve especificar que o feijão é um EJB apátridas no arquivo ejb-jar.xml, que é mostrado na Listagem 3. Você pode usar muitos nós e atributos.

Listagem 3: O arquivo ejb-jar.xml para um componente back-end

‘Http://java.sun.com/dtd/ejb-jar_2_0.dtd`gt;



SampleObject
com.dummies.ejb.SampleHome
com.dummies.ejb.Sample
com.dummies.ejb.SampleBean
stateless
Recipiente



Publicações relacionadas