Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

On this page, we are going to

Excerpt

configure the my- cxf-se-su service unit to provide our service

.

Configuring pom.xml

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.

No Format
 
<project>
  ...
  <name>CXF WSDL Tutorial :: CXF SE SU</name>
  ...
</project>

Adding parent's element to generated pom.xml

We must to specify parent of this project. So, we add this to generated pom.xml.

No Format
 
 <parent>
    <artifactId>parent</artifactId>
    <groupId>org.apache.servicemix.tutorial</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>

Adding version of cxf to pom.xml

We must specify version of CXF.

No Format
 
<project>
...
  <properties>
    ...
	<cxf-version> 2.0.7</cxf-version>
    ...
  </properties>
...
</project>

Implementing generated ExampleService.java

We must implement our service in java. In our example, it's HelloImpl.java

No Format

package com.mycompany.hello;

import javax.jws.WebService;
import javax.xml.ws.Holder;

import com.mycompany.hello.types.SayHello;
import com.mycompany.hello.types.SayHelloResponse;

@WebService(serviceName = "HelloService", targetNamespace = "http://mycompany.com/hello", endpointInterface = "com.mycompany.hello.Hello")
public class HelloImpl implements Hello {

    public void sayHello(Holder<String> name)
        throws UnknownWordFault
    {
        if (name.value == null || name.value.length() == 0) {
            com.mycompany.hello.types.UnknownWordFault fault = new com.mycompany.hello.types.UnknownWordFault();
            throw new UnknownWordFault(null, fault);
        }
 
      name.value = "Hi " + name.value;
    }

}

Adding org.apache.cxf plugin

We add this plugin to the generated pom.xml file to element plugins.

...

Where service.wsdl is WSDL file, which we made in my-cxf-bc-su. We must copy this WSDL file from my-cxf-bc-su/src/main/resources to
my-cxf-se-su/src/main/resources.

Implementing generated ExampleService.java

We must implement our service in java. In our example, it's HelloImpl.java

No Format

package org.apache.servicemix.examples;

import javax.jws.WebService;
import javax.xml.ws.Holder;

import com.mycompany.hello.types.SayHello;
import com.mycompany.hello.types.SayHelloResponse;

@WebService(serviceName = "HelloService", targetNamespace = "http://servicemix.apache.org/examples", 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;
    }

}

Next, we are going to create our second SUservice 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

...