?
1.对外发布的接口
2.接口的实现
3.集成spring
4.cxf 在web.xml中配置
?
//对外发布的接口: 与业务分离
@WebService
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface ISayHi {
?public void sayHi(@WebParam(name="head",partName="head",targetNamespace="http://www.it.com/head",header = true) ReqHead head,
???@WebParam(name="body",partName="reqBody",targetNamespace="http://www.it.com/body") ReqBody reqBody,
???@WebParam(name="head",partName="resHead",header = true,mode = WebParam.Mode.OUT) Holder<ReqHead> resHead,partName="resBody",targetNamespace="http://www.it.com/body",mode = WebParam.Mode.OUT) Holder<ResBody> resBody);
}
?
@WebService(endpointInterface = "cn.interfaces.exp.ISayHi")
public class SayHiImpl implements ISayHi {
?private IHello2 hello2;
?public void sayHi(ReqHead head,ReqBody reqBody,Holder<ReqHead> resHead,
???Holder<ResBody> resBody) {
??resHead.value = head;
??User u =reqBody.getReqData();
??User result = hello2.sayHi(u);
??ResBody body = new ResBody();
??body.setResData(result);
??resBody.value = body;
?}
?
?public IHello2 getHello2() {
??return hello2;
?}
?public void setHello2(IHello2 hello2) {
??this.hello2 = hello2;
?}
}
?
<jaxws:endpoint id="hello2Addr" address="/hello2Addr" implementorClass="cn.interfaces.exp.ISayHi">
??? ?<jaxws:implementor>
??? ??<bean id="sayHiImpl" class="cn.interfaces.exp.SayHiImpl">
??? ???<property name="hello2" ref="hello2"></property>
??? ??</bean>
??? ?</jaxws:implementor>
</jaxws:endpoint>
?
web.xml 中加入下面的配置:
<servlet>? ??? <servlet-name>CXF</servlet-name>? ??? <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>? ??? <load-on-startup>1</load-on-startup>? ? </servlet>? ? <servlet-mapping>? ??? <servlet-name>CXF</servlet-name>? ??? <url-pattern>/webservice/*</url-pattern>? ? </servlet-mapping>