Spring集成cxf搭建webservice【一、服务端】

1、导入jar包(普通web项目)

引入依赖(maven项目)

    <!-- webservice依赖框架CXF -->
	<dependency>
	    <groupId>org.apache.cxf</groupId>
	    <artifactId>cxf-core</artifactId>
	    <version>3.1.14</version>
	</dependency>
	<dependency>
	    <groupId>org.apache.cxf</groupId>
	    <artifactId>cxf-rt-frontend-jaxrs</artifactId>
	    <version>3.1.14</version>
	</dependency>
	<dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-rt-frontend-jaxws</artifactId>
		<version>3.1.14</version>
	</dependency>
	<dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-rt-transports-http</artifactId>
		<version>3.1.14</version>
	</dependency>  
	<!-- webservice依赖框架CXF -->

2、web.xml

<servlet>
    <servlet-name>CXFService</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
 
<servlet-mapping>
    <servlet-name>CXFService</servlet-name>
    <url-pattern>/webservice/*</url-pattern>
</servlet-mapping>

3、ApplicationContext-cxf.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans       
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
        http://cxf.apache.org/jaxws 
        http://cxf.apache.org/schemas/jaxws.xsd"
        xmlns="http://www.springframework.org/schema/beans">

    <bean id="jaxWsServiceFactoryBean" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
        <property name="wrapped" value="true" />
    </bean>

    <jaxws:endpoint id="serviceimp" address="/LinTongWeather"
        implementor="cn.jiamall.webservice.WeatherWebServiceImpl">

    </jaxws:endpoint>
</beans>

4、创建接口类

package cn.jiamall.webservice;

import javax.jws.WebService;

@WebService
public interface WeatherWebService {

//	String sayHi(@WebParam(name="text")String text);
	 
	String getLinTongWeather();
}

5、创建实现

package cn.jiamall.webservice;

import java.util.Map;

import javax.annotation.Resource;
import javax.jws.WebService;


@WebService(endpointInterface="cn.jiamall.webservice.WeatherWebService",serviceName="LinTongWeather")
public class WeatherWebServiceImpl implements WeatherWebService {

	
//	@Override
//	public String sayHi(String text) {
//		// TODO Auto-generated method stub
//		return "Hello " + text;
//	}

	@Override
	public String getLinTongWeather() {
		
        //代码细节

		return result;
	}

}

6、启动服务

访问http://你的地址:端口/你的项目名/webservice/刚才配置的地址?wsdl

 

main方法发布服务(不集成spring的发布方法)
 

package cn.jiamall.webservice;

import javax.xml.ws.Endpoint;

public class WebServiceApp {
    public static void main(String[] args) {
        System.out.println("web service start");
        WeatherWebServiceImpl implementor= new WeatherWebServiceImpl();
        String address="http://localhost:8090/Weather_LT";
        Endpoint.publish(address, implementor);
        System.out.println("web service started");
    }
}

 

好的,我了解了您的问题。使用Spring Boot和CXF框架搭建一个Webservice服务端的步骤如下: 1. 首先,在您的项目添加CXFSpring Boot的依赖,例如: ``` <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.3.6</version> </dependency> ``` 注意,这里使用的是CXF的JAX-WS模块,您也可以根据需要选择其他模块。 2. 接着,在您的配置文件添加CXF的配置,例如: ``` @Configuration public class CxfConfig { @Bean public ServletRegistrationBean<CXFServlet> cxfServlet() { return new ServletRegistrationBean<>(new CXFServlet(), "/yourWebserviceUrl/*"); } @Bean(name = Bus.DEFAULT_BUS_ID) public SpringBus springBus() { return new SpringBus(); } @Bean public YourWebService yourWebService() { return new YourWebService(); } @Bean public Endpoint yourWebServiceEndpoint() { EndpointImpl endpoint = new EndpointImpl(springBus(), yourWebService()); endpoint.publish("/YourWebServiceUrl"); return endpoint; } } ``` 这里配置了CXF的Servlet,以及您自己实现的Webservice服务类和Endpoint。注意,您需要将 "/yourWebserviceUrl/" 和 "/YourWebServiceUrl" 替换为您自己的URL。 3. 最后,您可以实现您的Webservice服务类,例如: ``` @Service @WebService(serviceName = "YourWebService") public class YourWebService { @WebMethod public String hello(@WebParam(name = "name") String name) { return "Hello, " + name + "!"; } } ``` 这里实现了一个简单的hello方法,接收一个name参数并返回一个包含该参数的问候语。 完成以上步骤后,您就成功地搭建了一个基于CXFSpring Boot的Webservice服务端。当您在浏览器输入"http://localhost:8080/YourWebServiceUrl?wsdl"时,您将看到您的Webservice服务的WSDL文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值