j2ee中webservice示例二之测试webservice

来源:互联网 发布:薄荷瘦身软件下载 编辑:程序博客网 时间:2024/06/08 13:46

主要类代码如下:

DemoAction.java:

package com.xy6;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.cxf.interceptor.LoggingInInterceptor;import org.apache.cxf.interceptor.LoggingOutInterceptor;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;public class DemoAction extends Action{public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {this.testWebservice1();this.testWebservice2();ActionForward forward = new ActionForward();forward = mapping.findForward("success");return forward;}/** * 测试webservice接口,法一 */private void testWebservice1(){JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();factoryBean.getInInterceptors().add(new LoggingInInterceptor());factoryBean.getOutInterceptors().add(new LoggingOutInterceptor());factoryBean.setServiceClass(HelloWorldServiceInf.class);factoryBean.setAddress("http://localhost:8080/webservice1");HelloWorldServiceInf impl = (HelloWorldServiceInf) factoryBean.create();System.out.println("*****************************" + impl.sayHi(new DemoForm()));System.out.println("*****************************" + impl.sayHello("aaa"));}/** * 测试webservice接口,法二 * 此方法,无需在工程中引入HelloWorldServiceInf类,但需处理异常 */private void testWebservice2(){JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/webservice1?wsdl");try{Object[] objects = client.invoke("sayHello", "bbb");System.out.println("*****************************" + objects[0].toString());} catch(Exception ex){ex.printStackTrace();}}}
DemoForm.java:

package com.xy6;public class DemoForm {String username;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}}
HelloWorldServiceInf.java:

package com.xy6;import javax.jws.WebService;import javax.jws.WebParam;@WebServicepublic interface HelloWorldServiceInf {String sayHello(@WebParam(name="username") String username);String sayHi(@WebParam(name="form") DemoForm form);}
浏览器中访问http://localhost:9003/web/demo.do时,会执行DemoAction类,从而调用webservice接口测试方法。后台输出:

*****************************hello,form

*****************************hello,aaa

*****************************hello,bbb




0 0