Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 1. Deploying a Web Service into Red Hat JBoss Fuse
Abstract
Here we will take an in depth look at the CXF OSGi example, a JAX-WS web service packaged as an OSGi bundle.
You are going to build and deploy a simple service that is based on a WSDL document. The source for this example can be found in the
InstallDir/examples/cxf-osgi folder of your Red Hat JBoss Fuse installation.
The example uses the JBoss Fuse Maven tooling to build a bundle that contains the service implementation and all of the metadata needed to deploy it into the JBoss Fuse container.
The sample code includes a web page,
client.html, that will allow you to access the service once it is exposed.
1.1. Deploying the Example Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Before you run the example, start Red Hat JBoss Fuse.
Installing a prebuilt version of the example Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
To install and run a prebuilt version of this example, enter the following command in the Red Hat JBoss Fuse console:
features:install examples-cxf-osgi
Building and deploying the example yourself Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
To build and deploy the example do the following:
- If you installed the examples-cxf-osgi feature, first uninstall it by running the following from the Red Hat JBoss Fuse console:
features:uninstall examples-cxf-osgi - In a separate command window or terminal, change to the root folder of the example.
cd InstallDir/examples/cxf-osgi - Enter the following command:
mvn installThis command will build a bundle calledcxf-osgi-6.0.0.redhat-024.jarand place it into thetargetfolder of the example. - Copy the bundle to
InstallDir/deployto deploy it to the container.
Testing the example Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
To see if the example is running you can visit http://localhost:8181/cxf/HelloWorld?wsdl in your Web browser. You should see the WSDL shown in Example 1.1, “CXF OSGi Example WSDL”.
Example 1.1. CXF OSGi Example WSDL
<wsdl:definitions name="HelloWorldImplService"
targetNamespace="http://cxf.examples.servicemix.apache.org/">
<wsdl:types>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="unqualified"
targetNamespace="http://cxf.examples.servicemix.apache.org/">
<xs:complexType name="sayHi">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sayHiResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="sayHi" nillable="true" type="sayHi"/>
<xs:element name="sayHiResponse" nillable="true" type="sayHiResponse"/>
</xs:schema>
</wsdl:types>
<wsdl:message name="sayHiResponse">
<wsdl:part element="tns:sayHiResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="sayHi">
<wsdl:part element="tns:sayHi" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="HelloWorld">
<wsdl:operation name="sayHi">
<wsdl:input message="tns:sayHi" name="sayHi">
</wsdl:input>
<wsdl:output message="tns:sayHiResponse" name="sayHiResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="HelloWorldImplServiceSoapBinding" type="tns:HelloWorld">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="sayHi">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="sayHi">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="sayHiResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="HelloWorldImplService">
<wsdl:port binding="tns:HelloWorldImplServiceSoapBinding" name="HelloWorldImplPort">
<soap:address location="http://localhost:8181/cxf/HelloWorld"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>