前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >webservices系列(六)——spring整合Axis2

webservices系列(六)——spring整合Axis2

作者头像
逝兮诚
发布2019-10-30 12:37:06
7200
发布2019-10-30 12:37:06
举报
文章被收录于专栏:代码人生代码人生

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/luo4105/article/details/70245952

1.新建一个动态网站项目webservice_test4,最终工程目录如下

2.准备这些jar包

3.在web.xml中配置spring和axis

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>webservice_test4</display-name>
  <!-- 添加spring监听器 -->
  <listener>
  	<listener-class>
  		org.springframework.web.context.ContextLoaderListener
  	</listener-class>
  </listener>
  <!-- 加载spring配置文件 -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>
  
  <!-- 注册Axis2的servlet -->
  <servlet>
  	<servlet-name>AxisServlet</servlet-name>
  	<servlet-class>
  		org.apache.axis2.transport.http.AxisServlet
  	</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>AxisServlet</servlet-name>
  	<url-pattern>/services/*</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

4.webservice实现代码

HelloWorld.java

代码语言:javascript
复制
public interface HelloWorld {
	
	public String greeting(String name);
	
	public String print();
}
HelloWorldImpl.java
public class HelloWorldImpl implements HelloWorld{

	public String greeting(String name) {
		return "hello " + name;
	}

	public String print() {
		return "print";
	}
}

HelloWorldService.java

代码语言:javascript
复制
public class HelloWorldService implements ServiceObjectSupplier, ApplicationContextAware{

	private ApplicationContext ctx;
	
	public void setApplicationContext(ApplicationContext arg0) throws BeansException {
		ctx = arg0;
	}

	@Override
	public Object getServiceObject(AxisService arg0) throws AxisFault {
		Parameter springBeanName = arg0.getParameter("SpringBeanName");
		String beanName = ((String)springBeanName.getValue()).trim();
		if(beanName != null) {
			if(ctx == null) {
				throw new AxisFault("ApplicationContext is null");
			}
			if(ctx.getBean(beanName) == null) {
				throw new AxisFault("axis2 can't find Spring Bean :" + beanName);
			}
			return ctx.getBean(beanName);
		} else {
			throw new AxisFault(Messages.getMessage("paramIsNotSpecified", "SERVICE_SPRING_BEANNAME"));
		}
	}
}

5.axis2的接口配置文件services.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<service name="hwWebService">
	<description>axis2与spring集成</description>
	<parameter name="ServiceObjectSupplier">
		org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
	</parameter>
	<parameter name="SpringBeanName">
		helloWorld
	</parameter>
	<messageReceiver>
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
	</messageReceiver>
</service>

6.spring的配置文件applicationContext.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<bean id="applictationContext" class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder" />
	<bean id="helloWorld" class="com.lc.service.HelloWorldImpl"></bean>
</beans>

发布到tomcat上,打开链接http://localhost:8080/webservice_test4/services/hwWebService?wsdl

参考资料

[1].spring和axis2整合:http://www.cnblogs.com/yuxuan/p/4028359.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-04-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档