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.
OppsettJAVA_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.
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.