java调用webservice示例(转)

来源:互联网 发布:js截取不包括空格 编辑:程序博客网 时间:2024/06/05 19:10
 
http://topic.csdn.net/t/20030403/09/1612072.html
java里使用webservice 安装配置Axis
http://ws.apache.org/axis/releases.html
~~安装Tomcat 4.X以上版本(4.X后的版本都带XML的解析器)

~~解压Axis1.1.zip包,找到webapps目录下的axis文件夹,拷贝axis文件夹到Tomcat中的webapps文件夹下。

~~将Tomcat中的axis目录下的WEB-INF/lib中的所有的文件copy到Tomcat的common/lib目录中。(以后凡是要在axis的lib中添加jar文件,都要copy一份到Tomcat的common/lib目录下)。

~~我的电脑->属性->高级->环境变量->系统变量中添加:

AXIS_HOME
%TOMCAT_HOME%/webapps/axis(TOMCAT的目录)

AXIS_LIB
%AXIS_HOME%/lib

AXISCLASSPATH
%AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery.jar; %AXIS_LIB%/commons-logging.jar;%AXIS_LIB%/jaxrpc.jar; %AXIS_LIB%/saaj.jar;%AXIS_LIB%/log4j-1.2.8.jar; %AXIS_LIB%/xml-apis.jar;%AXIS_LIB%/xercesImpl.jar

修改CLASSPATH ,在末尾加上:
%AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery.jar; %AXIS_LIB%/commons-logging.jar;%AXIS_LIB%/jaxrpc.jar; %AXIS_LIB%/saaj.jar;%AXIS_LIB%/log4j-1.2.8.jar; %AXIS_LIB%/xml-apis.jar;%AXIS_LIB%/xercesImpl.jar

注意检查CLASSPATH是否正确:(有些软件会在用户变量区设置一个classpath,会有影响,如:XMLSPY)

在DOS方式下

输命令:Echo %CLASSPATH%

~~检查配置:

启动Tomcat,访问http://localhost:8080/axis/,

验证axis的是否工作:http://localhost:8080/axis/happyaxis.jsp如果正常显示表示正常。

上图中 倒数第3行字“The core axis libra….”,要保证core axis libraries are present,如果有任何core library is missing,就到其提供的相应的链接上找到对应的jar文件,并copy到tomcat目录里面的axis文件夹WEB-INF/lib中,别忘了 Tomcat自己的common/lib也copy一份
好啦基本上都配置好了。现在我们开始做一个有点模样的web Service的例子啦。一步一步来:)
写一个java源代码HelloClient.jws 放到服务器axis文件夹下并访问http://localhost:8080/axis/HelloClient.jws

客户端写调用服务器的测试代码testjws.java,编译,运行java testjws

import   java.util.Vector;
import   org.apache.axis.client.Call;
import   org.apache.axis.client.Service;
import   javax.xml.rpc.namespace.QName;
import   org.apache.axis.encoding.XMLType;
    
public   class   TestClient   {
public   static   void   main(String   []   args)   
{
try   
{
String   endpoint   =   "http://218.97.169.38/services/MyService";
Service     service   =   new   Service();
Call           call         =   (Call)   service.createCall();
call.setTargetEndpointAddress(   new   java.net.URL(endpoint)   );
Float   i   =   new   Float(1);
Float   j   =   new   Float(2);
call.setOperationName(   "add"   );
call.addParameter("i",org.apache.axis.encoding.XMLType.XSD_FLOAT,javax.xml.rpc.ParameterMode.PARAM_MODE_IN);
call.addParameter("j",org.apache.axis.encoding.XMLType.XSD_FLOAT,javax.xml.rpc.ParameterMode.PARAM_MODE_IN);
call.setReturnType(   XMLType.XSD_FLOAT);
Float   ret   =   (Float)call.invoke(   new   Object[]   {i,j}   );
System.out.println("Got   result   :   "   +   ret);
}   catch   (Exception   e)   {
System.err.println(e.toString());
}
}
原创粉丝点击