Axis
配置:
1,axis本身可以servlet的形式集成到任何支持servlet的Web容器(web.xml)
- <servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
2,当然需要让Web容器找到org.apache.axis.transport.http.AxisServlet
将axis所需库和资源配置到classpath里面
或者将axis的lib目录拷贝到WEB-INFO下
3,然后让axis接管WebService的url(web.xml)
- <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>
4,剩下的只需要告诉axis每个WebService对应着哪个Java类即可(server-config.wsdd(与web.xml同目录))
- <service name="OrganizationWebService" type="" provider="java:RPC" style="rpc" use="encoded">
<parameter name="scope" value="Request" />
<parameter name="className" value="nucleus.organization.webservice.OrganizationWebService" />
<parameter name="allowedMethods" value="isValid, personOfID, personsOfRole, queryCategories, queryPersons" />
<namespace>http://webservice.organization.nucleus</namespace>
<typeMapping encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns1:CategoryInfo" languageSpecificType="java:nucleus.organization.webservice.CategoryInfo" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" name="CategoryInfo" xmlns:ns1="http://webservice.organization.nucleus" />
</service>
使用:
一、Axis安装 1、环境 J2SE SDK 1.3 or 1.4: 我使用 1.4.2 Servlet Container: 我使用的Tomcat 5.0
2、到 http://ws.apache.org/Axis/网站下载Axis安装包
3、解压缩安装包,将Axis_UNZIP_PATH/Axis-version/webapps下的Axis包拷贝到TOMCAT_HOME/webapps/下,以下约定Axis_HOME为该TOMCAT_HOME/webapps/Axis目录
4、启动tomcat,访问http://localhost:8080/Axis 检查安装是否成功
5、以上步骤执行成功,可以开发webservice例子了
Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface ( DII)
2、Stubs方式
3、Dynamic Proxy方式
二、编写DII(Dynamic Invocation Interface )方式web服务
1.编写服务端程序HelloClient
2、将源码拷贝到Axis_HOME下,重命名为 HelloClient.jws
3、访问连接http://localhost:8080/Axis/HelloClient.jws?wsdl,页面显示Axis自动生成的wsdl
4、编写访问服务的客户端 TestHelloClient.java
三、编写Dynamic Proxy方式访问服务
1、编写部署服务端程序,同上边DII方式,本次仍使用上边部署的HelloClient
2、编写代理接口
3、编写并执行客户端程序TestHelloClient.java
四、编写wsdd发布web服务,编写stub client访问web服务
1、编写服务端程序server,SayHello.java,编译server.SayHello.java
3、编写wsdd文件
3、将编译后的文件拷贝到Axis_HOME/WEB-INF/classes下,如:D:/tomcat/webapps/Axis/WEB-INF/classes
4、发布服务:
java org.apache.Axis.client.AdminClient deploy.wsdd
5、生成client stub文件
a:方式1
将SayHello.java拷贝到Axis_HOME/下,重命名为SayHello.jws,
执行下面的命令生存client stub
b:方式2
执行如下命令生成SayHello.wsdl
执行如下命令生成client stub
生成的stub client文件列表为:
1.SayHello.java
2.SayHelloService.java。
3.SayHelloServiceLocator.java
4.SayHelloSoapBindingStub.java
6、编写客户端程序,编译并执行
2、到 http://ws.apache.org/Axis/网站下载Axis安装包
3、解压缩安装包,将Axis_UNZIP_PATH/Axis-version/webapps下的Axis包拷贝到TOMCAT_HOME/webapps/下,以下约定Axis_HOME为该TOMCAT_HOME/webapps/Axis目录
4、启动tomcat,访问http://localhost:8080/Axis 检查安装是否成功
5、以上步骤执行成功,可以开发webservice例子了
Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface ( DII)
2、Stubs方式
3、Dynamic Proxy方式
二、编写DII(Dynamic Invocation Interface )方式web服务
1.编写服务端程序HelloClient
public class HelloClient |
2、将源码拷贝到Axis_HOME下,重命名为 HelloClient.jws
3、访问连接http://localhost:8080/Axis/HelloClient.jws?wsdl,页面显示Axis自动生成的wsdl
4、编写访问服务的客户端 TestHelloClient.java
import org.apache.Axis.client.Call; |
三、编写Dynamic Proxy方式访问服务
1、编写部署服务端程序,同上边DII方式,本次仍使用上边部署的HelloClient
2、编写代理接口
public interface HelloClientInterface |
3、编写并执行客户端程序TestHelloClient.java
import javax.xml.rpc.Service; |
四、编写wsdd发布web服务,编写stub client访问web服务
1、编写服务端程序server,SayHello.java,编译server.SayHello.java
package server; |
3、编写wsdd文件
deploy.wsdd |
3、将编译后的文件拷贝到Axis_HOME/WEB-INF/classes下,如:D:/tomcat/webapps/Axis/WEB-INF/classes
4、发布服务:
java org.apache.Axis.client.AdminClient deploy.wsdd
5、生成client stub文件
a:方式1
将SayHello.java拷贝到Axis_HOME/下,重命名为SayHello.jws,
执行下面的命令生存client stub
java org.apache.Axis.wsdl.WSDL2Java |
b:方式2
执行如下命令生成SayHello.wsdl
java org.apache.Axis.wsdl.Java2WSDL |
执行如下命令生成client stub
java org.apache.Axis.wsdl.WSDL2Java |
生成的stub client文件列表为:
1.SayHello.java
2.SayHelloService.java。
3.SayHelloServiceLocator.java
4.SayHelloSoapBindingStub.java
6、编写客户端程序,编译并执行
public class SayHelloClient |