前言:
而今兄弟们对“apachecxf接口怎么调用”大概比较关怀,咱们都需要知道一些“apachecxf接口怎么调用”的相关内容。那么小编同时在网上搜集了一些关于“apachecxf接口怎么调用””的相关内容,希望我们能喜欢,姐妹们一起来了解一下吧!demo地址:
1、添加依赖
gradle:
compile group: 'org.apache.cxf', name: 'cxf-spring-boot-starter-jaxws', version: '3.3.4'
maven:
<!-- --><dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.3.4</version></dependency>2、编写接口
package com.zqw.test.cxf;import org.apache.cxf.service.Service;import org.springframework.stereotype.Component;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebService;/** * //TODO * * @author zhuquanwen * @vesion 1.0 * @date 2019/11/10 18:14 * @since jdk1.8 */@WebService(name = "demo", targetNamespace = ";)//@Componentpublic interface DemoService { @WebMethod public String myTest(); @WebMethod public String get(@WebParam(name = "id") String id);}3、编写实现类
package com.zqw.test.cxf;/** * //TODO * * @author zhuquanwen * @vesion 1.0 * @date 2019/11/10 18:18 * @since jdk1.8 */import org.springframework.stereotype.Component;import javax.jws.WebService;@WebService(serviceName = "demo", //web服务名称 endpointInterface = "com.zqw.test.cxf.DemoService",//接口全包名 targetNamespace = ";)@Componentpublic class DemoServiceImpl implements DemoService { @Override public String myTest() { System.out.println(1111); return "Hello World!"; } @Override public String get(String id) { return "test hello world"; }}4、编写配置类
package com.zqw.test.cxf;import org.apache.cxf.Bus;import org.apache.cxf.jaxws.EndpointImpl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.xml.ws.Endpoint;/** * //TODO * * @author zhuquanwen * @vesion 1.0 * @date 2019/11/10 18:24 * @since jdk1.8 */@Configurationpublic class CxfConfig { @Autowired private Bus bus; @Autowired DemoService demoService; /** * * 此方法被注释后:wsdl访问地址为 * 去掉注释后:wsdl访问地址为: * @return */// @SuppressWarnings("all")// @Bean// public ServletRegistrationBean dispatcherServlet() {// return new ServletRegistrationBean(new CXFServlet(), "/cxf/*");// } /** JAX-WS * 站点服务 * **/ @Bean public Endpoint endpoint() { EndpointImpl endpoint = new EndpointImpl(bus, demoService); endpoint.publish("/demo"); return endpoint; }}5、编写启动类
package com.zqw.test.cxf;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * //TODO * * @author zhuquanwen * @vesion 1.0 * @date 2019/11/10 18:36 * @since jdk1.8 */@SpringBootApplicationpublic class App { public static void main(String[] args) { SpringApplication.run(App.class, args); }}6、查看wsdl
进入
7、客户端调用
package com.zqw.test.cxf;import org.apache.cxf.endpoint.Client;import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;/** * //TODO * * @author zhuquanwen * @vesion 1.0 * @date 2019/11/10 18:42 * @since jdk1.8 */@RunWith(SpringRunner.class)@SpringBootTestpublic class AppTets { @Test public void contextLoads() throws Exception { JaxWsDynamicClientFactory clientFactroy = JaxWsDynamicClientFactory.newInstance(); Client client = clientFactroy.createClient(";); Object[] invoke = client.invoke("myTest"); System.out.println(invoke[0].toString()); Object[] invoke2 = client.invoke("get", "11"); System.out.println(invoke2[0].toString()); }}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #apachecxf接口怎么调用