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了。