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

Axis2: services.xml的MEP(信息交换模式)配置

发布时间:2020-12-16 06:24:57 所属栏目:百科 来源:网络整理
导读:Axis2: services.xml的MEP(信息交换模式)配置 ============================= 在axis2中使用不同的MEP来处理不同的信息交换格式。 w3提供了8个 全局配置: messageReceivers messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache

Axis2: services.xml的MEP(信息交换模式)配置

=============================

在axis2中使用不同的MEP来处理不同的信息交换格式。

w3提供了8个


全局配置:
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>


局部配置:
<operation name="getGreeting" mep="http://www.w3.org/2006/01/wsdl/in-out">
<messagerReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</operation>


如果配置不正确,会抛出异常。比如,加了一个没有返回值的方法,如果没有加对应的MEP,则抛出异常。
也可使用operation设置相应的MEP:
<Option name="log" mep="http://www.w3.org/2006/01/wsdl/in-out">
<messagerReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />

</operation>


例如:

<service name="SimpleService1">
<parameter name="ServiceClass">
service.SimpleService
</parameter>

<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>

</service>


如何用services.xml的方式发布多个web service? 如果我们发布多个webservice,就需要在services.xml文件配置多个webservice。 配置多个webservice要使用<serviceGroup>元素,一个services.xml元数据放到META-INF目录中,将service和META-INF中只能有一个<serviceGroup>元素,<serviceGroup>元素中可以有0个或者多个<service元素,每个<service>元素表示一个。 webservice: <serviceGroup> <service name="service1">.....</service> <service name="service2">.....</service> ...... </serviceGroup> 例如: <serviceGroup> <service name="MyService"> <parameter name="ServiceClass"> service.SimpleService </parameter> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </messageReceivers> </service> <service name="SimpleService1"> <parameter name="ServiceClass"> service.SimpleService </parameter> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </messageReceivers> </service> </serviceGroup> Restful WebService(1); Axis2默认下同时支持以SOAP和Restful两种方式调用Web Service,SOAP方式通过SOAP消息来传递相应的数据。 而Restful的方式是通过HTTP GET请求直接访问的。 因此,Restful方式不支持复制的数据类型,例如二进制文件 在Axis2.xml中可以开启或者关闭Restful: <parameter name="disableREST" locked="false"> false</parameter> 将<parameter>元素的值改成true就可以关闭Restful. Restful WebService(2); Java也可以通过HTTP POST方式通过Restful方式访问webservice, 。但必须在Stub类中设置相应的属性。 使用Eclipse开发WebService 1.新建一个java project; 2.新建类; 3.然后新建一个META-INF目录; 4.在META-INF目录中新建一个services.xml 5.导出类和META-INF目录成jar(arr),发布到tomcat即可。 Restful WebService,使用SOAP消息传输数据会有大量数据冗余, 如果想节省带宽,可以用Restful WebService,但不能传 比较复杂的数据的类型。

(编辑:李大同)

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

    推荐文章
      热点阅读