package jboss.ws.ep;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
import javax.xml.ws.BindingType;
import javax.xml.ws.WebServiceContext;
import jboss.ws.bean.Person;
import org.apache.cxf.headers.Header;
import org.w3c.dom.Node;
@WebService
@BindingType(value = "http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true")
@SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL, parameterStyle = ParameterStyle.WRAPPED)
public class Hello {
@Resource
WebServiceContext context;
public String sayHello(Person person) {
Map<String, Object> headers = context.getMessageContext();
List<Header> headerList = (List<Header>) headers.get(Header.HEADER_LIST);
for (Header header : headerList) {
Node node = (Node) header.getObject();
System.out.println("soap header by cxf : header name <"
+ node.getNodeName() + " >,status <"
+ node.getTextContent() + ">");
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
return "Hello " + person + " by JBoss 6 WS with CXF implementation.";
}
}