Apache Tuscany > Home > SCA Overview > SCA Java > Java SCA Documentation Menu > Build your first Web Services with Tuscany | User List | Dev List | Issue Tracker |
Build your first Web Services with Tuscany "Creating Your First Web Service with Apache Tuscany video" Install the Latest Tuscany Eclipse Plugin"Installing the Apache Tuscany Eclipse Plugins video" A quick Step by Step walk through of downloading, installing, and verifying the Tuscany Eclipse Plugins. This section shows you how to install the lastest Tuscany Eclipse plugin. The plugin gives you the ability to run an SCA composite file from the Package Explorer. You will see a "Run As Tuscany" menu item when you bring up the context menu on composite files. Start Eclipse and go to Help -> Software Updates -> Find and Install. Select "Search for new features to install" and then click next Create a new Remote Site. On the next dialog, click on "New Remote Site..." to create a new site entry. Give it a name such as Select the "Remote Site" you just created, and click "Finish" Select the "Apache Tuscany SCA Tools" and click "Next", and then, on the next dialog, click "Finish". Accept the "Plugin License" and next click on "Install All". When asked to "restart eclipse", click the "yes" button. Create your Service Business LogicCreate a Java ProjectIn this step you create a Java Project in Eclipse to hold the composite service application. Construct ServicesFirst you create the "helloworld" package folders into which later in this step you place service implementations. Next you enter "helloworld" as the package Name, and press the Finish button to complete the HelloWorldIn this step you create the HelloWorld service interface and implementation. package helloworld; import org.osoa.sca.annotations.Remotable; @Remotable public interface HelloWorld { String sayHello(String name); } Select the "helloworld" package again. Select the New Java Class button . In the dialog enter The Java editor will open on the new created Java class. Replace the content of the editor by package helloworld; public class HelloWorldImpl implements HelloWorld { public String sayHello(String name) { return "Hello " + name; } } After completing these steps the content of the "ws" project will look as follows. Compose ServicesNow that you have all the required service implementations you compose them together to provide Select the "src" folder of the "ws" project. Right click to get the context menu, select New, and The Text editor will open on the new created composite file. Replace the content of the editor by <?xml version="1.0" encoding="UTF-8"?> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0" xmlns:c="http://helloworld" targetNamespace="http://helloworld" name="helloworld"> <component name="HelloWorldComponent"> <implementation.java class="helloworld.HelloWorldImpl"/> <service name="HelloWorld"> <binding.ws uri="http://localhost:8080/HelloWorld"/> </service> </component> </composite> After completing these steps the content of the "ws" project will look as follows.
Congratulations you completed your 1st composite service applications, now its time to take it into Use ServicesIn this step you launch and use the ws composite service application you created. First select the "helloworld.composite" file, in your "ws" project. Right click to get the The Eclipse console will show the following messages.
Next Launch your Web browser and enter the following address: http://localhost:8080/HelloWorld?wsdl You should now have your web service live, and the url should give you back a generated wsdl for the service. <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://helloworld" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:ns0="http://helloworld" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://helloworld" xmlns:ns="http://helloworld"> <xs:element name="sayHello"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="param0" nillable="true" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="sayHelloResponse"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> </wsdl:types> <wsdl:message name="sayHelloRequest"> <wsdl:part name="parameters" element="ns0:sayHello"> </wsdl:part> </wsdl:message> <wsdl:message name="sayHelloResponse"> <wsdl:part name="parameters" element="ns0:sayHelloResponse"> </wsdl:part> </wsdl:message> <wsdl:portType name="HelloWorldPortType"> <wsdl:operation name="sayHello"> <wsdl:input message="ns0:sayHelloRequest" wsaw:Action="urn:sayHello"> </wsdl:input> <wsdl:output message="ns0:sayHelloResponse" wsaw:Action="urn:sayHelloResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="HelloWorldHttpBinding" type="ns0:HelloWorldPortType"> <http:binding verb="POST"/> <wsdl:operation name="sayHello"> <http:operation location="HelloWorld/sayHello"/> <wsdl:input> <mime:content part="sayHello" type="text/xml"/> </wsdl:input> <wsdl:output> <mime:content part="sayHello" type="text/xml"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="HelloWorldSOAP11Binding" type="ns0:HelloWorldPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="sayHello"> <soap:operation soapAction="urn:sayHello" style="document"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="HelloWorld"> <wsdl:port name="HelloWorldSOAP11port_http" binding="ns0:HelloWorldSOAP11Binding"> <soap:address location="http://192.168.209.1:8080/HelloWorld"/> </wsdl:port> <wsdl:port name="HelloWorldHttpport" binding="ns0:HelloWorldHttpBinding"> <http:address location="http://192.168.209.1:8080/HelloWorld"/> </wsdl:port> </wsdl:service> </wsdl:definitions> You are finished. You have created the HelloWorld web service using Apache Tuscany. |