Axis1.4 创建webservice服务 ----嵌套在SpringMvc框架中
2016-05-26 10:08
513 查看
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
相关文章推荐
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- 创业如何选择WEB开发语言
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- 自学成才的秘密:115个 web Develop 资源
- 使用批处理修改web打印设置笔记 适用于IE
- Apache Web让JSP“动”起来
- web下载的ActiveX控件自动更新
- 推荐六款WEB上传组件性能测试与比较第1/10页
- 关于三种主流WEB架构的思考
- 使用 Iisext.vbs 列出 Web 服务扩展文件的方法
- 使用 Iisext.vbs 删除 Web 服务扩展文件的方法
- 使用 iisext.vbs 禁用 Web 服务扩展的方法
- 用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
- web标准知识——从p开始,循序渐进
- web标准知识――用途相似的标签