精华内容
下载资源
问答
  • cxf webservice服务端发布服务时,通过浏览器查看wsdl信息,发现生成文件错误,主要是没有types、messages等属性,跟了一下代码发现代码实现没有问题,找了一个小时才发现,service的定义和实现不在一个目录下,导致...
    
                          cxf webservice服务端发布服务时,通过浏览器查看wsdl信息,发现生成文件错误,主要是没有types、messages等属性,跟了一下代码发现代码实现没有问题,找了一个小时才发现,service的定义和实现不在一个目录下,导致生成wsdl文件错误。随即将服务定义和实现放在同一目录下,验证下生成wsdl文件正确。问题解决。
    展开全文
  • WebServiceWSDL文件生成Java代码工具
  • springboot2.0.1 根据wsdl文件创建webservice服务端 1:新建一个简单的webservice 项目, 新建wsdl文件夹,加入已有的wsdl文件,右击: 一路finish;此时项目会自动生成如图: 新建一个springboot 项目; ...

    webservice 对接记录

    springboot2.0.1 根据wsdl文件创建webservice服务端

    参考资源比较杂,故不一一列出,

    1:新建一个简单的webservice 项目,在这里插入图片描述

    新建wsdl文件夹,加入已有的wsdl文件,右击:在这里插入图片描述
    在这里插入图片描述
    一路finish;此时项目会自动生成如图:
    在这里插入图片描述

    新建一个springboot 项目;

    根据上图迁移文件如下:
    在这里插入图片描述
    在这里插入图片描述
    如果springboot项目最终打成jar包运行,需要在项目中添加依赖,例如:

    在这里插入图片描述
    在这里插入图片描述
    groupId,artifactId随便写另外需要在项目中重写EnginConfigurationFactoryServlet.jar
    在这里插入图片描述

    package org.apache.axis.configuration;
    
    /*
     * Copyright 2002-2004 The Apache Software Foundation.
     * 
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     * 
     *      http://www.apache.org/licenses/LICENSE-2.0
     * 
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    import org.apache.axis.AxisProperties;
    import org.apache.axis.ConfigurationException;
    import org.apache.axis.EngineConfiguration;
    import org.apache.axis.EngineConfigurationFactory;
    import org.apache.axis.components.logger.LogFactory;
    import org.apache.axis.server.AxisServer;
    import org.apache.axis.utils.ClassUtils;
    import org.apache.axis.utils.Messages;
    import org.apache.commons.logging.Log;
    
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import java.io.File;
    import java.io.InputStream;
    
    /**
     * This is a default implementation of ServletEngineConfigurationFactory.
     * It is user-overrideable by a system property without affecting
     * the caller. If you decide to override it, use delegation if
     * you want to inherit the behaviour of this class as using
     * class extension will result in tight loops. That is, your
     * class should implement EngineConfigurationFactory and keep
     * an instance of this class in a member field and delegate
     * methods to that instance when the default behaviour is
     * required.
     *
     * @author Richard A. Sitze
     * @author Davanum Srinivas (dims@apache.org)
     */
    public class EngineConfigurationFactoryServlet
        extends EngineConfigurationFactoryDefault
    {
        protected static Log log =
            LogFactory.getLog(EngineConfigurationFactoryServlet.class.getName());
    
        private ServletConfig cfg;
        
        /**
         * Creates and returns a new EngineConfigurationFactory.
         * If a factory cannot be created, return 'null'.
         * 
         * The factory may return non-NULL only if:
         *   - it knows what to do with the param (param instanceof ServletContext)
         *   - it can find it's configuration information
         * 
         * @see org.apache.axis.configuration.EngineConfigurationFactoryFinder
         */
        public static EngineConfigurationFactory newFactory(Object param) {
            /**
             * Default, let this one go through if we find a ServletContext.
             * 
             * The REAL reason we are not trying to make any
             * decision here is because it's impossible
             * (without refactoring FileProvider) to determine
             * if a *.wsdd file is present or not until the configuration
             * is bound to an engine.
             * 
             * FileProvider/EngineConfiguration pretend to be independent,
             * but they are tightly bound to an engine instance...
             */
            return (param instanceof ServletConfig)
                   ? new EngineConfigurationFactoryServlet((ServletConfig)param)
                   : null;
        }
    
        /**
         * Create the default engine configuration and detect whether the user
         * has overridden this with their own.
         */
        protected EngineConfigurationFactoryServlet(ServletConfig conf) {
            super();
            this.cfg = conf;
        }
    
        /**
         * Get a default server engine configuration.
         *
         * @return a server EngineConfiguration
         */
        public EngineConfiguration getServerEngineConfig() {
            return getServerEngineConfig(cfg);
        }
    
        /**
         * Get a default server engine configuration in a servlet environment.
         *
         * @param ctx a ServletContext
         * @return a server EngineConfiguration
         */
        private static EngineConfiguration getServerEngineConfig(ServletConfig cfg) {
            String configFile = cfg.getInitParameter(OPTION_SERVER_CONFIG_FILE);
            if (configFile == null)
                configFile =
                        AxisProperties.getProperty(OPTION_SERVER_CONFIG_FILE);
            if (configFile == null) {
                configFile = SERVER_CONFIG_FILE;
            }
            String appWebInfPath = "/WEB-INF";
            //由于部署方式变更为jar部署,此处不可以使用改方式获取路径
    //        ServletContext ctx = cfg.getServletContext();
    //        String realWebInfPath = ctx.getRealPath(appWebInfPath);
            FileProvider config = null;
            String realWebInfPath = EngineConfigurationFactoryServlet.class.getResource(appWebInfPath).getPath();
            InputStream iss = ClassUtils.getResourceAsStream(EngineConfigurationFactoryServlet.class, appWebInfPath+"/" + SERVER_CONFIG_FILE);
            if (iss != null) {
                // FileProvider assumes responsibility for 'is':
                // do NOT call is.close().
                config = new FileProvider(iss);
            }
    
            if (config == null) {
                log.error(Messages.getMessage("servletEngineWebInfError03", ""));
            }
    
            /**
             * Couldn't get data  OR  file does exist.
             * If we have a path, then attempt to either open
             * the existing file, or create an (empty) file.
             */
            if (config == null && realWebInfPath != null) {
                try {
                    config = new FileProvider(realWebInfPath, configFile);
                } catch (ConfigurationException e) {
                    log.error(Messages.getMessage("servletEngineWebInfError00"), e);
                }
            }
    
            /**
             * Fall back to config file packaged with AxisEngine
             */
            if (config == null) {
                log.warn(Messages.getMessage("servletEngineWebInfWarn00"));
                try {
                    InputStream is =
                            ClassUtils.getResourceAsStream(AxisServer.class,
                                    SERVER_CONFIG_FILE);
                    config = new FileProvider(is);
    
                } catch (Exception e) {
                    log.error(Messages.getMessage("servletEngineWebInfError02"), e);
                }
            }
    
            return config;
        }
    
    }
    

    注意保证appWebInfPath 和wsdd文件路径一致
    另外添加servlet

    @javax.servlet.annotation.WebServlet(
            urlPatterns =  "/services/*",
            loadOnStartup = 1,
            name = "AxisServlet"
    )
    public class WebServlet extends AxisServlet {
    
    
    }
    
    

    在springbootapplication 启动类中添加注解@ServletComponentScan
    通常情况下,在webservice类中@autowired无效,显示为null;需要添加SpringContextUtils``

    package com.susu.homestay.config;
    
    
    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    
    /**
     * Spring容器工具类
     * @author lv
     *
     */
    @Component("springContextUtils")
    public class SpringContextUtils implements ApplicationContextAware {
    	/**
    	 * Spring应用上下文环境
    	 */
    	private static ApplicationContext applicationContext;
    
    	/**
    	 * 实现ApplicationContextAware接口的回调方法,设置上下文环境
    	 * 
    	 * @param applicationContext
    	 */
    	public void setApplicationContext(ApplicationContext applicationContext) {
    		SpringContextUtils.applicationContext = applicationContext;
    	}
    
    	/**
    	 * @return ApplicationContext
    	 */
    	public static ApplicationContext getApplicationContext() {
    		return applicationContext;
    	}
    
    	/**
    	 * 获取对象
    	 * 
    	 * @param name
    	 * @return Object
    	 * @throws BeansException
    	 */
    	public static Object getBean(String name) throws BeansException {
    		return applicationContext.getBean(name);
    	}
    	
    	/**
    	 * 根据class获取对应的bean对象
    	 * @param clz
    	 * @return
    	 */
    	public static Object getBean(Class<?> clz){
    		return applicationContext.getBean(clz);
    	}
    }
    
    
    展开全文
  • 通过WebService接口生成WSDL文件

    万次阅读 2017-04-06 15:50:34
    在大多数情况下我们都需要为我们的服务提供一个WSDL文件,而 Axis2's Java2WSDL 是专门用来生成WSDL文件的D专用工具,如果你要在命令行模式下进行生成WSDL文件,首先需要保证你的环境变量AXIS2_HOME是否已经配置OK,...
    在大多数情况下我们都需要为我们的服务提供一个WSDL文件,而 Axis2's Java2WSDL 是专门用来生成WSDL文件的D专用工具,如果你要在命令行模式下进行生成WSDL文件,首先需要保证你的环境变量AXIS2_HOME是否已经配置OK,同时还要保证把%AXIS2_HOME%\bin加入到你的path环境中,要生成 WSDL文件,首先要保证你的class能够编译成功,而且已经编译成功,然后进入class文件编译后的根目录(在JBuilder中是classes,在Eclipse中是bin目录)这时,生成WSDL文件的准备工作已经OK。
     
    下面是生成WSDL文件时的可选参数和参数说明:
    ---------------------------------------------------------------------------------
    Usage java2wsdl -cn <fully qualified class name> : class file name
    -o <output Location> : output file location
     
    -cp <class path uri> : list of classpath entries - (urls)
     
    -tn <target namespace> : target namespace
     
    -tp <target namespace prefix> : target namespace prefix
     
    -stn <schema target namespace> : target namespace for schema
     
    -stp <schema target namespace prefix> : target namespace prefix for schema
     
    -sn <service name> : service name
     
    -of <output file name> : output file name for the WSDL
     
    -st <binding style> : style for the WSDL
     
    -u <binding use> : use for the WSDL
     
    -l <soap address> : address of the port for the WSDL
     
    -nsg <generator class name> : fully qualified name of the class that implements NamespaceGenerator
     
    -p2n [<java package>,<namespace] [<java package>,<namespace]... : java package to namespace mapping for argument and return types...to assign all types to a single namespace : -p2n [all , <namespace>] ...
     
    -efd <qualified/unqualified> : Setting for elementFormDefault (defaults to qualified)
     
    -afd <qualified/unqualified> : Setting for attributeFormDefault (defaults to qualified)
     
    -xc <extra class> : Extra class for which schematype must be generated.
    Use as : -xc class1 -xc class2 ...

     
     
     
     
     
    典型地,进入你的工程的二进制编译根目录,执行命令模板如下:

    java2wsdl -cp . -cn [PACKAGENAME].[CLASSNAME]-of [FILENAME].wsdl

     
    现在我们假设在samples.helloworld.service.axiom;包下面有个HelloWorldService类,工程的类文件编译后存放在build\classes目录下,那么,首先进入该目录中,然后执行以下命令:

    java2wsdl -cp . -cn samples.helloworld.service.axiom.HelloWorldService -of HelloWorldService.wsdl

     
    执行后的CMD提示如下说明已经成功执行了:
     
    Using AXIS2_HOME:   D:\axis2-1.1.1
    Using JAVA_HOME:    C:\Program Files\Java\jdk1.5.0_06
     
    展开全文
  • webservice根据wsdl文件生成代码doc命令

    千次阅读 2014-03-14 14:37:47
    webservice根据wsdl文件生成代码doc命令

    之前就会点简单的生成,然后再去修改代码的包名及路径,昨天找了点直接生成好按照项目路径的命令,原来还是自己对它了解的不深啊!!!

    我的Axis2的bin包在E盘,根据wsdl的位置运行命令如下:

    1,定位到E盘目录:
    	cd  E:\axis2-1.5.1\bin
    2,生成服务端命令:
    	wsdl2java  -uri e:\ESmartCitySMSService.wsdl -p service -d adb -s -ss -sd -ssi -o e:\ykt
    3,生成客户端命令:
    	wsdl2java -uri e:\ESmartCitySMSService.wsdl -p client -d adb -s -o e:\ykt
    

    但是这个简单的生成路径有时候会很麻烦。指定包名路径的如下:

    1,定位到E盘目录:
    	cd  E:\axis2-1.5.1\bin
    2,服务端命令:
    wsdl2java --noBuildXML -ss -ssi -sd -p com.eastelsoft.esmartcity.ws.sms -ns2p http://eastelsoft.esmartcity.com/=com.eastelsoft.esmartcity.ws.sms.obj -o .\src -uri .\ESmartCitySMSService_No_Notice.wsdl
    3,客户端命令:
    wsdl2java --noBuildXML -t -p com.eastelsoft.esmartcity.ws.sms.client -o .\src -uri .\ESmartCitySMSService_No_Notice.wsdl
    

    生成位置在 E:\axis2-1.5.1\bin 下面,这时候生成的源码的路径就按“com.eastelsoft.esmartcity.ws.sms”存在

    命令如下图:


    展开全文
  • 利用wsimport.exe进行转换 wsdl文件为java代码 1.C:\jdk-1.7.0_10\bin 中有wsimposrt.exe 2.在jdk的bin目录下写gen.bat文件内容为:wsimport -keep -verbose -s 要保存的目录(E:\workspace\test\src) wsdl文件的...
  • Webservicewsdl文件

    2015-11-18 18:05:52
    通过wsdl文件就可以通过客户端调用服务端的接口,可以使用Webservice的服务了
  • webService生成wsdl文件

    千次阅读 2019-01-29 13:42:30
    @WebService(name = "NetbarService", //@WebService:将该接口发布成WebService服务器 targetNamespace = "http://service.netbar.demo.example.com") //命名空间为包名得倒叙 public interface NetbarService { @...
  • 普元 EOS Platform 7.5 将逻辑流封装为webservicewsdl文件上右键,生成客户端代码,提示:选择的wsdl文件中没有服务信息
  • 本文介绍使用eclipse平台功能由wsdl文件生成soap服务桩
  • 1. 下载axis ... 2. 解压后在bin目录下找到 wsdl2java.bat( windows) / wsdl2java.sh(linux),假设你有一个wsdl文件叫做test.wsdl,以windows下为例,运行以下命令 wsdl2
  • 通过此方法可以把webservice接口通过接口生成wsdl文件生成本地调用代码,详细配置可以查看wsdl2_java登入.bat文件,此包原来放在H盘根目录,双击wsdl2_java登入.bat文件即可以生成Create文件夹中的JAVA代码
  • 1)首先要定义一个服务的接口 在这里写个简单模拟火车对外提供...package com.huas.webservice; public interface TrainService { public String lookup(String info); public String reservation(...
  • webService-WSDL文件的修改

    千次阅读 2015-08-17 17:14:52
    WSDL文件的内容,一般由服务默认生成,但为了更好的向开发人员提供使用说明书,一般应做一些简单的修改。至少不应该暴露我们的包结构。而targetNamespace默认情况下为倒置的包名,这已经暴露了我们的包结构。 l通过...
  • http://wenku.baidu.com/view/6f2ecb3310661ed9ad51f303.html 写得很详细 http://wenku.baidu.com/view/12501ed7195f312b3169a54b.html 这个 是有关于 Axis 开发webservice的教程。
  • 首先要 有wsdl文件,并且要下载apache-cxf 并切换到bin目录下 打开cmd,切换到bin目录下 wsdl2java.bat -autoNameResolution -frontend jax ws21 -impl -exsh true -p ...
  • wsdl文件中的引用另外一个wsdl文件删掉,并把另外一个wsdl文件中的内容从标签开始替换掉这段 因为myeclipse自带的这种生成webservice客户端无法识别引用的wsdl文件
  • WebServiceWSDL文件讲解

    千次阅读 2015-08-10 20:10:24
    是不是经常有人在开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户给你一个WSDL文件,说按照上面的进行适配,嘿嘿,这个时候,要是你以前没有开发过,肯定会傻眼,那如果你想学习的话,就认真的看...
  • 1、Java JDK 的 bin文件夹下有一个 wsimport.exe 工具,可依据 wsdl 文件生成相应的类文件,将生成好的类文件拷贝到需要使用的项目中,就可以像调用本地的类一样调用 webService 提供的方法。 2、wsimport.exe 工具...
  • WebServiceWSDL文件 讲解

    千次阅读 2014-06-24 22:44:56
    WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问(类似远程...
  • WebServiceWSDL文件详解

    千次阅读 2015-04-29 15:07:20
    WSDL(Web Service Description Language)Web服务描述语言 ################################################################################ 适用于描述WebService的文档格式 下面例子是为了输入一个字符...
  • 作为客户端的我们,在服务器端给定我们访问地址后,我们如何生成自己的客户端呢?...wsdl)获取wsdl内容,通过另存为.wsdl即可获取wsdl文件。 第二,http://……//GovOnline.asmx;我们使用同样的方法http...
  • Web Service学习笔记(webservice、soap、wsdl、jws详细分析) 地址:... ...Webservicewsdl文件解析与Soap消息的发送、接收(不生成java客户端代码) 地址 : http://zhen
  • 【问题】作为客户端的我们,在服务器端给定我们访问地址后,我们如何生成自己的客户端呢? 今天,和小邢又逛了一趟市府,讨论了一下关于邮件接口的问题,曹工大体上演示了一下,并介绍了一下参数的意义,晚上拿回...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,926
精华内容 8,370
关键字:

webservice生成wsdl文件