如何通过spring发布和访问webservice

本文介绍了如何使用Spring框架配置Web服务客户端与服务器。通过示例展示了客户端配置的关键属性,包括服务接口、WSDL URL等,并提供了发布Web服务的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说下如何访问吧,有回报才有付出嘛!

在中国,要网民付出才能提供服务的公司,一般存活不了。

 

spring 配置如下:

  <bean id="mcOneFormGJWebService"  
      class="org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean">
     <property name="serviceInterface" value="cn.com.IOneFormGJWebService" />
     <property name="wsdlDocumentUrl"
         value="${spring.gjApplyWebService.remote.url}" />
     <property name="namespaceUri" value="${spring.gjApplyWebService.remote.nameSpace}" />
     <property name="serviceName" value="Service1" />
     <property name="portName" value="Service1Soap" />
  </bean>

 

其中serviceInterface是自己写的一个接口类,里面包含webservice提供的方法就可以了。

 

wsdlDocumentUrl是wsdl的url地址如:http://localhost:8080/services/mcOneFormWebService?wsdl

 

namespaceUri:在wsdl中查找,targetNamespace

 

serviceName:在wsdl中查找 < wsdl:service name =" OneFormWebServiceImplService " >

 

portName:在wsdl中查找< wsdl:service name =" OneFormWebServiceImplService " >

 

 

            < wsdl:port binding =" impl:mcOneFormWebServiceSoapBinding " name =" mcOneFormWebService " >
  
 程序中调用,就如同本地bean一样。。简单吧。
如果想启动的时候不去校验webservice连接,可以设置属性
              <property name="lookupServiceOnStartup">
          <value>false</value>
        </property>
即可。

再说说发布,就说明一点吧:
本地发布的webservice中,目前还不能直接使用ref指定webservice实现类的方式,只能用value="实现类"。如:
 <service name="mcOneFormWebService" provider="java:RPC">
    <parameter name="allowedMethods" value="update"/>
    <parameter name="className" value="cn.com.OneFormWebServiceImpl"/>
    <requestFlow> 
      <!-- webservice 访问控制 -->
      <handler name="securityHandler" type="java:cn.com.SecurityHandler">  
                <parameter name="mcOneFormIps" value="192.168.0.1"/>
        </handler>
    </requestFlow>
    </service>
这就造成了实现类中如果引用了spring bean,则不能自动初始化的问题。
目前解决的方法是:实现类extends ServletEndpointSupport 复写:
@Override
 protected void onInit() throws ServiceException {
  super.onInit();
  //获得相关服务
  if(mcOneFormService == null)
   mcOneFormService = (OneFormService) getApplicationContext().getBean("mcOneFormService");
 }
完成spring bean 的初始化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值