使用axis实现webservice.doc

上传人:doc321 文档编号:13124473 上传时间:2021-12-15 格式:DOC 页数:9 大小:140.50KB
返回 下载 相关 举报
使用axis实现webservice.doc_第1页
第1页 / 共9页
使用axis实现webservice.doc_第2页
第2页 / 共9页
使用axis实现webservice.doc_第3页
第3页 / 共9页
使用axis实现webservice.doc_第4页
第4页 / 共9页
使用axis实现webservice.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《使用axis实现webservice.doc》由会员分享,可在线阅读,更多相关《使用axis实现webservice.doc(9页珍藏版)》请在三一文库上搜索。

1、使用axis实现Web Service一、实践过程1、在MyEclipse中新建一个testaxis应用工程,导入11个jar包文件后刷新testaxis应用工程,然后部署testaxis应用工程到Tomcat服务器中,截图如下: 2、配置环境变量的信息CATALINA_HOME= C:Tomcat_5_0AXIS_HOME= %CATALINA_HOME%webappstestaxisWEB-INFAXIS_LIB=%AXIS_HOME%libAXISCLASSPATH=%AXIS_LIB%activation.jar;%AXIS_LIB%axis.jar;%AXIS_LIB%commons

2、-discovery-0.2.jar;%AXIS_LIB%commons-logging-1.0.4.jar;%AXIS_LIB%jaxrpc.jar;%AXIS_LIB%log4j-1.2.8.jar;%AXIS_LIB%mail.jar;%AXIS_LIB%saaj.jar;%AXIS_LIB%wsdl4j-1.5.1.jar;%AXIS_LIB%xercesImpl.jar;%AXIS_LIB%xml-apis.jar3、确认testaxis应用的lib中包括上述的jar文件,包括文件名必须一样。4、我要发布的服务是UserManage,待发布的java文件是UserManageInte

3、r.java和UserManageSoapBindingImpl.java,发布的方法是addPerson,JAVA代码如下:程序代码1:UserManageInter.javapackage com.soap.usermanage;import java.rmi.Remote;import java.rmi.RemoteException;public interface UserManageInter extends Remote public void addUser(UserBean userBean) throws RemoteException;程序代码2:UserManageSo

4、apBindingImpl.javapackage com.soap.usermanage;import java.rmi.RemoteException;public class UserManageSoapBindingImpl implements UserManageInterpublic void addUser(com.soap.usermanage.UserBean userBean) throws java.rmi.RemoteException return; /不用加处理代码程序代码3:UserBean.javapackage com.soap.usermanage;pub

5、lic class UserBean private String ID; private String name; private String address; public String getAddress() return address; public void setAddress(String address) this.address = address; public String getID() return ID; public void setID(String id) ID = id; public String getName() return name; pub

6、lic void setName(String name) this.name = name; 5、修改testaxis应用的web.xml文件,增加相关内容<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-/Sun Microsystems, Inc./DTD Web Application 2.3/EN" ""><web-app><display-name>Apache-Axis<

7、;/display-name><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>or

8、g.apache.axis.transport.http.AxisServlet</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-

9、on-startup>100</load-on-startup></servlet><servlet><servlet-name>SOAPMonitorService</servlet-name><display-name>SOAPMonitorService</display-name><servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class><init-param><par

10、am-name>SOAPMonitorPort</param-name><param-value>5001</param-value></init-param><load-on-startup>100</load-on-startup></servlet><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/servlet/AxisServlet</url-patt

11、ern></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>&

12、lt;/servlet-mapping><servlet-mapping><servlet-name>SOAPMonitorService</servlet-name><url-pattern>/SOAPMonitor</url-pattern></servlet-mapping><!- uncomment this if you want the admin servlet -><servlet-mapping><servlet-name>AdminServlet</ser

13、vlet-name><url-pattern>/servlet/AdminServlet</url-pattern></servlet-mapping><session-config><!- Default to 5 minute session timeouts -><session-timeout>5</session-timeout></session-config><!- currently the W3C havent settled on a media type for W

14、SDL;for now we go with the basic 'it's XML' response -><mime-mapping><extension>wsdl</extension><mime-type>text/xml</mime-type></mime-mapping><mime-mapping><extension>xsd</extension><mime-type>text/xml</mime-type></m

15、ime-mapping></web-app>6、重启应用,访问,应该可以看到目前系统所提供SOAP服务的列表,应该只有两个,都是自带的,(AdminService和Version),如图:7、根据deploy.wsdd 生成 server-config.wsdd。新写的deploy.wsdd 文件内容可参考已有的格式写,内容根据待发布的服务的类和方法自己调整一下。代码如下:<deployment xmlns="" xmlns:java=""> <!- Services from TestAxis WSDL servic

16、e -> <service name="UserManage" provider="java:RPC" style="rpc" use="encoded"> <parameter name="wsdlTargetNamespace" value=""/> <parameter name="wsdlServiceElement" value="UserManageService"/> <pa

17、rameter name="schemaUnqualified" value=""/> <parameter name="wsdlServicePort" value="UserManage"/> <parameter name="className" value="com.soap.usermanage.UserManageSoapBindingImpl"/> <parameter name="wsdlPortType"

18、; value="UserManageInter"/> <parameter name="typeMappingVersion" value="1.2"/> <operation name="addUser" qname="operNS:addUser" xmlns:operNS="" returnQName="addUser" returnType="rtns:Response" xmlns:rtns=&quo

19、t;" soapAction="" > <parameter qname="userBean" type="tns:UserBean" xmlns:tns=""/> </operation> <parameter name="allowedMethods" value="*"/> <typeMapping xmlns:ns="" qname="ns:userBean" type=

20、"java:com.soap.usermanage.UserBean" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" /> </service></deployment>8、把写好的deploy.wsdd 放到%CATALINA_HOME

21、%webappstestaxisWEB-INF目录下,进入DOS命令窗口,进入%CATALINA_HOME%webappstestaxisWEB-INF目录,执行以下命令,会在该目录下生成一个server-config.wsdd文件。C:Tomcat_5_0webappstestaxisWEB-INFjava -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -l deploy.wsdd执行结果如下:刷新页面,显示结果如下:9、根据WSDL生成客户端代码,新建目录C:Tomcat_5_0webappsjavaclient,并在这个新建

22、的目录下执行以下命令:java -cp %AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java 执行结果如下:生成的文件如下:10、根据WSDL生成服务端代码,新建目录C:Tomcat_5_0webappsjavaserver,并在这个新建的目录下执行以下命令:java -cp %AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java -s t:8080/testaxis/services/UserManage?wsdl执行结果如下:生成的文件如下:11分析所生成的文件,服务器端比客户端多了一个PersonManageS

23、oapBindingImpl.java的文件,该文件就是服务端的实现类文件。把生成服务端的代码加到工程里,相关的文件已被修改为支持远程SOAP调用。接下来我们可以在上述的实现类中添加逻辑就可以了。修改后的代码如下:UserManageSoapBindingImpl.java/* * UserManageSoapBindingImpl.java * * This auto-generated from WSDL * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. */package com.soap.us

24、ermanage;public class UserManageSoapBindingImpl implements com.soap.usermanage.UserManageInter public void addUser(com.soap.usermanage.UserBean userBean) throws java.rmi.RemoteException System.out.print("Info: * userBean="+userBean.toString()+"ID ="+userBean.getID(); System.out.p

25、rintln("Name = "+userBean.getName()+"Address ="+userBean.getAddress(); 13、把客户端代码给用户,让用户可以调用我们所提供的服务。客户端测试代码在目录中,叫TestClient.java 代码如下:TestClient.javapackage com.soap.usermanage;import .MalformedURLException;import .URL;import javax.xml.rpc.ServiceException;public class TestClient

26、 /* * param args */public static void main(String args) / TODO Auto-generated method stubtry UserManageService service = new UserManageServiceLocator();UserManageInter userManage = service.getUserManage(new URL(service.getUserManageAddress();UserBean userBean = new UserBean();userBean.setAddress(&qu

27、ot;China Beijing");userBean.setID("06001");userBean.setName("Peter China");userManage.addUser(userBean);System.out.println("This is the end of the TestClient"); catch (MalformedURLException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();1、 重新启动Tomcat,执行TestClient,其中TestClient打出的信息是:控制台打出的信息是:9 / 9文档可自由编辑打印

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1