加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

spring集成环境下的axis webservice的发布,调试

发布时间:2021-05-21 07:22:06 所属栏目:大数据 来源: https://www.jb51.cc
导读:在spring集成的环境下,无论你是ssh集成,还是ssi集成的情况下,发布webservice往往在调用的时候会出错。 特别是,如果你是这个方式: 将webservice打aar包,放到tomcat下,然后启动tomcat,写客户端调用,出错之后你根本没法调试,都不知道是哪里出了问题。

在spring集成的环境下,无论你是ssh集成,还是ssi集成的情况下,发布webservice往往在调用的时候会出错。

特别是,如果你是这个方式: 将webservice打aar包,放到tomcat下,然后启动tomcat,写客户端调用,出错之后你根本没法调试,都不知道是哪里出了问题。

例如:

webservice代码:调用了一个service方法,而service类是通过spring注入的。这个时候,往往会有注入失败的情况,而导致异常。

@Service("testWebservice")
public
class TestWebservice{ @Resource public Personservice personservice; public String updatePerson(String pname,int pid){ String operateResult=""; try{ Person p= personservice.getPersonById(pid); p.setName(pname); personservice。updatePerson(p); operateResult="更新成功"; }catch(Exception e){ operateResult="操作失败"; e.print.......(e); } return operateResult; } }

?

?

解决方法:

第一步:和往常一样 大号aar包,用好压打开aar文件,

???????????? 找到,aar包下? Meta-INF 文件夹,将里边的 services.xml 拷贝出来,用编辑器打开,如下:添加一些类容。

<service name="PublishWebService" >
    description>
        Please Type your service description here
    </messageReceivers>
        messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
        messageReceiver  ="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    parameter ="ServiceClass">com.tkbs.digitalproduct.service.PublishWebServiceparameter>
    <!--这里是添加的类容-->
    //spring 集成axis的配置,
    ="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier="SpringBeanName">testWebservice> //这里是你所写的webservice的类名,如这里我是 上面的那个TestWebservice 类。
service>

?

?

?

第二步然后将aar文件粘贴到服务器端的webroot下?web-inf下??建立一个services文件下,就像这样:

webroot----web-inf
--------services
-----------xxx.aar

注:什么是服务端,什么是客户端? 服务端就是包含你写是webservice类的那个web项目就可以成为服务端,而你另外写的? 调用这个webservice的方法的项目就是客户端。

第二步:在服务端的 web.xml 中加入如下代码

?

servlet>
display-name>Apache-Axis Servletservlet-name>AxisServletservlet-class>org.apache.axis2.transport.http.AxisServletservlet-mappingurl-pattern>/servlet/AxisServlet>*.jws>/services/*>

?

第三步:将整个项目 部署到到tomcat下,

?(这个时候 我们的webservice就随着项目一起部署到tomcat了,和之前的单独将aar文件放到tomcat下 相比有很多好处,比如:这种情况下可以方便调试)

?然后debug模式启动tomcat,在浏览器输入:http://localhost:8080/你项目名称/services/weservice服务端的名称?wsdl?? 可以看到webservice是否发布成功

?以我这个项目为例:我需要输入:http://locahost:8080/myservice/services/TestWebservice?wsdl

然后写好客户端代码,将服务端的webservice类 的方法打上断点之后,运行客户端代码,就可以 对webservice进行调试。

?这个时候通过,断点,可以看到,service方法已经注入成功了。。

(编辑:北几岛)

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

    推荐文章
      热点阅读