zoukankan      html  css  js  c++  java
  • 用 Eclipse 开发 WebService 项目

    1、安装tomcat

    2、安装CXF

    一、为新渠道webservice加入到项目中
    首先,创建一个springboot项目,名为webservice-baffle(附件中)。
    第二步,新建web service 服务端
    右击webservice-baffle项目,新建“other”,在弹出框中选择“web service”,出现如下弹出框
    截图中:
    1、web service type:选择 Top down java bean web service
    2、web service的http url
    3、选择tomcat,如果没有环境,自己下载tomcat并安装配置下
    4、选择apache CXF 2.x,如果没有,自己下载和安装下
    下一步,出现如下提示框,默认到完成。
    最后,生成一个WebServiceProject项目。
    第三步:将生产的java类拷贝到webservice-baffle项目中:

    第四步:注册webservice接口到servlet中:
    该操作的代码在com.xxx.xxx.config.EndpointConfig.java
    @Configuration
    public class CxfConfig {
     
        @Autowired
        private Bus bus;   //private SpringBus bus;
        @Autowired
        private CommonService commonService;
     
        //  配置CXF服务发布,默认服务是在host:port/services/发布地址
        // 访问地址 http://127.0.0.1:8080/Service/common?wsdl
        @Bean
        public Endpoint another_endpoint() {
            EndpointImpl endpoint = new EndpointImpl(bus, commonService);
            endpoint.publish("/common");   //发布地址
            return endpoint;
        }
        // 访问地址 http://127.0.0.1:8080/Service/hello?wsdl
        @Bean
        public Endpoint endpoint() {
            EndpointImpl endpoint = new EndpointImpl(bus,  new HelloServiceImpl());
            endpoint.publish("/hello");    //发布地址
            return endpoint;
        }
    完成。

     

    问题:

    1、与Spring整合问题
    Caused by: org.apache.cxf.ws.policy.PolicyException: These policy alternatives can not be satisfied: 
    {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}SupportingTokens
    {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}UsernameToken
    at org.apache.cxf.ws.policy.AssertionInfoMap.checkEffectivePolicy(AssertionInfoMap.java:166)
    at org.apache.cxf.ws.policy.PolicyVerificationInInterceptor.handle(PolicyVerificationInInterceptor.java:101)

    解决方法
    esb-server.xml配置增加
    <cxf:bus>
    <cxf:properties>
    <entry key="org.apache.cxf.message.Message.ENCODING" value="UTF-8"/>
    </cxf:properties>
    <cxf:features>
    <cxf:logging/>
    <p:policies enabled="false" />
    </cxf:features>
    </cxf:bus>

        @Bean(name = Bus.DEFAULT_BUS_ID)
        public SpringBus springBus() {
            SpringBus springBus = new SpringBus();
            WSPolicyFeature wpf = new WSPolicyFeature();
            wpf.setEnabled(false);
            Collection<Feature> features = springBus.getFeatures();
            features.add(wpf);
            return springBus;
        }
  • 相关阅读:
    NoSQL、memcached介绍、安装memcached、查看memcached状态
    报警系统配置文件
    shell中的函数、数组、报警系统脚本
    for循环、while循环、break、continue、exit
    Shell脚本中的逻辑判断、文件目录属性判断、if的特殊用法、case判断
    Shell脚本、Shell脚本结构、date命令的用法、变量
    zabbix的自动发现、自定义添加监控项目、配置邮件告警
    rabbitMQ中的Vhost理解、创建和使用
    charset编码问题:YAMLException: java.nio.charset.MalformedInputException
    java jna 报错:Unable to load library
  • 原文地址:https://www.cnblogs.com/duanxz/p/4368229.html
Copyright © 2011-2022 走看看