Axis1.4 创建webservice服务 ----嵌套在SpringMvc框架中

Axis1.4自学---创建Webservice服务

我的项目是ssm,为了使用Webservice服务开放接口,我使用了Axis1.4版本。使用Maven构建了jar包。
其中需要的jar包(spring的就不说了。不过需要强调的是axis1.4需要用到spring-aop 2.0.8jar包)
Maven构建:
<span style="white-space:pre">	</span><dependency>
	<span style="white-space:pre">	</span><groupId>org.springframework</groupId>
		<artifactId>spring-remoting</artifactId>
		<version>2.0.8</version>
	</dependency> 

需要spring-remoting包(使用到ServletEndpointSupport类)
Axis1.4包及相关调用远程的wsdl包
<span style="white-space:pre">		</span><dependency>
			<groupId>org.apache.axis</groupId>
			<artifactId>axis</artifactId>
			<version>${axis.version}</version>
		</dependency>
		<dependency>
			<groupId>axis</groupId>
			<artifactId>axis-jaxrpc</artifactId>
			<version>${axis-jaxrpc.version}</version>
		</dependency>
		<dependency>
			<groupId>wsdl4j</groupId>
			<artifactId>wsdl4j</artifactId>
			<version>${wsdl4j.version}</version>
		</dependency>
axis.version、wsdl版本用的是
<axis.version>1.4</axis.version>
<axis-jaxrpc.version>1.2.1</axis-jaxrpc.version>
<wsdl4j.version>1.6.3</wsdl4j.version>


引用的包和spring兼容 ,还需要导入的一些公共包和spring框架用到的一般都够了。最重要的包已经导入完毕。

接下来就看下代码简单易懂:
首先创建一个接口:
例子:
IWebServiceTest.java
public interface IWebServiceTest {
	public String getDate(String date);
}
然后创建一个类(这是重点)
WebServiceTest.java
public class WebServiceTest extends ServletEndpointSupport  implements IWebServiceTest{

	@Override
	public String getDate(String date) {
		return date+"----成功!";
	}

}
其中ServletEndpoinSupport类是(Spring-rometing包中) 实现在自己的接口
ServletEndpoinSupport类中有两个方法----destory、onInit
初始化和销毁

在oninit方法中,可以获取Spring注解的类,这样与Spring就紧密结合起来了 不会脱离spring的操作。
列子:
<span style="white-space:pre">	</span>private IInitSummaryService initSummaryService;//初始摘要
	
	@Override
	protected void onInit() throws ServiceException {
		System.out.println("我是初始化!");
		initSummaryService = (IInitSummaryService) getApplicationContext().getBean("initSummaryService");
	}
这样我们就可以使用InitsummaryService了 。当然这个类我们是要在spring配置里面提前声明装载的。
<bean id="initSummaryService" class="xxxx">
这样我们就可以进行相关操作了。
完整代码:
public class WebServiceTest extends ServletEndpointSupport  implements IWebServiceTest{

	private IInitSummaryService initSummaryService;//初始摘要
	
	@Override
	protected void onInit() throws ServiceException {
		System.out.println("我是初始化!");
		initSummaryService = (IInitSummaryService) getApplicationContext().getBean("initSummaryService");
	}

	@Override
	public String getDate(String date) {
		System.out.println(initSummaryService);
		return date+"----成功!";
	}

}
剩下最重要的一步就是如何让我们的webservice生效。
首先在web.xml里面配置上我们的Webservice访问地址
<!-- webservice -->
		<servlet>
	    <servlet-name>AxisServlet</servlet-name>
	    <servlet-class>
	        org.apache.axis.transport.http.AxisServlet
	    </servlet-class>
	</servlet>
	
	<servlet-mapping>
	    <servlet-name>AxisServlet</servlet-name>
	    <url-pattern>/services/*</url-pattern>
	</servlet-mapping>
然后在添加一个webservice用的配置文件,server-config.wsdd
这个文件放到和web.xml同级目录下也就是我们的WEB-INF下
然后里面写上配置信息:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
     <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
     
     <service name="Test" provider="java:RPC">
       <parameter name="className" value="com.caxins.themis.webservice.caxs.WebServiceTest"/>
       <parameter name="allowedMethods" value="*"/>  
     </service> 
     
     <transport name="http">
       <requestFlow>
          <handler type="URLMapper"/>
       </requestFlow>
     </transport>
</deployment>
然后开启我们的web项目,访问起来:
http://localhost:8080/xxx/services/Test?wsdl









评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值