1.首先通过axis工具根据wsdl文件生成java代码和wsdd文件

set Axis_Lib=/Users/apple/configuration/axis-1_4/lib    //lib文件目录
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=/Users/apple/configuration/axis-1_4    //axis1.4工具存放的目录
set Package=com.cong.HelloWorld    //java代码包名
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% /Users/apple/configuration/wsdl/smsConfigService.wsdl    //wsdl文件存放的目录

2.将java代码copy到项目的指定目录

3.在pom文件中

<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
</dependency>

  

4.在resource下新建server-config.wsdd文件,将wsdd文件copy进去,增加全局设置(globalConfiguration)和transport

5.在启动类上加上@ServletComponentScan

6.增加WebServlet类

import org.apache.axis.transport.http.AxisServlet;

@javax.servlet.annotation.WebServlet(
urlPatterns = "/services/*",
loadOnStartup = 1,
name = "AxisServlet"
)
public class WebServlet extends AxisServlet {
//无具体代码,使用注解的形式 }

7.新建包org.apache.axis.configuration

8.在新建的包下新建EngineConfigurationFactoryServlet类,集成EngineConfigurationFactoryDefault

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.configuration.EngineConfigurationFactoryDefault;
import org.apache.axis.configuration.EngineConfigurationFactoryFinder;
import org.apache.axis.configuration.FileProvider;
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 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 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 = "/";
//由于部署方式变更为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;
} }

  下面就可以运行啦

最新文章

  1. Apache主配置文件httpd.conf 详解
  2. ur c题练习
  3. GoldenGate针对OEM 13.1的版本发布
  4. 自动生成Model层中对应表的各个字段
  5. Microsoft.Bcl.Build 1.0.10 稳定版发布
  6. Linux_记录ping命令的日志包括时间戳
  7. 彻底解决Google浏览器CSS居中问题
  8. arcgis python 更新顺序号
  9. c#动态加载dll文件
  10. 《Linux内核分析》 week8作业-Linux加载和启动一个可执行程序
  11. 深入解析spring中用到的九种设计模式
  12. c#开发微信公众平台
  13. APP测试中的头疼脑热:测试人员如何驱动开发做好自测
  14. ReactiveObjC使用
  15. MySQL 索引及查询优化总结
  16. BOM 浏览器对象模型_Storage 接口 - window.sessionStorage - window.localStorage
  17. c#线程池中的异常
  18. Linux配置2个或多个Tomcat同时运行
  19. python面向对象学习(七)单例
  20. 关于wepack的使用总结以及优化探讨

热门文章

  1. Spring History和spring设计哲学
  2. python基础 生成器 迭代器
  3. python基础之文件操作1
  4. ResultMap和ResultType到底有什么区别?
  5. JavaScript是如何工作的(一)
  6. IT知识圈视频学习资源整理贴
  7. sublime安装vue插件
  8. Web中间件常见漏洞总结
  9. 网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS)
  10. Python - 超好用的第三方库pathlib,快速获取项目中各种路径