XFire

Home
Bug/Issue Reporting
Download
FAQ
Get Involved
License
News
Stack Comparison
Support
User's Guide
XFire Team

M5

Javadocs
Reports

M6-SNAPSHOT

Javadocs
Reports

Developers

Developer Space
CVS
Building
Architecture
Interesting Projects
Release Process

Adding WS-Adressing support is fairly simply. You need to add the AddressingInHandler and AddressingOutHandler to your XFire instance.

((DefaultXFire) getXFire()).addInHandler(new AddressingInHandler());
((DefaultXFire) getXFire()).addOutHandler(new AddressingOutHandler());

The in handler looks for a To header to determine the service which is being invoked. It parse the text after the last seperator and uses that as the service name. For instance, "http://foo.com/Echo" would tell the in handler to look for the Echo service.

Setting an Action

The action can be set via JSR 181 Annotations or you create your own service factory which sets the Action appropriately. Here's an example where ObjectServiceFactory.getAction() is overridden:

ObjectServiceFactory factory = new ObjectServiceFactory(getXFire().getTransportManager(), null) {
  protected String getAction(OperationInfo op) {
    return "http://example.com/Echo/Invoke";
  }
};

Then when this snippet of XML was found:

<wsa:Action>http://example.com/Echo/Invoke</wsa:Action>

XFire would know to invoke the Operation associated with it.