Configuring the cxf-se-su service unit
On this page, we are going to configure the cxf-se-su service unit to provide our webservice .
Configuring the pom.xml
First of all we need to move into the created folder my-cxf-se-su.
Changing the project name
In order to make the build output a little bit more comprehensible we first change the project name in the generated pom.xml file.
Adding version of cxf to pom.xml
We must specify the version of CXF to use:
Adding the org.apache.cxf plugin
We add this plugin to the generated pom.xml file to element plugins.
This plugin is used for generating java classes from the WSDL file. We use the wsdl2java tool from JAX-WS (CXF framework).
The next step is to copy the WSDL file we already made in the my-cxf-bc-su to the my-cxf-se-su because we need it to generate
the java classes from it. So copy it now:
- from folder: my-cxf-bc-su/src/main/resources
- to folder: my-cxf-se-su/src/main/resources
Implementing generated ExampleService.java
We must implement our service in java. In directory src/main/java/org/apache/servicemix/examples is generated java file ExampleService.java.
So, we must rename this file to HelloImpl.java and change its content on this:
package org.apache.servicemix.examples;
import javax.jws.WebService;
import javax.xml.ws.Holder;
import org.apache.servicemix.examples.types.SayHello;
import org.apache.servicemix.examples.types.SayHelloResponse;
@WebService(serviceName = "HelloService", targetNamespace = "http:, endpointInterface = "org.apache.servicemix.examples.Hello")
public class HelloImpl implements Hello {
public void sayHello(Holder<String> name)
throws UnknownWordFault
{
if (name.value == null || name.value.length() == 0) {
org.apache.servicemix.examples.types.UnknownWordFault fault = new org.apache.servicemix.examples.types.UnknownWordFault();
throw new UnknownWordFault(null, fault);
}
name.value = "Hi " + name.value;
}
}
Configuring xbean.xml
Next we have to configure our new SU to really provide some webservice. We do this by modifying the file
named xbean.xml in the src/main/resources directory of our my-cxf-se-su module:
Next, we are going to create service assembly.
Things to remember
- You specify the plugin for a SU in Maven's pom.xml file
- In ServiceMix, most service units will be configured by a file named xbean.xml