axis开发WebService实例
什么是SOAP?SOAP是一个基于XML的用于应用程序之间通信数据编码的传输协议。
最初由微软和Userland Software提出,随着不断地完善和改进,SOAP很快被业界广泛应用。
什么是Axis?Axis本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。
Axis目前版本是为Java编写的,不过为C++的版本正在开发中。
配置webservice具体步骤:1.安装weblogic。
2.配置一个web应用,如“\\lijunjie\e$\software\bea\user_projects\domains\lijjdomain\appli cations\ cntapws “。
3.从apache网站上下载axis-bin-1_2_1.tar.gz,解压后copy到cntapws下面。
4.打开“http://localhost:7001/console“,配置cntapws 的web应用。
5.axis1.2和weblogic8.1有冲突,原因是weblogic 本身携带的webservice.jar使用的旧的javax.xml.soap.*,而不是像axis使用J2EE1.4新的版本。
解决方案是在WEB-INF/weblogic.x ml文件中如下的配置:<weblogic-web-app><container-descriptor><prefer-web-inf-classes>true</prefer-web-inf-classes></container-descriptor></weblogic-web-app>6. 按http://localhost:8080/axis/happyaxis.jsp地址,可以显示你发布的webservice是否配置成功,如果显示必须的包缺失,则你的webservice不能正常运行。
开发webservice流程1.写普通的java类,该类中有你要发布到webservice上的有关方法。
2.配置server-config.xml, 把你要发布的方法写入该文件。
具体内容如下:<?xml version="1.0" encoding="UTF-8"?><deployment xmlns="/axis/wsdd/"xmlns:java="/axis/ wsdd/providers/java"><globalConfiguration><parameter name="adminPass word" value="admin"/><parameter name="attachments.Directory" value="C:\ec lipse\workspace\bookstore\WEB-INF\ attachments"/><parameter name="attachments.implementation" value="org.apache.axis.attachments.Attachmen tsImpl"/><parameter name="sendXsiTypes" value="true"/><parameter name="sendMultiRefs" value="true"/><parameter name="sendXMLDec laration" value="true"/><parameter name="axis.sendMinimizedElements" value="true"/><requestFlow><handler type="java:org.apache.axis.handlers.JWSHandler"><parameter name="scope" value="session"/></handler><handler type="java:org.apache.axis.handlers.JWSHandler"><parameter name="scope" value="request"/><parameter name="extension" value=".jwr"/></handler></requestFlow></globalConfiguration><handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder" /><handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandl er"/><handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/><service name="Version" provider="java:RPC"><parameter name="allowedMethods" value="getVersion"/><parameter name="className" value="org.apache.axis.Version"/></service><!--要配置的内容start,注意每一个要发布成webservice的类都要配置成一个service如下<service name="webserviceproxy" provider="java:RPC"><parameter name="className" value="com.copia.webservice.server.proxy.WebServicePro xy"/><parameter name="allowedMethods" value="*"/><!—具体某个方法说明--><operation name="login" returnType="ns:LoginOutServiceBean"><parameter name="branchNo" type="xsd:string"/><parameter name="userId" type="xsd:string"/><parameter name="pass word" type="xsd:string"/><parameter name="certificateNo" type="xsd:string"/></operation><!—如果该方法的参数有基本类型和对象类型,则不要声明,webservice能够找到相关的类及方法--><!—声明涉及到的所有类及其父类,引用类,还有它们的相关类,类似与对象树遍历,某个类声明缺失也会导致运行失败--><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:LoginOutServiceBean"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:com.copia.core.module.security.login.LoginOutServiceBean" xmlns:ns="webser viceproxy"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:User"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:er" xmlns:ns="webserviceproxy"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:GetBatchListInServiceBean"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:com.copia.core.module.batch.service.GetBatchListInServiceBean" xmlns:ns="w ebserviceproxy"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:GetBatchListOutServiceBean"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:com.copia.core.module.batch.service.GetBatchListOutServiceBean" xmlns:ns=" webserviceproxy"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:BatchJobDefBean"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:com.copia.core.module.batch.service.BatchJobDefBean" xmlns:ns="webservicep roxy"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:ValueObjectPage"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:com.copia.core.voa.ValueObjectPage" xmlns:ns="webserviceproxy"/> <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:ValueObjectColInfo"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:com.copia.core.voa.ValueObjectColInfo" xmlns:ns="webserviceproxy"/> <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:ValueObjectList"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:com.copia.core.voa.ValueObjectList" xmlns:ns="webserviceproxy"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:PageInfo"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:com.copia.core.voa.PageInfo" xmlns:ns="webserviceproxy"/><typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"encodingStyle="/soap/encoding/"qname="ns:ValueObjectMetaData"serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"type="java:com.copia.core.voa.ValueObjectMetaData" xmlns:ns="webserviceproxy"/> </service><!--要配置的内容endà<service name="AdminService" provider="java:MSG"><parameter name="allowedMethods" value="AdminService"/><parameter name="enableRemoteAdmin" value="false"/><parameter name="className" value="org.apache.axis.utils.Admin"/><namespace>/axis/wsdd/</namespace></service><transport name="local"><responseFlow><handler type="LocalResponder"/></responseFlow></transport><transport name="http"><requestFlow><handler type="URLMapper"/><handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/></requestFlow></transport></deployment>3.在地址栏输入http://localhost:7001/cntapws/services/webserviceproxy?wsdl,如没有什么错误,则表示你的webservice发布成功了。
axis2 WebService 开发指南
Axis2.x WebService上次介绍了axis1.x的用法,这次继续上次的,将叙述axis2的用法。
Axis1.x在线博文:/hoojo/archive/2010/12/20/1911349.html一、准备工作1、开发准备首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包。
下载地址:/axis2/java/core/download.cgi现在最高的版本是1.5.4的然后你需要下载官方提供的axis的eclipse插件工具,可以帮助我们打包(aar)及其生产客户端调用代码。
下载页面:/axis2/java/core/tools/index.htmlService Archive Wizard - Eclipse Plug-inCode Generator Wizard - Eclipse Plug-in2、安装eclipse插件如果你的eclipse插件安装成功后,会看到如下效果:3、分析axis2-bin文件目录结构下载下来的axis2的依赖库,其中有一个axis2-1.5.3-bin.zip的库文件,目录结构如下:bin文件夹是axis2的常用工具,其中有将wsdl文件转换成客户端调用的wsdl2java工具及将java转换成wsdl文件的工具conf是axis2的配置文件lib运行所要的依赖库repository是发布过的axis服务和文件sample是示例webapp是web文件和jsp页面等4、我们需要将下载下来的axis2-1.5.3-war.zip中的axis2.war这个文件放在我们的tomcat目录下,启动tomcat就会把war文件转成一个可以跑起来的axis2的项目。
Tomcat启动后,在浏览器中输入:http://localhost:8080/axis2/你可以看到二、Axis2的简单WebService示例注意,上面的HelloWorldService是没有package的。
WebService开发实例
3.配置web.xml
在axis的webapps子目录中有一个axisWeb应用,我们直接使用它的web.xml文件内容。
4.添加功能类
Java代码
package com.enfang;
public class TestLiu {
</service>
</deployment>
<deployment xmlns="/axis/wsdd/" xmlns:java=
"/axis/wsdd/providers/java">
<service name="TestLiu" provider="java:RPC">
</service>
</deployment>
首先将工程部署到Tomcat服务器上,并启动Tomcat服务器。然后在工程上右键-->Run As...-->Run Configurations...,新建一个JavaApplication。在main页面中,project指定为我们的TestWebService,MainClass指定为org.apache.axis.client.AdminClient。在Arguments页面下设置Program arguments为-l http://localhost:8080/TestWebService/servlet/AxisServlet deploy.wsdd。点击Run按钮。
什么是整合?当然是功能和数据的整合,也就是一个系统可以调用另一个系统的WebService接口来完成数据的交互。这样我们就需要知道,提供WebService服务功能的应用公开了哪些接口,我们可以通过WebService描述文档(WSDL)得知。WSDL不需要我们手动编写,Java的WebService实现可以为我们自动生成。JDK1.6新增支持WebService,但还不够成熟。所以我们使用Apache第三方开源组织提供的WebService实现——Axis。
Axis2从入门到精通--Webservice在eclipse下开发教程
Axis2 教程文章分类:Java编程Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。
Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON等技术。
这些都将在后面的系列教程中讲解。
在本文中主要介绍了如何使用Axis2开发一个不需要任何配置文件的WebService,并在客户端使用Java和C#调用这个WebService。
一、Axis2的下载和安装读者可以从如下的网址下载Axis2的最新版本:/axis2/在本文使用了目前Axis2的最新版本1.4.1。
读者可以下载如下两个zip包:axis2-1.4.1-bin.zipaxis2-1.4.1-war.zip其中axis2-1.4.1-bin.zip文件中包含了Axis2中所有的jar文件,axis2-1.4.1-war.zip文件用于将WebService发布到Web容器中。
将axis2-1.4.1-war.zip文件解压到相应的目录,将目录中的axis2.war文件放到<Tomcat安装目录>\webapps目录中(本文使用的Tomcat的版本是6.x),并启动Tomcat。
在浏览器地址栏中输入如下的URL:http://localhost:8080/axis2/如果在浏览器中显示出如图1所示的页面,则表示Axis2安装成功。
图1二、编写和发布WebService对于用Java实现的服务程序给人的印象就是需要进行大量的配置,不过这一点在Axis2中将被终结。
在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。
其中POJO中所有的public方法将被发布成WebService方法。
下面我们来实现一个简单的POJO,代码如下:public class SimpleService{public String getGreeting(String name){return "你好 " + name;}public int getPrice(){return new java.util.Random().nextInt(1000);}}在SimpleService类中有两个方法,由于这两个方法都是public方法,因此,它们都将作为WebService方法被发布。
wsimport 调用webservice示例
wsimport 调用webservice示例wsimport是Java 提供的一个工具,用于生成与Web Services Description Language (WSDL) 文件相对应的Java 代码,以便客户端可以通过该代码调用Web 服务。
下面是一个简单的示例,演示如何使用wsimport工具调用Web 服务。
1.创建Web 服务:首先,确保你有一个可用的Web 服务,并获取其WSDL 地址。
你可以在浏览器中直接访问WSDL 地址,以获取WSDL 文件的内容。
2.使用wsimport 生成客户端代码:打开终端或命令行窗口,使用以下命令生成客户端代码:wsimport -d . -p com.example.client http://your-web-service-url?wsdl其中,-d用于指定生成的类文件的输出目录,-p用于指定生成的Java 类的包名,而http://your-web-service-url?wsdl是你的Web 服务的WSDL 地址。
3.编写客户端代码:创建一个Java 类,用于实际调用Web服务。
以下是一个简单的示例:package com.example.client;public class WebServiceClient {public static void main(String[] args) {// 创建Web 服务客户端对象YourWebService service = new YourWebService();YourWebServicePortType port =service.getYourWebServicePort();// 调用Web 服务方法String result = port.yourWebServiceMethod("Hello, Web Service!");// 处理返回结果System.out.println("Web Service Response: " + result);}}4.编译和运行客户端代码:编译生成的客户端代码:javac com/example/client/*.java运行客户端代码:java com.example.client.WebServiceClient这会执行客户端代码,调用Web 服务的方法并输出结果。
利用axis开发WebService(4)_下_如何抛出自定义异常
type="java:com.chnic.exception.NoSuchUserException"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
xmlns:fns="http://faults.samples"
class="samples.faults.NoSuchEmployeeFault"
type="tns:NoSuchUserFault"
encodingStyle="/soap/encoding/"/>
</service>
</deployment>
<deployment xmlns="/axis/wsdd/"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
Java代码
package com.chnic.test;
import java.rmi.RemoteException;
import space.QName;
import javax.xml.rpc.Call;
returnType="rtns:User"
WebService接口实例说明文档
WebService接口说明文档文档说明本文档主要讲述如何用C Sharp创建一个简单的Web Service接口,并使用Java调用这个Web Service接口。
准备工作系统环境:安装JDK1.6或更新版本开发工具:Microsoft Visual Studio 2012、MyEclipse 10.5、axis2-1.6.2C Sharp服务端1.首先,创建一个Web Service项目。
依次点击:文件—新建—项目,在弹出的新建项目窗口中选择Web下的 空 Web 应用程序。
如下图:2.接下来我们需要创建我们的Web Service接口实现文件。
鼠标右击我们的项目,依次点击:添加—新建项,在弹出窗口中选择Web 服务。
可修改新建项的文件名,注意文件名后缀后.asmx。
如下图:新建完成后我们的项目结构如下:3.打开我们新建的MyService.asmx下的MyService.asmx.cs文件,可以看到其中已经有默认的HelloWorld方法。
我们可以直接运行查看下运行的效果,效果如下图:点击HelloWorld,再点击调用可以看到页面返回:4.接下来我们完善我们的Web Service接口功能。
主要对Web Service接口进行参数类型的测试,文本型、布尔型、数值型、类(Class)等。
新增Add()等运算方法:新增strcat()连接字符串方法:新增GetBool()返回布尔值方法:新增GetTest()返回测试类,并新增Test类运行我们的项目,可以看到我们的结果如下图:点击add方法测试:输入add的参数i和j点击调用按钮,可以看到返回计算结果:5.到此为止我们C Sharp创建的Web Service程序完成。
接下来看Java如何调用我们的Web Service接口。
Java调用Web Service准备对于一个Web Service接口我们当前只知道访问的地址,我们如何用Java去访问接口呢?已知Web Service接口地址:http://localhost:11766/MyService.asmx?WSDLJava调用Web Service的方式有以下1.使用HttpClient2.使用Xfire3.使用axis2本文档示例选择的是axis2,首先到axis2网站下载axis2,网址:/axis2/java/core/download.cgi当前最新版本1.6.2。
Apache Axis2配置及使用
使用Apache Axis2创建Web Service1、环境搭建●下载并安装jdk1.6●下载并安装tomcat6.0●下载并安装eclipse-jee-indigo●下载并解压apache axis2-1.5.22、Eclipse环境配置●设置jdk : Preferences —> Java —> Installed JRES●设置tomcat : Preferences —> Server —> Runtime Enviroments●设置Axis2 Runtime: Preferences —> Web Services —> Axis2Preferences —> Axis2 Runtime 指定为apache axis2的根路径●Preferences —> Web Services —> Server and Runtime 设置Web services runtime为Apache Axis23、简单web service示例开发(server)●打开server视图,添加tomcat服务器●设置HTTP/1.1的端口为:8089●创建Dynamic Web Project,修改configuration,选中Axis2 Web Services即可。
●新建一个class Caculate,进行加法和减法运算。
●选中Caculate类右键新建一个web service,根据向导一步一步完成即可。
如下图所示:选中publish the web service和monitor the web service点击start server,启动tomcat服务器点击finish,整个web service创建及部署成功。
测试:http://localhost:8089/WS_02/services/Caculate?wsdl 打开web service explorer,选择WSDL page,输入WSDL URL,如下图所示:测试结果:4、总结:开发过程中容易出现的问题:Failed while installing Axis2 Web Services Core 1.1出现上述问题的原因:eclipse的Bug,更换eclipse版本即可解决问题。
axis2之webservice新手超详细教程
A XIS2之WEBSERVICE新手超详细教程---------------尚明Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。
Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON 等技术,本教程是主要阐述如何构建一个基本的Axis2 webservice应用,里面的许多环节高手可直接略过,本教程完全针对新手。
一、环境安装安装myeclipse下载地址:/file/4238159/48030981-6b56-40a4-a93b-8f424ee4f33a安装mysql下载地址:/file/4238159/de64cf2f-4217-4e11-bb98-8e6c5dd24155安装mysql-workbench(mysql可视化工具)下载地址:/file/4238159/becf913f-56a6-4d68-b248-134113b73535安装tomcat下载地址:/file/4238159/ec6a2250-99ff-464e-a978-be184c96e4e7下载Axis2服务包下载地址:/file/4238159/bb3db6e3-2f7d-4343-b472-c1fa714dba95下载Axis2开发插件包下载地址:/file/4238159/aa39505f-079b-43be-9479-15a2d3e98cbb安装jdk下载地址:/file/4238159/7ba342f9-277f-4b9c-b5e7-b0c5b7dfc151二、环境配置1)Java环境配置a)设置JAVA_HOME图1.图2设置JAVA_HOME=D:\Program Files\Java\jdk1.6.0_10* D:\Program Files\Java\jdk1.6.0_10为笔者本机的JDK安装目录,请开发者根据实际安装路径来填写,注意环境变量最后面不能加分号,D:\Program Files\Java\jdk1.6.0_10;这么写是错误的。
axis2新手教程实例
Axix2 webservice 开发教程例子简单易懂,很适合初学者。
开发环境:jdk1.6 tomcate5.0 Myeclipse5.0步骤:1.下载axis2所用包axis2-1.4.1-bin.zip 和axis2-1.4.1-war.zip并解压下载地址:/axis2/2.解压axis2-1.4.1-war.zip 将axis2.war 放到%TOME_HOME%\webapps中.启动Tomcate. IE地址输入:http://localhost:<port>/axis2/ .出现以上表示环境搭建成功。
3.下面开始开发自己的axis2 ws:创建web项目:我的项目工程名为axis2demo;将axis2-1.4.1\lib下所有jar导入。
创建一个HelloWorld.java在META-INF下建一个service.xml文件。
<?xml version="1.0" encoding="UTF-8"?><service><parameter name="ServiceClass" locked="false">com.xwx.demo.HelloWorld<poeration name="sayHello"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </poeration></parameter></service>注:关于service.xml的参数配置自己baidu+google4.就开始准备一下axis2的eclispe的插件了。
axis2的eclispe插件分为2个,一个是帮助我们生成aar文件的,另一个是帮我们用wsdl文件生成stub代码的。
在集成springmvc+axis下webservice的开发与部署
在集成springmvc+axis下webservice的开发与部署一、DEMO文件样例二、项目代码------------------------------------------------------ package TestAxis;public interface TestI {public String getStr(String str);}------------------------------------------------------ package TestAxis;public class TestImpl implements TestI {public String getStr(String str) {return str;}}------------------------------------------------------ package TestAxis;import org.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationC ontext;importorg.springframework.remoting.jaxrpc.ServletEndpointSupport;服务接口代理类@SuppressWarnings("deprecation")public class TestProxyService extends ServletEndpointSupport implements TestI {private static ApplicationContext context = null;private static TestI testI;static{context = new ClassPathXmlApplicationContext("spring-cxf.xml");testI = (TestI)context.getBean("aa");}public String getStr(String str) {return testI.getStr(str);}}------------------------------------------------------spring-cfg.xml配置文件如下:<bean id="aa" class="TestAxis.TestImpl"></bean>配置web.xml文件:加上下面代码<!-- axis servlet start --><servlet><display-name>Apache-Axis Servlet</display-name><servlet-name>AxisServlet</servlet-name><servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet><servlet><display-name>Axis Admin Servlet</display-name><servlet-name>AdminServlet</servlet-name><servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class><load-on-startup>100</load-on-startup></servlet><!-- axis servlet end --><!-- axis mapping start --><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>*.jws</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/services_axis *</url-pattern></servlet-mapping><!-- axis mapping end -->spring-config.wsdd配置文件代码<deployment xmlns="/axis/wsdd/"xmlns:java="/axis/wsdd/providers/java"><handler name="URLMapper"type="java:org.apache.axis.handlers.http.URLMapper" /><!-- 系统服务 --><service name="AdminService" provider="java:MSG"><parameter name="allowedMethods" value="AdminService" /><parameter name="enableRemoteAdmin" value="false" /><parameter name="className" value="org.apache.axis.utils.Admin" /><namespace>/axis/wsdd/</namespace></service><service name="Version" provider="java:RPC"><parameter name="allowedMethods" value="getVersion" /> <parameter name="className" value="org.apache.axis.Version" /></service><!-- 自己的服务 --><service name="test" provider="java:RPC"><parameter name="className" value="T estAxis.T estProxyService"></parameter><parameter name="allowedMethods" value="*"></parameter></service><transport name="http"><requestFlow><handler type="URLMapper" /></requestFlow></transport></deployment>---------------------------------------------------------用tomcat或weblogic启动项目后:IE: http://localhost:8080/epControl/services_axis/testIE: http://localhost:8080/epControl/services_axis/test?wsdl出现如上图证明服务已发布成功---------------------------------------------------------axis客户端(client)测试--------------------------------------------------------- package TestAxis;import .MalformedURLException;import .URL;import java.rmi.RemoteException;import space.QName;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class TestAxisClient {public static void main(String[] args) {String wsdlURL = "http://localhost:8080/epControl/services_axis/test?wsdl";String nameSpaceURI = "http://localhost:8080/epControl/services_axis/test";//创建调用对象Service service = new Service();try {Call call = (Call)service.createCall();call.setOperationName(newQName(nameSpaceURI,"getStr"));call.setTargetEndpointAddress(new URL(wsdlURL));Object obj = call.invoke(new Object[]{"你好"});if(obj!=null){System.out.println(obj);}} catch (ServiceException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (RemoteException e) {e.printStackTrace();}}}。
