加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

通过Axis整合SSH 项目创建WebService的流程步骤

发布时间:2020-12-16 22:54:33 所属栏目:安全 来源:网络整理
导读:今天做项目时,需要用Axis把ssh框架进行整合从而创建webservice,研究了一天了,遇到了许多问题和错误,这里写下过程和其中遇到的问题。 1. ?要部署axis2。 部署axis2很简单,将axis2.war复制到tomcatwebapps目录下,重启tomcat即可,此时打开tomcat目录,

今天做项目时,需要用Axis把ssh框架进行整合从而创建webservice,研究了一天了,遇到了许多问题和错误,这里写下过程和其中遇到的问题。

1. ?要部署axis2。部署axis2很简单,将axis2.war复制到tomcatwebapps目录下,重启tomcat即可,此时打开tomcat目录,会发现在webapps中多了一个axis2的工程名,这个就是我们要对外发布的webservice服务工程

重启后效果如图所示:


2。将axis2/WEB-INF/目录下的所有文件到自己的web项目下就可以了,记得要覆盖所有(axis2-web这个文件夹是包含axis2整个的管理界面,可有可无,不过要用的话,记得它是放在和WEB-INF的同级目录下),其实我们就是有点像在整个的axis2工程上做二次开发。(第一步的作用主要是COPY包文件和WEB.XML配置文件,注意放在WEB-INF下,不然会有点bug)。?

此步骤后WEB-INF效果如下所示:这里service下的test文件先不用理会,下文会讲到


3.将所需的jar包倒入到WEB-INF下的文件夹里(这里可能会遇到找不到AxisAdminServle的错误,解决方法为:下一篇文章,待发布)

4.发布整个项目发部到tomcat上,测试起动服务有没有问题。(一般不会是有问题,我们现在做的只是在axis2这个工程里添加了spring的jar包和在原有的axis2工程的web.xml加上了对spring的支持)。访问下http://<host>:<port>/<project name>/services/Version?wsdl,例如http://localhost:8080/AxisTest/services/Version?wsdl,如果没问题的话进入下一个步骤。

5.写一个webservice(其实就是一个普通java类,然后调用了service层<逻辑层>的方法)。

package com.hcj.webservice;

import java.util.List;

import com.hcj.dto.User;
import com.hcj.service.UserService;

public class MyWebservice {
	//这里的userService为定义的一个逻辑层的类,用于调用dao的方法,在application里注入
	private UserService userService;

	public UserService getUserService() {
		return userService;
	}

	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	
	//验证用户名和密码
	public boolean check(String username){
		return userService.isUsernameExist(username);
	}
	
	//获取所有的用户信息
	public List<User> getAllUser(){
		return userService.getAllUser();
	}
}

6.在applicationContext.xml配置axis和webservice类

<!-- 配置axis2和spring的集成 -->
	<bean id= "applicationContext"
         class = "org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder"  />
<!-- myWebService中的userService注入 -->
<span style="white-space:pre">	</span><bean id="myWebService" class="com.hcj.webservice.MyWebservice" >
<span style="white-space:pre">		</span><property name="userService" ref="userService"></property>
<span style="white-space:pre">	</span></bean>

7、在WEB-INF/services/下新建一个文件夹,这个名字可以起的随便,我们就起做test吧,然后在WEB-INF/services/test/下建立META-INF这个目录,最后在WEB-INF/services/test/META-INF/下建立services.xml,

services.xml文件内容为:?

<?xml version="1.0" encoding="UTF-8"?>
<!-- 这里name里填的myWebservice为发布到webservice后的名称 -->
<service name= "myWebservice">
    <description>simple spring example</description><!--
    
    <beanMapping qname="myNS:Book" xmlns:myNS="urn:BookService" languageSpecificType="java:Book类的完全类名称"/>
    
    --><parameter name= "ServiceObjectSupplier" >
        org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
    </parameter>
    <!-- SpringBeanName为固定,里面填写webservice类的bean id(这个在application里配置) -->
    <parameter name="SpringBeanName">myWebService</parameter>
    <messageReceivers>
        <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"  />
    </messageReceivers>
</service>


此处附上我添加后的完整目录视图:


9.重启tomcat。http://<host>:<port>/<project name>/services/listServices,如果能看到下面视图,则表示配置成功。

?

希望对大家有所帮助。

通过Axis整合SSH 项目创建WebService的一些问题:

webService客户端的编写:http://www.voidcn.com/article/p-hrntfjpz-nm.html

主要参考:http://blog.csdn.net/xinhaoluan/article/details/3605234

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读