axis + spring 集成


web.xml配置:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<display-name>Apache-Axis</display-name>
<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
  <!--
  <listener>
    <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
  </listener>
  -->
<servlet>
  <servlet-name>AxisServlet</servlet-name>
  <display-name>Apache-Axis Servlet</display-name>
  <servlet-class>
    com.skysuite.axis.spring.SpringAxisServlet
  </servlet-class>
</servlet>

<servlet>
  <servlet-name>AdminServlet</servlet-name>
  <display-name>Axis Admin Servlet</display-name>
  <servlet-class>
    org.apache.axis.transport.http.AdminServlet
  </servlet-class>
  <load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>AxisServlet</servlet-name>
  <url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>AxisServlet</servlet-name>
  <url-pattern>*.jws</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>AxisServlet</servlet-name>
  <url-pattern>/services/*</url-pattern>
</servlet-mapping>
  <session-config>
    <!-- Default to 5 minute session timeouts -->
    <session-timeout>30</session-timeout>
  </session-config>
<welcome-file-list id="WelcomeFileList">
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.jws</welcome-file>
</welcome-file-list>

</web-app>


server-config.wsdd配置

第一種配置:


....


<!-- provider="java:SPRINGRPC" it is must be this. it is the handler to found the webservice -->


<service name="Math" provider="java:SPRINGRPC" style="rpc" use="literal">
<operation name="add" qname="ns1:Add" returnQName="ns1:AddResult" returnType="xsd:float" soapAction="" xmlns:ns1="http://math.samples/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <parameter qname="ns1:A" type="xsd:float"/>
  <parameter qname="ns1:B" type="xsd:float"/>
</operation>
<parameter name="allowedMethods" value="add"/>

<!-- springBeanClass and springBean must be declared ,because it will be used to found webservice-->

<parameter name="springBeanClass" value="samples.math.Math"/> <!-- the bean class type -->
<parameter name="springBean" value="math"/> <!-- the bean is definded in the spring -->

<parameter name="wsdlTargetNamespace" value="http://math.samples/"/>
<parameter name="sendXsiTypes" value="false"/>
<parameter name="sendMultiRefs" value="false"/>
</service>
.....


我們爲了配置axis和spring集成,在applicationContext.xml中必須聲明這樣的一個Bean
.....


<bean id="axissetup"
        class="com.skysuite.axis.spring.SpringAxisSetup">
</bean>




第二種配置:

......
<service name="Math" provider="Handler" style="rpc" use="literal">

<parameter name="handlerClass" value="com.skysuite.axis.spring.SpringBeanRPCProvider" />

<operation name="add" qname="ns1:Add" returnQName="ns1:AddResult" returnType="xsd:float" soapAction="" xmlns:ns1="http://math.samples/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <parameter qname="ns1:A" type="xsd:float"/>
  <parameter qname="ns1:B" type="xsd:float"/>
</operation>
<parameter name="allowedMethods" value="add"/>

<!-- springBeanClass and springBean must be declared ,because it will be used to found webservice-->

<parameter name="springBeanClass" value="samples.math.Math"/> <!-- the bean class type -->
<parameter name="springBean" value="math"/> <!-- the bean is definded in the spring -->

<parameter name="wsdlTargetNamespace" value="http://math.samples/"/>
<parameter name="sendXsiTypes" value="false"/>
<parameter name="sendMultiRefs" value="false"/>
</service>
.....


Spring中的Math Bean的生成

<!-- 聲明Math的Bean,這樣我們上面定義的springBean相一致-->
<bean id="math"
        class="samples.math.Math">
</bean>
.......


這樣我們就可以訪問到Math Service了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章