Java >> Java opplæring >  >> Java

Forstå WebLogic Web Service

1. Oversikt

I denne artikkelen skal vi ta en titt på eksempler på Weblogic Web Service.

2. WebLogic Web Service

Ved å bruke weblogic webservices-rammeverket bygges SOAP-webtjenester. SOAP er et akronym for Simple Object Access Protocol. SOAP brukes til å utvikle webtjenester som er basert på XML-basert industristandardprotokoll. SOAP-sikkerhet er basert på WS Security. SOAP-netttjenester er plattform- og språkuavhengige.

2.1 Forutsetninger

Java 8 kreves på operativsystemet Linux, Windows eller Mac. Ant 1.10.5 kreves for maurprosjekter. Weblogic 12.1.3 brukes som en servletbeholder for å distribuere eksemplene.

2.2 Last ned

Du kan laste ned Java 8 fra Oracle-nettstedet. Apache Ant 1.10.5 kan lastes ned fra denne lenken. Weblogic 12.1.3 kan lastes ned fra weblogic-nettstedet.

2.3 Oppsett

Nedenfor er oppsettkommandoene som kreves for Java-miljøet.

Oppsett
JAVA_HOME="/desktop/jdk1.8.0_73"
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH

2.3.1. Ant – Oppsett

Miljøvariablene for maur er satt som nedenfor:

Maurmiljø
JAVA_HOME="/desktop/jdk1.8.0_73"
ANT_HOME= "Users/bhagvan.kommadi/desktop/opensource/apache-ant-1.10.5"
export ANT_HOME=$ANT_HOME\bin\ant
export PATH=$ANT_HOME:$PATH

2.4 Weblogic Web Service i Java

SOAP er basert på W eb Services Description Language (WSDL). Først lager vi en tjeneste. Koden nedenfor viser tjenesten Greetings tjenesteimplementering.

HilsenImpl
package webservices;
import javax.jws.WebService;
@WebService(name="GreetingsPortType", serviceName="GreetingsService")
public class GreetingsImpl {
  public String message(String message) {
  try {
    System.out.println("message is" + message);
  } catch (Exception exception) { exception.printStackTrace(); }

    return "The message sent is'" + message + "'";
  }
}

EAR lages ved å bruke maurskriptet. Ant build.xml er vist nedenfor.

Ant Build.xml
<project name="webservices-greetings" default="all">
  <!-- set global properties for this build -->
  <property name="wls.username" value="manager" />
  <property name="wls.password" value="manager1$" />
  <property name="wls.hostname" value="localhost" />
  <property name="wls.port" value="7001" />
  <property name="wls.server.name" value="myserver" />
  <property name="ear.deployed.name" value="greetingsEar" />
  <property name="example-output" value="output" />
  <property name="ear-dir" value="${example-output}/greetingsEar" />
  <property name="clientclass-dir" value="${example-output}/clientclasses" />
  <path id="client.class.path">
    <pathelement path="${clientclass-dir}"/>
    <pathelement path="${java.class.path}"/>
    <pathelement path="${classpath}"/>  
  </path>
  <path id="weblogic.class.path">
<fileset dir="${weblogic.dir}">
<include name="*.jar"/>
</fileset>
</path>    
  <taskdef name="jwsc"
    classname="weblogic.wsee.tools.anttasks.JwscTask" />
  <taskdef name="clientgen"
    classname="weblogic.wsee.tools.anttasks.ClientGenTask" />
  <taskdef name="wldeploy"
    classname="weblogic.ant.taskdefs.management.WLDeploy"/>
  <target name="all" depends="clean,build-service,deploy,client" />
  <target name="clean" depends="undeploy">
    <delete dir="${example-output}"/>
  </target>
  <target name="build-service">
    <jwsc
      srcdir="src"
      destdir="${ear-dir}">
      <jws file="webservices/GreetingsImpl.java" 
          type="JAXWS"/>
    </jwsc>
  </target>
     
  <target name="deploy">
    <wldeploy action="deploy" name="${ear.deployed.name}"
      source="${ear-dir}" user="${wls.username}"
      password="${wls.password}" verbose="true"
      adminurl="t3://${wls.hostname}:${wls.port}"
      targets="${wls.server.name}" />
  </target>
  <target name="undeploy">
    <wldeploy action="undeploy" name="${ear.deployed.name}"
      failonerror="false"
      user="${wls.username}" password="${wls.password}" verbose="true"
      adminurl="t3://${wls.hostname}:${wls.port}"
      targets="${wls.server.name}" />
  </target>
  <target name="client">
    <clientgen
      wsdl="http://${wls.hostname}:${wls.port}/GreetingsImpl/GreetingsService?WSDL"
      destDir="${clientclass-dir}"
      packageName="webservices.client"
      type="JAXWS"/>
    <javac
      srcdir="${clientclass-dir}" destdir="${clientclass-dir}"
      includes="**/*.java"/>
    <javac
      srcdir="src" destdir="${clientclass-dir}"
      includes="webservices/client/**/*.java"/>
  </target>
  <target name="run">
    <javac
      srcdir="src" destdir="${clientclass-dir}"
      includes="webservices/client/*.java"/>      
    <java classname="webservices.client.Main" 
          fork="true" failonerror="true" >
      <classpath refid="client.class.path"/>
      <arg 
 line="http://${wls.hostname}:${wls.port}/GreetingsImpl/GreetingsService"  />
    </java> </target>
</project>

Ant command build-service brukes til å bygge utgangsøret. Følgende kommando brukes til å utføre byggingen av webtjenester.Ant Build Service

ant build-service

Utdataene fra ant build-tjenestekommandoen vises nedenfor.

WSDL er opprettet for Greetings Service. WSDL opprettet vises nedenfor i koden.GreetingsImpl

<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservices/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservices/" name="GreetingsService">
<script id="tinyhippos-injected"/>
<types>
<xsd:schema>
<xsd:import namespace="http://webservices/" schemaLocation="http://localhost:7001/GreetingsImpl/GreetingsService?xsd=1"/>
</xsd:schema>
</types>
<message name="message">
<part name="parameters" element="tns:message"/>
</message>
<message name="messageResponse">
<part name="parameters" element="tns:messageResponse"/>
</message>
<portType name="GreetingsPortType">
<operation name="message">
<input wsam:Action="http://webservices/GreetingsPortType/messageRequest" message="tns:message"/>
<output wsam:Action="http://webservices/GreetingsPortType/messageResponse" message="tns:messageResponse"/>
</operation>
</portType>
<binding name="GreetingsPortTypePortBinding" type="tns:GreetingsPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="message">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="GreetingsService">
<port name="GreetingsPortTypePort" binding="tns:GreetingsPortTypePortBinding">
<soap:address location="http://localhost:7001/GreetingsImpl/GreetingsService"/>
</port>
</service>
</definitions>

Weblogic-serveren konfigureres ved å bruke kommandoen nedenfor:Weblogic Configure

./configure.sh

Utgangen av kommandoen er vist nedenfor:

Konsollen kan nås ved å bruke URL:http://localhost:7001/console

Greetings Ear kan nås fra applikasjonene på konsollen

WSDL kan nås her

Utgangen vises i skjermbildet nedenfor:

Webservices-klienten er generert for Greetings Webservice. Kommandoen som brukes er vist nedenfor:Ant Client

ant client

Utgangen av kommandoen er vist nedenfor:

Klientklasser brukes til å påkalle tjenesten. Koden vises nedenfor.Client Main

package webservices.client;

import webservices.client.*;

public class Main {
  public static void main(String[] args) { 
    GreetingsService test = new GreetingsService(); 
    GreetingsPortType port = test.getGreetingsPortTypePort();
        String result = port.message("Greetings to you");
    System.out.println("Greeting Service called. Result: " +  result);
  }
}

Hilsen Webservice påkalles ved å utføre klienten. Kommandoen som brukes er vist nedenfor:Ant Run

ant run

Utgangen av kommandoen er vist nedenfor:

Utgangen er "Hilsen til deg", som er meldingen Sendt.

3. Last ned kildekoden

Weblogikk
Java Tag