spring + webservice

3 篇文章 0 订阅
1 篇文章 0 订阅

服务器

依赖jar包

<!-- webservice cxf -->
<dependency>
     <groupId>org.apache.cxf</groupId>
     <artifactId>cxf-core</artifactId>
     <version>${cxf.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>${cxf.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>${cxf.version}</version>
</dependency>

spring-cxf.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/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.xsd 
                                            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

    <import resource="classpath:META-INF/cxf/cxf.xml" />

    <jaxws:endpoint address="/demoService" implementor="com.idp.web.webservice.DemoServiceImpl"></jaxws:endpoint>

</beans>

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>

接口写法

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface DemoService {

    @WebMethod
    public String demo(@WebParam(name="param") String param);
}

实现类写法:

import javax.jws.WebService;

@WebService(endpointInterface="com.idp.web.webservice.DemoService")
public class DemoServiceImpl implements DemoService {

    @Override
    public String demo(String param) {

        return param;
    }

}

客户端

依赖jar包
cxf-core-3.1.12.jar
cxf-rt-bindings-soap-3.1.12.jar
cxf-rt-databinding-jaxb-3.1.12.jar
cxf-rt-frontend-jaxws-3.1.12.jar
cxf-rt-frontend-simple-3.1.12.jar
cxf-rt-transports-http-3.1.12.jar
cxf-rt-transports-udp-3.1.12.jar
cxf-rt-ws-addr-3.1.12.jar
cxf-rt-wsdl-3.1.12.jar
neethi-3.0.3.jar
slf4j-api-1.7.24.jar
stax2-api-3.1.4.jar
woodstox-core-asl-4.4.1.jar
wsdl4j-1.6.3.jar
xmlschema-core-2.2.2.jar

访问接口写法

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

public class WebServiceClient {

    public static void main(String[] args) throws Exception {

        JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); 
        Client client = factory.createClient("http://localhost:8082/jeeidp/webService/demoService?wsdl");

        Object[] params = {"aaaaaaaaaaaa"};

        Object[] results = client.invoke("demo", params);

        System.out.println(results[0]);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值